]> Cypherpunks repositories - gostls13.git/commitdiff
misc/dist: new hierarchy for binary distribution packaging scripts
authorAndrew Gerrand <adg@golang.org>
Thu, 9 Feb 2012 00:15:14 +0000 (11:15 +1100)
committerAndrew Gerrand <adg@golang.org>
Thu, 9 Feb 2012 00:15:14 +0000 (11:15 +1100)
R=golang-dev, rsc, bradfitz
CC=golang-dev
https://golang.org/cl/5639063

misc/dist/README [new file with mode: 0644]
misc/dist/darwin/README [new file with mode: 0644]
misc/dist/darwin/dist.bash [new file with mode: 0755]
misc/dist/darwin/etc/paths.d/go [new file with mode: 0644]
misc/dist/darwin/scripts/postinstall [new file with mode: 0644]

diff --git a/misc/dist/README b/misc/dist/README
new file mode 100644 (file)
index 0000000..06136c4
--- /dev/null
@@ -0,0 +1,4 @@
+This directory contains the binary distribution packaging scripts for the
+supported GOOSes.
+
+To build a package, run $GOOS/dist.bash.
diff --git a/misc/dist/darwin/README b/misc/dist/darwin/README
new file mode 100644 (file)
index 0000000..25aeb8c
--- /dev/null
@@ -0,0 +1,3 @@
+Use dist.bash to construct a package file (Go.pkg) for installation on OS X.
+
+This script depends on PackageMaker (Developer Tools).
diff --git a/misc/dist/darwin/dist.bash b/misc/dist/darwin/dist.bash
new file mode 100755 (executable)
index 0000000..adade2e
--- /dev/null
@@ -0,0 +1,69 @@
+#!/bin/bash
+# Copyright 2011 The Go Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style
+# license that can be found in the LICENSE file.
+
+set -e
+
+if ! test -f ../../../src/all.bash; then
+       echo >&2 "dist.bash must be run from $GOROOT/misc/dist/darwin"
+       exit 1
+fi
+
+echo >&2 "Locating PackageMaker..."
+PM=/Applications/Utilities/PackageMaker.app/Contents/MacOS/PackageMaker
+if [ ! -x $PM ]; then
+       PM=/Developer$PM
+       if [ ! -x $PM ]; then
+               echo >&2 "could not find PackageMaker; aborting"
+               exit 1
+       fi
+fi
+echo >&2 "  Found: $PM"
+
+BUILD=/tmp/go.build.tmp
+ROOT=`hg root`
+export GOROOT=$BUILD/root/usr/local/go
+export GOROOT_FINAL=/usr/local/go
+
+echo >&2 "Removing old images"
+rm -f *.pkg *.dmg
+
+echo >&2 "Preparing temporary directory"
+rm -rf $BUILD
+mkdir -p $BUILD
+trap "rm -rf $BUILD" 0
+
+echo >&2 "Copying go source distribution"
+mkdir -p $BUILD/root/usr/local
+cp -r $ROOT $GOROOT
+cp -r etc $BUILD/root/etc
+
+pushd $GOROOT > /dev/null
+
+echo >&2 "Detecting version..."
+pushd src > /dev/null
+./make.bash --dist-tool > /dev/null
+../bin/tool/dist version > /dev/null
+popd > /dev/null
+mv VERSION.cache VERSION
+VERSION="$(cat VERSION | awk '{ print $1 }')"
+echo >&2 "  Version: $VERSION"
+
+echo >&2 "Pruning Mercurial metadata"
+rm -rf .hg .hgignore .hgtags
+
+echo >&2 "Building Go"
+pushd src
+./all.bash 2>&1 | sed "s/^/  /" >&2
+popd > /dev/null
+
+popd > /dev/null
+
+echo >&2 "Building package"
+$PM -v -r $BUILD/root -o "go.darwin.$VERSION.pkg" \
+       --scripts scripts \
+       --id com.googlecode.go \
+       --title Go \
+       --version "0.1" \
+       --target "10.5"
diff --git a/misc/dist/darwin/etc/paths.d/go b/misc/dist/darwin/etc/paths.d/go
new file mode 100644 (file)
index 0000000..532e5f9
--- /dev/null
@@ -0,0 +1 @@
+/usr/local/go/bin
diff --git a/misc/dist/darwin/scripts/postinstall b/misc/dist/darwin/scripts/postinstall
new file mode 100644 (file)
index 0000000..3748721
--- /dev/null
@@ -0,0 +1,23 @@
+#!/bin/bash
+
+GOROOT=/usr/local/go
+
+echo "Fixing permissions"
+cd $GOROOT
+find . -exec chmod ugo+r \{\} \;
+find bin -exec chmod ugo+rx \{\} \;
+find . -type d -exec chmod ugo+rx \{\} \;
+chmod o-w .
+
+echo "Fixing debuggers via sudo.bash"
+# setgrp procmod the debuggers (sudo.bash)
+cd $GOROOT/src
+./sudo.bash
+
+echo "Installing miscellaneous files:"
+XCODE_MISC_DIR="/Library/Application Support/Developer/Shared/Xcode/Specifications/"
+if [ -f $XCODE_MISC_DIR ]; then
+       echo "  XCode"
+       cp $GOROOT/misc/xcode/* $XCODE_MISC_DIR
+fi
+