Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Annotation of /osx-dist/build-pkg.sh
ViewVC logotype

Annotation of /osx-dist/build-pkg.sh

Parent Directory Parent Directory | Revision Log Revision Log


Revision 3850 - (view) (download) (as text)

1 : jhr 3841 #!/bin/sh
2 :     #
3 :     # Script to build the installer package for x86 on Mac OS X (10.7+)
4 :     #
5 :    
6 : jhr 3849 CMD="build-pkg.sh"
7 :    
8 : jhr 3845 # get the version number
9 :     #
10 :     if [ $# != 1 ] ; then
11 : jhr 3849 echo "usage: $CMD version"
12 : jhr 3845 exit 1
13 :     fi
14 : jhr 3841 VERSION=$1
15 : jhr 3845
16 : jhr 3842 CONFIGURL=http://smlnj.cs.uchicago.edu/dist/working/$VERSION/config.tgz
17 :     DISTROOT=smlnj.dst
18 : jhr 3845 ID=org.smlnj.x86.pkg
19 : jhr 3842 ROOT=$(pwd)
20 : jhr 3848 RSRC=Resources
21 : jhr 3841
22 : jhr 3849 # you need a developer ID to sign the final package;
23 : jhr 3844 #
24 : jhr 3849 case x"$USER" in
25 :     xjhr) SIGN="Developer ID Installer: John Reppy" ;;
26 :     *)
27 :     echo "$CMD [Warning]: unknown user, so package will not be signed!"
28 :     SIGN=none
29 :     ;;
30 :     esac
31 : jhr 3844
32 : jhr 3845 if [ -d $DISTROOT ] ; then
33 : jhr 3849 echo "$CMD [Error]: please remove $DISTROOT first"
34 : jhr 3842 exit 1
35 :     fi
36 : jhr 3845 mkdir $DISTROOT
37 :     cd $DISTROOT
38 : jhr 3842
39 :     # first we need to download and unbundle the config directory for the release
40 :     #
41 : jhr 3849 curl -s -S -O $CONFIGURL
42 : jhr 3842 tar -xzf config.tgz
43 : jhr 3849 if [ "$?" != 0 ] ; then
44 :     # note that if config.tgz does not exist, curl will still work (it will get a
45 :     # 404 page from the server)
46 :     echo "$CMD [Error]: unable to download/unpack config.tgz"
47 :     cd $ROOT
48 :     rm -rf $DISTROOT
49 :     exit 1
50 :     fi
51 : jhr 3842
52 :     # check that the version numbers match
53 :     #
54 : jhr 3849 if [ ! -r config/version ] ; then
55 :     echo "$CMD [Error]: config/version is missing"
56 :     exit 1
57 :     fi
58 : jhr 3842 CONFIG_VERSION=$(cat config/version)
59 :     if [ x"$VERSION" != x"$CONFIG_VERSION" ] ; then
60 : jhr 3849 echo "$CMD [Error]: version in config/version is $CONFIG_VERSION"
61 :     cd $ROOT
62 :     rm -rf $DISTROOT
63 : jhr 3842 exit 1
64 :     fi
65 :    
66 :     # build the distribution (note that this assumes that config/targets is what we want!)
67 :     #
68 :     config/install.sh
69 : jhr 3849 if [ "$?" != 0 ] ; then
70 :     echo "$CMD [Error]: problem building SML/NJ"
71 :     exit 1
72 :     fi
73 : jhr 3842
74 :     # get the other files to include in the distribution
75 :     #
76 :     cp -p $ROOT/components/license.html .
77 :     svn export https://smlnj-gforge.cs.uchicago.edu/svn/smlnj/sml/trunk/READMES/$VERSION-README.html
78 :    
79 :     # cleanup
80 :     #
81 :     rm *tgz
82 :    
83 :     # back up to the root
84 :     #
85 :     cd $ROOT
86 :    
87 : jhr 3848 # create the resources directory and fill it
88 : jhr 3841 #
89 : jhr 3848 if [ -d $RSRC ] ; then
90 :     rm -rf $RSRC
91 :     fi
92 :     mkdir $RSRC
93 :     sed -e "s/VERSION/$VERSION/g" components/distribution_xml.in > $RSRC/distribution.xml
94 :     cp -p components/smlnj-background.jpg $RSRC/background.jpg
95 : jhr 3850 sed -e "s/VERSION/$VERSION/g" components/welcome_html.in > $RSC/welcome.html
96 : jhr 3848 cp -p $DISTROOT/$VERSION-README.html $RSRC/readme.html
97 :     cp -p components/license.html $RSRC/license.html
98 :     cp -p components/conclusion.html $RSRC/conclusion.html
99 : jhr 3841
100 :     # build package
101 :     #
102 : jhr 3845 pkgbuild --identifier $ID --scripts components/scripts/ --install-location /usr/local/Xsmlnj --root $DISTROOT smlnj.pkg
103 : jhr 3841
104 :     # build distribution package
105 :     #
106 : jhr 3849 if [ $SIGN = none ] ; then
107 :     echo "$CMD: building unsigned package smlnj-x86-$VERSION.pkg"
108 :     productbuild --package-path components --resources $RSRC \
109 :     --distribution $RSRC/distribution.xml ./smlnj-x86-$VERSION.pkg
110 :     else
111 :     echo "$CMD: building signed package smlnj-x86-$VERSION.pkg"
112 :     productbuild --sign "$SIGN" --package-path components --resources $RSRC \
113 :     --distribution $RSRC/distribution.xml ./smlnj-x86-$VERSION.pkg
114 :     fi
115 : jhr 3842
116 :     # cleanup
117 :     #
118 : jhr 3849 rm -rf $RSRC $DISTROOT smlnj.pkg

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0