blob: f56dd682a7ed2bf6088214682bd8ff6738cedc9f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
|
#! /bin/sh
if [ ! -x "$1" -o ! -x "$2" -o ! -d "$3" -o -z "$4" -o ! -f "$5" ]; then
if [ ! -x "$1" ]; then
echo PackageMaker not executable
fi
if [ ! -x "$2" ]; then
echo hdiutil not executable
fi
if [ ! -d "$3" ]; then
echo "DIST_ROOT doesnt exist"
fi
if [ -z "$4" ]; then
echo Must supply a package name
fi
if [ ! -f "$5" ]; then
echo idb file not found
fi
echo "Usage: $0 /path/to/PackageMaker /path/to/hdiutil /path/to/DIST_ROOT package_name idb_file"
exit 1
fi
IFDIR="installer-files"
IRDIR="installer-resources"
PKGMKR=$1
HDIUTIL=$2
DIST_ROOT=$3
PACKAGE=$4-$PACKAGE_VERSION-$PACKAGE_BUILD
PKG=$PACKAGE.pkg
DMG=$PACKAGE.dmg
TEMPDMG=$PACKAGE.tmp.dmg
HERE=`pwd`
IDB=$HERE/$5
prog=`basename $0`
tmp=`mktemp -d /tmp/pcp.XXXXXXXXX` || exit 1
status=1
trap "rm -rf $tmp; exit \$status" 0 1 2 15
_do()
{
if ! $* > $tmp/out 2>&1
then
echo "$prog: Error: $*"
cat $tmp/out
exit 1
fi
}
_run()
{
echo $*
eval $*
}
echo "Verifying IDB file is valid"
_do ./install-pcp -R $DIST_ROOT -p $IDB
echo "Gathering files from the source tree using install-pcp"
_do rm -rf $IFDIR
_do mkdir $IFDIR
cd $IFDIR
_do ../install-pcp -R $DIST_ROOT -c $IDB
cd $HERE
pwd
#for i in ReadMe.html Welcome.txt License.html
#do
# _do rm -f $IRDIR/$i
# _do cp $WA_MAC/docs/$i $IRDIR/$i
#done
#_do rm -f census census.gz
echo "Updating version information..."
MACOSX_VERSION=`expr \`uname -r | cut -d. -f1\` - 4`
BUILD_DATE=`date +'%Y%m%d'`
for f in installer-info installer-description; do
nf=`echo $f | cut -c11-`
sed -e"s/@package_version@/$PACKAGE_VERSION/g" \
-e"s/@package_major@/$PACKAGE_MAJOR/g" \
-e"s/@package_minor@/$PACKAGE_MINOR/g" \
-e"s/@macosx_version@/$MACOSX_VERSION/g" \
-e"s/@build_date@/$BUILD_DATE/g" \
< $f > $nf || exit 1
done
echo "Launching PackageMaker..."
_do rm -rf $PKG
# PackageMaker returns non-zero value even if it succeeds.
# PackageMaker must be run by the user logged into the localhost desktop.
#
_run $PKGMKR -build -p $HERE/$PKG \
-f $HERE/installer-files -r $HERE/installer-resources \
-i $HERE/info -d $HERE/description &
wait
if [ ! -d $HERE/$PKG ]
then
echo "$prog: Package generation failed"
exit 1
fi
echo "Launching hdiutil..."
_do rm -rf $DMG $TEMPDMG $PACKAGE
_do mkdir $PACKAGE
_do mv $PKG $PACKAGE
_do $HDIUTIL makehybrid -quiet -o $PACKAGE.tmp $PACKAGE \
-hfs-openfolder dmg.tmp/$DMG -hfs
_do $HDIUTIL convert -quiet $TEMPDMG -format UDRO -o $DMG
_do $HDIUTIL internet-enable -quiet -yes $DMG
if [ ! -f $HERE/$DMG ]
then
echo "$prog: Package Disk Image generation failed"
exit 1
else
echo "Wrote: $HERE/$DMG"
fi
status=0
|