0

Initial commit

This commit is contained in:
eleksir
2023-11-19 18:01:40 +03:00
commit 80ec8a7529
586 changed files with 29486 additions and 0 deletions

55
google-go-lang/README Normal file
View File

@@ -0,0 +1,55 @@
The Go programming language is an open source project to make programmers more
productive. Go is expressive, concise, clean, and efficient. Its concurrency
mechanisms make it easy to write programs that get the most out of multicore and
networked machines, while its novel type system enables flexible and modular
program construction. Go compiles quickly to machine code yet has the
convenience of garbage collection and the power of run-time reflection. It's a
fast, statically typed, compiled language that feels like a dynamically typed,
interpreted language.
The tools are added to the path by putting go.sh and go.csh files in
/etc/profile.d and letting the system's /etc/profile or /etc/csh.login pick it
up. If you want to add any of Go's environment variables you can add them
there.
Also, to easily setup a user-independent path for Go libraries to be installed
to and used, is the GOPATH environment variable. This variable can be colon
delimited. For example, once installing the built google-go-lang package, then
set in your user's ~/.bashrc something like:
export GOPATH="$HOME"
Then, you'll be able to use the `go` command to install an additional library
that will not need root permission and will be in the compiler's path.
Like so:
go get golang.org/x/tools/cmd/godoc
Now in ~/src you'll have this source code checked-out, and a binary built at
~/bin/godoc
Since the golang idiom is very `go get'able as a limited user, installed
libraries from slackbuilds.org are located outside of GOROOT (which is only for
golang standard library), in /usr/share/gocode
By not setting a system-wide GOPATH defaulting to this location, then it is up
to the user of whether to include this system path as well, like:
export GOPATH="$HOME:/usr/share/gocode"
This system source directory is primarly only for buildtime of slackbuilds.
This is because `go get' iterates through the paths provided, looking for
matching imports. If a match is not found, then is cloned to the first path
provided. You would not want this to be a system path, as to need root
privilege to clone source.
As of go1.2, the 'go doc ...' command has been relocated to the go.tools
library (golang-googlecode-gotools), which provide `godoc`.
As of go1.5, shared libraries are now supported. The flags to use linking are
available for `go get`, `go install` and `go build`.
To learn more see `go help buildmode`.
To run the buildtime tests of this package, provide the environment variable
RUN_TEST=true at build time.

View File

