develpoment/google-appengine-gosdk: Added (Google Appengine Go SDK)

Signed-off-by: dsomero <xgizzmo@slackbuilds.org>
This commit is contained in:
Eric Schultz 2012-05-13 09:03:55 -04:00 committed by dsomero
parent f9000ce256
commit 915e263d03
9 changed files with 181 additions and 0 deletions

View file

@ -0,0 +1,45 @@
Google App Engine Go Language SDK
The Go SDK's includes a web server application that simulates the AppEngine
environment, including a local version of the datastore, Google Accounts, and
the ability to fetch URLs and send email directly from your computer using the
App Engine APIs. The Go SDK uses slightly modified versions of the development
tools from the Python SDK, and will run on any Intel-based Mac OS X or Linux
computer with Python 2.5.
Homepage: http://code.google.com/appengine
Alternate download site - Project site: http://code.google.com/p/googleappengine
NOTE: There are some minor limitations to the Go SDK for App Engine vs the full
blown Go Language SDK, but for most part this package can be used to develop and
compile stand-alone Go programs as well. See The Go Programming Language Blog,
Tuesday, May 10, 2011, Go and Google Appengine at
http://blog.golang.org/2011/05/go-and-google-app-engine.html for more details.
WARNING: This SlackBuild puts the Google Appengine Go SDK tools onto your PATH
using the script gae.sh (or gae.csh) in /etc/profile.d that is sourced by
/etc/profile (or /etc/csh.login). If you also install the Google Appengine
Python SDK then the gae.sh (and gae.csh) scripts will clash and you'll be left
with a gae.sh.new (and gae.csh.new) file in /etc/profile.d.
THIS IS INTENTIONAL!!!
This is because Google's Go and Python SDK's for Appengine contain Python
scripts with the same names that are different: you cannot use, for example, the
appcfg.py or dev_appserver.py from one SDK on apps written with the other SDK!
It is up to you to sort out this mess and decide which - if any - SDK's tools
you want on the PATH and which you'll call with the full path. I had written
some wrapper scripts (inspired by Google's own gomake script) that work around
this issue; but I felt this solution was more appropriate for Slackware and
absolved me of the responsability of untangling Google's mess!
AND ANOTHER WARNING: If you also install the Google Go language SlackBuild
you'll have another clash since the Appengine Go SDK contains a subset of the Go
language SDK; it has some of the same tools and relies on the same environment
variables (in particular GOROOT). So you need decide if you want to keep the Go
Appengine on your PATH or the Go Language (via /etc/profile.d/go.sh and
/etc/profile.d/go.csh).
Sorry, but I don't write 'em - I just build 'em!

View file

@ -0,0 +1,17 @@
config() {
NEW="$1"
OLD="$(dirname $NEW)/$(basename $NEW .new)"
# If there's no config file by that name, mv it over:
if [ ! -r $OLD ]; then
mv $NEW $OLD
elif [ "$(cat $OLD | md5sum)" = "$(cat $NEW | md5sum)" ]; then
# toss the redundant copy
rm $NEW
fi
# Otherwise, we leave the .new copy for the admin to consider...
}
config etc/profile.d/gae.csh.new
config etc/profile.d/gae.sh.new
config etc/profile.d/go.csh.new
config etc/profile.d/go.sh.new

View file

@ -0,0 +1,3 @@
#!/bin/csh
setenv GAEBIN /opt/google/appengine-gosdk
setenv PATH ${PATH}:${GAEROOT}

View file

@ -0,0 +1,3 @@
#!/bin/csh
export GAEBIN=/opt/google/appengine-gosdk
export PATH=${PATH}:${GAEROOT}

View file

@ -0,0 +1,3 @@
#!/bin/csh
setenv GOROOT /opt/google/appengine-gosdk/goroot
setenv PATH ${PATH}:${GOROOT}/bin

View file

@ -0,0 +1,3 @@
#!/bin/sh
export GOROOT=/opt/google/appengine-gosdk/goroot
export PATH="${PATH}:${GOROOT}/bin"

View file

@ -0,0 +1,78 @@
#!/bin/sh
# Slackware build script for google-appengine-gosdk
# Copyright (c) 2011 Eric Schultz
#
# Permission is hereby granted, free of charge, to any person obtaining a copy of
# this software and associated documentation files (the "Software"), to deal in
# the Software without restriction, including without limitation the rights to
# use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
# the Software, and to permit persons to whom the Software is furnished to do so,
# subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
# Written by Eric Schultz eric at schultzter dot ca
PRGNAM=google-appengine-gosdk
VERSION=${VERSION:-1.6.5}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" -a -z "$GOARCH" ]; then
case "$( uname -m )" in
i?86) ARCH="i486" ; GARCH="386" ;;
x86_64) ARCH="x86_64"; GARCH="amd64" ;;
*) echo "Package for $(uname -m) architecture is not available." ; exit 1;;
esac
fi
CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
set -e
rm -rf $PKG
mkdir -p $TMP $PKG/opt/google $OUTPUT
cd $PKG/opt/google
unzip $CWD/go_appengine_sdk_linux_$GARCH-$VERSION.zip
mv google_appengine appengine-gosdk
chown -R root:root .
find . \
\( -perm 777 -o -perm 775 -o -perm 711 -o -perm 750 -o -perm 555 -o -perm 511 \) \
-exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 600 -o -perm 444 -o -perm 440 -o -perm 400 -o -perm 645 -o -perm 640 \) \
-exec chmod 644 {} \;
# Put the profile scripts for setting PATH and env variables
mkdir -p $PKG/etc/profile.d
install -m0755 -oroot $CWD/gae.csh $PKG/etc/profile.d/gae.csh.new
install -m0755 -oroot $CWD/gae.sh $PKG/etc/profile.d/gae.sh.new
install -m0755 -oroot $CWD/go.csh $PKG/etc/profile.d/go.csh.new
install -m0755 -oroot $CWD/go.sh $PKG/etc/profile.d/go.sh.new
cd appengine-gosdk
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a \
BUGS LICENSE RELEASE_NOTES VERSION \
$PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cp $CWD/doinst.sh $PKG/install/doinst.sh
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}

View file

@ -0,0 +1,10 @@
PRGNAM="google-appengine-gosdk"
VERSION="1.6.5"
HOMEPAGE="https://developers.google.com/appengine/"
DOWNLOAD="http://googleappengine.googlecode.com/files/go_appengine_sdk_linux_386-1.6.5.zip"
MD5SUM="fbf60b682affea6681daa97ea75fcd26"
DOWNLOAD_x86_64="http://googleappengine.googlecode.com/files/go_appengine_sdk_linux_amd64-1.6.5.zip"
MD5SUM_x86_64="ad31a47853b4f1e0626ae4689cce37fd"
MAINTAINER="Eric Schultz"
EMAIL="eric at schultzter dot ca"
APPROVED="dsomero"

View file

@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|'
# on the right side marks the last column you can put a character in. You must
# make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':'.
|-----handy-ruler------------------------------------------------------|
google-appengine-gosdk: google-appengine-gosdk (Google Appengine Go SDK)
google-appengine-gosdk:
google-appengine-gosdk: The Go SDK's includes a web server application that simulates
google-appengine-gosdk: the AppEngine environment, including a local version of the
google-appengine-gosdk: datastore, Google Accounts, and the ability to fetch URLs and
google-appengine-gosdk: send email directly from your computer using the App Engine APIs.
google-appengine-gosdk: The Go SDK uses slightly modified versions of the development tools
google-appengine-gosdk: from the Python SDK, and will run on any Intel-based Mac OS X or
google-appengine-gosdk: Linux computer with Python 2.5.
google-appengine-gosdk:
google-appengine-gosdk: Homepage: http://code.google.com/appengine