Fix permissions for installed OS X files and directories.
authorgerald <gerald@f5534014-38df-0310-8fa8-9805f1628bb7>
Tue, 12 Nov 2013 20:38:58 +0000 (20:38 +0000)
committergerald <gerald@f5534014-38df-0310-8fa8-9805f1628bb7>
Tue, 12 Nov 2013 20:38:58 +0000 (20:38 +0000)
Add a cli-preinstall script that creates missing parts of the
installation path and sets their permissions. Simply copy
"utility-launcher" to "wireshark" instead of renaming it at install
time. Explicitly set its ownership and permissions. Pretty-print some of
the PackageMaker XML files via `xmllint --format --recover`.

git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@53281 f5534014-38df-0310-8fa8-9805f1628bb7

packaging/macosx/Scripts/cli-postinstall.sh
packaging/macosx/Scripts/cli-preinstall.sh [new file with mode: 0755]
packaging/macosx/Wireshark_package.pmdoc/01wireshark.xml
packaging/macosx/Wireshark_package.pmdoc/03utility.xml
packaging/macosx/osx-app.sh

index ce85c0376874b19f48fd7bf461569b2f512f9d14..f83cf4faac8f0de7f28d72acf04b5ca974e87d4c 100755 (executable)
@@ -15,9 +15,8 @@ BINARIES="
 
 cd "$CLI_PATH"
 
-rm -f ./wireshark
-mv utility-launcher wireshark
 chmod 755 wireshark
+chown root:wheel wireshark
 
 for BIN in $BINARIES ; do
     rm -f ./"$BIN"
diff --git a/packaging/macosx/Scripts/cli-preinstall.sh b/packaging/macosx/Scripts/cli-preinstall.sh
new file mode 100755 (executable)
index 0000000..8a9c51a
--- /dev/null
@@ -0,0 +1,22 @@
+#!/bin/sh
+
+CLI_PATH="$2"
+
+# Create any missing directories with mode 755, owned by root:wheel.
+# Don't blindly clobber anything that's already there.
+function build_path()
+{
+       echo "Checking $1"
+       if [ -d "$1" ] ; then
+               return ""
+       else
+               TRIMMED=`dirname "$1"`
+               if [ ! -d "$TRIMMED" ] ; then
+                       build_path "$TRIMMED"
+               fi
+               install -v -o root -g wheel -m 0755 -d "$1"
+       fi
+
+}
+
+build_path "$2"
index 1c7f2427b076ae14e65cafe52dd625eca3a258be..ee81d1e275dbd5265a31f865ebd604230878dad3 100644 (file)
@@ -1 +1,39 @@
-<pkgref spec="1.12" uuid="0B0ABFF7-3A3D-4F37-B998-DC99734E0EFC"><config><identifier>org.wireshark.Wireshark.pkg</identifier><version>0.0.0.0</version><description></description><post-install type="none"/><requireAuthorization/><installFrom relative="true" mod="true" includeRoot="true">Wireshark.app</installFrom><installTo>/Applications</installTo><flags><followSymbolicLinks/><allowRevert/><mod>allowRevert</mod></flags><packageStore type="internal"></packageStore><mod>scripts.scriptsDirectoryPath.isAbsoluteType</mod><mod>scripts.scriptsDirectoryPath.isRelativeType</mod><mod>installTo</mod><mod>scripts.postinstall.path</mod><mod>installFrom.isRelativeType</mod><mod>includeRoot</mod><mod>scripts.postinstall.isRelativeType</mod><mod>version</mod><mod>parent</mod><mod>scripts.scriptsDirectoryPath.path</mod><mod>identifier</mod><mod>relocatable</mod><mod>requireAuthorization</mod><mod>extraFiles</mod><mod>postInstall</mod></config><scripts><postinstall relative="true" mod="true">Scripts/wireshark-postinstall.sh</postinstall><scripts-dir relative="true" mod="true">Scripts</scripts-dir><scripts-element/></scripts><extra-files/></pkgref>
\ No newline at end of file
+<?xml version="1.0"?>
+<pkgref spec="1.12" uuid="0B0ABFF7-3A3D-4F37-B998-DC99734E0EFC">
+  <config>
+    <identifier>org.wireshark.Wireshark.app.pkg</identifier>
+    <version>0.0.0.0</version>
+    <description/>
+    <post-install type="none"/>
+    <requireAuthorization/>
+    <installFrom relative="true" mod="true" includeRoot="true">Wireshark.app</installFrom>
+    <installTo>/Applications</installTo>
+    <flags>
+      <followSymbolicLinks/>
+      <allowRevert/>
+      <mod>allowRevert</mod>
+    </flags>
+    <packageStore type="internal"/>
+    <mod>scripts.scriptsDirectoryPath.isAbsoluteType</mod>
+    <mod>scripts.scriptsDirectoryPath.isRelativeType</mod>
+    <mod>installTo</mod>
+    <mod>scripts.postinstall.path</mod>
+    <mod>installFrom.isRelativeType</mod>
+    <mod>includeRoot</mod>
+    <mod>scripts.postinstall.isRelativeType</mod>
+    <mod>version</mod>
+    <mod>parent</mod>
+    <mod>scripts.scriptsDirectoryPath.path</mod>
+    <mod>identifier</mod>
+    <mod>relocatable</mod>
+    <mod>requireAuthorization</mod>
+    <mod>extraFiles</mod>
+    <mod>postInstall</mod>
+  </config>
+  <scripts>
+    <postinstall relative="true" mod="true">Scripts/wireshark-postinstall.sh</postinstall>
+    <scripts-dir relative="true" mod="true">Scripts</scripts-dir>
+    <scripts-element/>
+  </scripts>
+  <extra-files/>
+</pkgref>
index 169a298bf8e207ac96d30c56620fbca4d264eef7..0130e3ee5bab0c40bb66dde9b2c35438a4aef523 100644 (file)
@@ -1 +1,37 @@
-<pkgref spec="1.12" uuid="F7F04C41-A94E-4CCA-A8F5-8B774B8D9151"><config><identifier>org.wireshark.cli.pkg</identifier><version>1.0</version><description></description><post-install type="none"/><requireAuthorization/><installFrom relative="true">utility-launcher</installFrom><installTo mod="true" relocatable="true">/usr/local/bin</installTo><flags><followSymbolicLinks/></flags><packageStore type="internal"></packageStore><mod>installTo</mod><mod>relocatable</mod><mod>scripts.scriptsDirectoryPath.isRelativeType</mod><mod>identifier</mod><mod>parent</mod><mod>installTo.path</mod><mod>installFrom.isRelativeType</mod><mod>scripts.postinstall.isRelativeType</mod></config><scripts><postinstall relative="true" mod="true">Scripts/cli-postinstall.sh</postinstall><scripts-dir relative="true" mod="true">Scripts</scripts-dir></scripts><contents><file-list>03utility-contents.xml</file-list><filter>/CVS$</filter><filter>/\.svn$</filter><filter>/\.cvsignore$</filter><filter>/\.cvspass$</filter><filter>/\.DS_Store$</filter></contents></pkgref>
\ No newline at end of file
+<?xml version="1.0"?>
+<pkgref spec="1.12" uuid="F7F04C41-A94E-4CCA-A8F5-8B774B8D9151">
+  <config>
+    <identifier>org.wireshark.cli.pkg</identifier>
+    <version>1.0</version>
+    <description/>
+    <post-install type="none"/>
+    <requireAuthorization/>
+    <installFrom relative="true">utility-launcher</installFrom>
+    <installTo mod="true" relocatable="true">/usr/local/bin</installTo>
+    <flags>
+      <followSymbolicLinks/>
+    </flags>
+    <packageStore type="internal"/>
+    <mod>installTo</mod>
+    <mod>relocatable</mod>
+    <mod>scripts.scriptsDirectoryPath.isRelativeType</mod>
+    <mod>identifier</mod>
+    <mod>parent</mod>
+    <mod>installTo.path</mod>
+    <mod>installFrom.isRelativeType</mod>
+    <mod>scripts.postinstall.isRelativeType</mod>
+  </config>
+  <scripts>
+    <preinstall relative="true" mod="true">Scripts/cli-preinstall.sh</preinstall>
+    <postinstall relative="true" mod="true">Scripts/cli-postinstall.sh</postinstall>
+    <scripts-dir relative="true" mod="true">Scripts</scripts-dir>
+  </scripts>
+  <contents>
+    <file-list>03utility-contents.xml</file-list>
+    <filter>/CVS$</filter>
+    <filter>/\.svn$</filter>
+    <filter>/\.cvsignore$</filter>
+    <filter>/\.cvspass$</filter>
+    <filter>/\.DS_Store$</filter>
+  </contents>
+</pkgref>
index 4f0d63ba84d4720b9d8dcc48278d0e9237bb508b..4356d848b56bfac9e1b2958b1622cee54713d873 100755 (executable)
@@ -250,9 +250,11 @@ fi
 #----------------------------------------------------------
 echo -e "\nFilling app bundle and utility directory...\n"
 
+# CLI wrapper
+cp -v utility-launcher "$cli_dir/wireshark"
+
 # Wireshark executables
 if [ "$ui_toolkit" = "gtk" ] ; then
-       cp -v utility-launcher "$cli_dir/$binary"
        for binary in $binary_list wireshark ; do
                # Copy the binary to its destination
                dest_path="$pkgbin/$binary-bin"