@@ -0,0 +1,158 @@
#!/bin/sh
# Slackware build script for google-go-lang
# Written by Eric Schultz eric at schultzter.ca
# Taken over by Vincent Batts vbatts@hashbangbash.com
# Picked by Sergei Fedosoff <eleksir@gmail.com>
# Copyright (c) 2021 Sergei Fedosoff
# Copyright (c) 2012, 2013, 2014, 2015, 2016, 2017, 2018 Vincent Batts
# Copyright (c) 2012 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.
PRGNAM=google-go-lang
VERSION=${VERSION:-1.21.4}
BOOTSTRAP_VERSION=1.18.10
BUILD=${BUILD:-1}
TAG=${TAG:-_EXs}
RELEASE=${RELEASE:-linux}
RUN_TEST=${RUN_TEST:-false}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
fi
if [ "$ARCH" = "i586" ]; then
LIBDIRSUFFIX=""
GOARCH="386"
elif [ "$ARCH" = "x86_64" ]; then
LIBDIRSUFFIX="64"
GOARCH="amd64"
elif [ "$ARCH" = "arm" ]; then
LIBDIRSUFFIX=""
GOARCH="arm"
export GOARM="6" # can be '5' as well, to use soft float instead of hardware
else
LIBDIRSUFFIX=""
GOARCH=386
fi
CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
BOOTSTRAP_DIR="${TMP}/bootstrap-go${BOOTSTRAP_VERSION}"
set -e
rm -rf $PKG
mkdir -p "$BOOTSTRAP_DIR" $PKG/usr/lib${LIBDIRSUFFIX}/go${VERSION} $OUTPUT
cd "$BOOTSTRAP_DIR"
tar xf $CWD/go${BOOTSTRAP_VERSION}.src.tar.gz
cd go
chown -R root:root .
cd $PKG/usr/lib${LIBDIRSUFFIX}/go${VERSION}
tar xf $CWD/go${VERSION}.src.tar.gz
cd go
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
-o -perm 511 \) -exec chmod 755 {} \+ -o \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \+
# as of >= go1.5, the cross-compiler does not need to be bootstrap, so the
# compiler need only be compiled for the host OS, which it detects
unset GOBIN GOPATH GOOS GOARCH CGO_ENABLED
# Now go requires at least 1.17.something api to build, so we have to bootstrap bootstrap compiler
cd "${BOOTSTRAP_DIR}/go"
export GOROOT_BOOTSTRAP="/usr" # gcc 5+ is go1.4 API, so we'll bootstrap with it
export GOROOT="$(pwd)"
export GOROOT_FINAL="${BOOTSTRAP_DIR}/go"
cd src
LC_ALL=C ./make.bash
$GOROOT/bin/go install std
# Time to build target compiler
export PATH="${TMP}/bootstrap-go/go/bin:${PATH}"
cd "$PKG/usr/lib${LIBDIRSUFFIX}/go${VERSION}/go"
unset GOBIN GOPATH GOOS GOARCH CGO_ENABLED
export GOROOT_BOOTSTRAP="$BOOTSTRAP_DIR/go"
export GOROOT="$(pwd)"
export GOROOT_FINAL="/usr/lib${LIBDIRSUFFIX}/go${VERSION}/go"
export GO_LDFLAGS="-s -w"
export GO_GCFLAGS="-trimpath"
cd src
if [ "${RUN_TEST}" = "true" ] ; then
LC_ALL=C \
./all.bash
else
LC_ALL=C \
./make.bash
fi
# As of go1.5, golang supports shared libraries, so generate them for use.
$GOROOT/bin/go install -buildmode=shared std
cd ..
# remove Go build cache
rm -rf pkg/obj/go-build/*
# remove the doc Makefile
rm -f doc/Makefile
# Put the profile scripts for setting PATH and env variables
mkdir -p $PKG/etc/profile.d
cat > $PKG/etc/profile.d/go.csh << EOF
#!/bin/csh
setenv GOROOT ${GOROOT_FINAL}
setenv PATH \${GOROOT}/bin:\${PATH}
EOF
cat > $PKG/etc/profile.d/go.sh << EOF
#!/bin/sh
export GOROOT="${GOROOT_FINAL}"
export PATH="\${GOROOT}/bin:\${PATH}"
EOF
chmod 0755 $PKG/etc/profile.d/go.csh
chmod 0755 $PKG/etc/profile.d/go.sh
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a \
CONTRIBUTING.md LICENSE PATENTS README.md 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
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}

View File

@@ -0,0 +1,10 @@
PRGNAM="google-go-lang"
VERSION="1.21.1"
HOMEPAGE="https://go.dev/"
DOWNLOAD="https://go.dev/dl/go1.18.10.src.tar.gz https://go.dev/dl/go1.21.1.src.tar.gz"
MD5SUM="002b4daec72ab396dc023a5ec445a68a 00ef7b2f4c47990c37dd60bd15fa8c0f"
DOWNLOAD_x86_64=""
MD5SUM_x86_64=""
REQUIRES=""
MAINTAINER="Sergei Fedosoff"
EMAIL="eleksir@gmail.com"

19
google-go-lang/slack-desc Normal file
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 ':' except on otherwise blank lines.
|-----handy-ruler------------------------------------------------------|
google-go-lang: google-go-lang (Google's Go Language kit with gc tool chain)
google-go-lang:
google-go-lang: The Go programming language is an open source project to make
google-go-lang: programmers more productive. Go is expressive, concise, clean, and
google-go-lang: efficient. Its concurrency mechanisms make it easy to write programs
google-go-lang: that get the most out of multicore and networked machines, while its
google-go-lang: novel type system enables flexible and modular program construction.
google-go-lang:
google-go-lang:
google-go-lang:
google-go-lang: