Followup-For: Bug #679717 Hi,
unopkg can be really nasty :-) The HOME=$INSTDIR workaround requires the $INSTDIR to actually exist, otherwise it will fall back to /root and create the libreoffice/3 tree there ... I'm attaching a patch that unifies and simplifies the creation and removal of $INSTDIR in all three maintainer scripts. Previously there was a possibility to create/remove INSTDIR several times per script, leaving tempdirs behind or running unopkg without existing HOME=$INSTDIR. Now the package nearly passes the piuparts test. But there is still an unowned file being left after purge: 0m40.6s ERROR: FAIL: Package purging left files on system: /usr/lib/ure/share/config/ not owned /usr/lib/ure/share/config/javasettingsunopkginstall.xml not owned which is probably a different issue. Andreas
accessodf_0.1-1.3.log.gz
Description: GNU Zip compressed data
diffstat for accessodf-0.1 accessodf-0.1
changelog | 12 +++++++++++-
postinst | 6 +++---
preinst | 6 ++----
prerm | 4 ++--
4 files changed, 18 insertions(+), 10 deletions(-)
diff -Nru accessodf-0.1/debian/changelog accessodf-0.1/debian/changelog
--- accessodf-0.1/debian/changelog 2012-11-02 12:33:21.000000000 +0100
+++ accessodf-0.1/debian/changelog 2013-01-16 05:57:15.000000000 +0100
@@ -1,8 +1,18 @@
+accessodf (0.1-1.4) unstable; urgency=low
+
+ * Non-maintainer upload.
+ * {pre,post}inst, prerm: Simplify and unify the creation and removal of
+ $INSTDIR. The temporary HOME=$INSTDIR needs to exist otherwise unopkg will
+ fall back to /root/ and create a libreoffice/3/ hierarchy there.
+ (Closes: #679717)
+
+ -- Andreas Beckmann <[email protected]> Wed, 16 Jan 2013 05:57:15 +0100
+
accessodf (0.1-1.3) unstable; urgency=low
* Non-maintainer upload.
* oops, forgot a unopkg in preinst, thanks Andreas Beckmann
- (closes: #679717)
+ (closes: #679717)
-- Rene Engelhard <[email protected]> Fri, 02 Nov 2012 12:32:50 +0100
diff -Nru accessodf-0.1/debian/postinst accessodf-0.1/debian/postinst
--- accessodf-0.1/debian/postinst 2012-10-23 19:53:33.000000000 +0200
+++ accessodf-0.1/debian/postinst 2013-01-16 05:52:25.000000000 +0100
@@ -9,17 +9,17 @@
add_extension() {
echo -n "Adding extension $1..."
- INSTDIR=`mktemp -d`
HOME=$INSTDIR unopkg add --shared $1 \
"-env:UserInstallation=file:///$INSTDIR" \
'-env:UNO_JAVA_JFW_INSTALL_DATA=$ORIGIN/../share/config/javasettingsunopkginstall.xml' \
"-env:JFW_PLUGIN_DO_NOT_CHECK_ACCESSIBILITY=1"
- if [ -n $INSTDIR ]; then rm -rf $INSTDIR; fi
echo " done."
}
-if [ "$1" = "configure" -o "$1" = "upgrade" ]; then
+if [ "$1" = "configure" ]; then
+ INSTDIR=`mktemp -d`
add_extension /usr/share/accessodf/AccessODF.oxt
+ rm -rf $INSTDIR
fi
#DEBHELPER#
diff -Nru accessodf-0.1/debian/preinst accessodf-0.1/debian/preinst
--- accessodf-0.1/debian/preinst 2012-11-02 12:32:32.000000000 +0100
+++ accessodf-0.1/debian/preinst 2013-01-16 05:52:26.000000000 +0100
@@ -7,19 +7,16 @@
set -e
flush_unopkg_cache() {
- INSTDIR=`mktemp -d`
HOME=$INSTDIR unopkg list --shared "-env:JFW_PLUGIN_DO_NOT_CHECK_ACCESSIBILITY=1" > /dev/null 2>&1
}
remove_extension() {
- INSTDIR=`mktemp -d`
if HOME=$INSTDIR unopkg list --shared $1 >/dev/null; then
echo -n "Removing extension $1..."
HOME=$INSTDIR unopkg remove --shared $1 \
"-env:UserInstallation=file://$INSTDIR" \
'-env:UNO_JAVA_JFW_INSTALL_DATA=$ORIGIN/../share/config/javasettingsunopkginstall.xml' \
"-env:JFW_PLUGIN_DO_NOT_CHECK_ACCESSIBILITY=1"
- if [ -n $INSTDIR ]; then rm -rf $INSTDIR; fi
echo " done."
flush_unopkg_cache
fi
@@ -27,13 +24,14 @@
case "$1" in
upgrade|install)
- INSTDIR=`mktemp -d`
+ INSTDIR=`mktemp -d`
echo Removing old accessodf extensions.
id=" "
while [ "$id" != "" ]; do
id=`HOME=$INSTDIR unopkg list --shared | egrep '^(Name|Identifier):.*accessodf' | cut -d":" -f2 | head -n 1`
if [ "$id" != "" ]; then remove_extension $id; fi
done
+ rm -rf $INSTDIR
;;
esac
diff -Nru accessodf-0.1/debian/prerm accessodf-0.1/debian/prerm
--- accessodf-0.1/debian/prerm 2012-10-23 19:48:44.000000000 +0200
+++ accessodf-0.1/debian/prerm 2013-01-16 05:51:52.000000000 +0100
@@ -10,14 +10,12 @@
}
remove_extension() {
- INSTDIR=`mktemp -d`
if HOME=$INSTDIR unopkg list --shared $1 >/dev/null; then
echo -n "Removing extension $1..."
HOME=$INSTDIR unopkg remove --shared $1 \
"-env:UserInstallation=file://$INSTDIR" \
'-env:UNO_JAVA_JFW_INSTALL_DATA=$ORIGIN/../share/config/javasettingsunopkginstall.xml' \
"-env:JFW_PLUGIN_DO_NOT_CHECK_ACCESSIBILITY=1"
- if [ -n $INSTDIR ]; then rm -rf $INSTDIR; fi
echo " done."
flush_unopkg_cache
fi
@@ -25,7 +23,9 @@
case "$1" in
remove)
+ INSTDIR=`mktemp -d`
remove_extension be.docarch.accessodf.ooo.accessodfaddon
+ rm -rf $INSTDIR
;;
esac

