diff options
-rw-r--r-- | network/kubectl/README | 4 | ||||
-rw-r--r-- | network/kubectl/kubectl.SlackBuild | 107 | ||||
-rw-r--r-- | network/kubectl/kubectl.info | 10 | ||||
-rw-r--r-- | network/kubectl/slack-desc | 16 |
4 files changed, 95 insertions, 42 deletions
diff --git a/network/kubectl/README b/network/kubectl/README index d5226f1078..d6cc5c77a5 100644 --- a/network/kubectl/README +++ b/network/kubectl/README @@ -1,2 +1,4 @@ -Kubectl is a command line interface for running commands against +kubectl (Kubernetes command-line tool) + +kubectl is a command-line tool for controlling Kubernetes clusters. diff --git a/network/kubectl/kubectl.SlackBuild b/network/kubectl/kubectl.SlackBuild index 5c043c992f..dd30434f1e 100644 --- a/network/kubectl/kubectl.SlackBuild +++ b/network/kubectl/kubectl.SlackBuild @@ -1,9 +1,9 @@ #!/bin/bash - +# # Slackware build script for kubectl - +# # Copyright 2019-2022 Dimitris Zlatanidis Orestiada, Greece -# Copyright 2025 Willy Sudiarto Raharjo <willysr@slackbuilds.org> +# Copyright 2025 r1w1s1 <r1w1s1@fastmail.com> # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -22,56 +22,107 @@ # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR # OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +# +# +# SlackBuild script for kubectl +# =========================== +# By: r1w1s1 (https://fosstodon.org/@r1w1s1) +# For: kubectl +# Descr: kubectl is a command-line tool for controlling Kubernetes clusters. +# URL: https://kubernetes.io/ +# Changelog: +# v1.32.1: 10/Feb/2025 by r1w1s1 - Initial build from sources. +# v1.32.3: 18/Mar/2025 by r1w1s1 - Update to version. cd $(dirname $0) ; CWD=$(pwd) +# improves robustness, error handling, and security +set -euo pipefail +IFS=$'\n\t' + +PKGBASE=kubernetes PRGNAM=kubectl VERSION=${VERSION:-1.32.3} BUILD=${BUILD:-1} TAG=${TAG:-_SBo} PKGTYPE=${PKGTYPE:-tgz} +ARCH=${ARCH:-} +PRINT_PACKAGE_NAME=${PRINT_PACKAGE_NAME:-} if [ -z "$ARCH" ]; then -case "$( uname -m )" in + case "$( uname -m )" in i?86) ARCH=i586 ;; arm*) ARCH=arm ;; - *) ARCH=$( uname -m ) ;; -esac + *) ARCH=$( uname -m ) ;; + esac fi +set -e + +TMP=${TMP:-/tmp/SBo} +PKG=${TMP}/package-${PRGNAM} +OUTPUT=${OUTPUT:-/tmp} + if [ ! -z "${PRINT_PACKAGE_NAME}" ]; then echo "$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.$PKGTYPE" exit 0 fi -TMP=${TMP:-/tmp/SBo} -PKG=$TMP/package-$PRGNAM -OUTPUT=${OUTPUT:-/tmp} +rm -rf "$PKG" +mkdir -p "$TMP" "$PKG" "$OUTPUT" +cd "$TMP" -set -e +if [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +elif [ "$ARCH" = "aarch64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +rm -rf ${PRGNAM}-${VERSION} +rm -rf ${PKGBASE}-${VERSION} +tar xvf $CWD/${PKGBASE}-${VERSION}.tar.gz +cd ${PKGBASE}-${VERSION} -rm -rf $PKG -mkdir -p $TMP $PKG $OUTPUT -cd $TMP -rm -rf $PRGNAM-$VERSION -mkdir $PRGNAM-$VERSION -cp $CWD/$PRGNAM $PRGNAM-$VERSION -cd $PRGNAM-$VERSION -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 {} \; - -mkdir -p $PKG/usr/bin -install -D -m755 $PRGNAM $PKG/usr/bin +# Set up Go environment +export GOPATH=$(pwd)/.gopath +mkdir -p $GOPATH +export PATH=$GOPATH/bin:$PATH + +# Build kubectl with Slackware optimization flags +export GOFLAGS="-buildmode=pie" # Only Go compiler flags here +export LDFLAGS="-s -compressdwarf=true" # Linker flags go here +export CGO_CFLAGS="$SLKCFLAGS" # C compiler flags +make WHAT=cmd/kubectl + +# Install the binary +mkdir -p "$PKG/usr/bin" +install -m 0755 _output/bin/kubectl $PKG/usr/bin/kubectl + +# Install shell completions +mkdir -p $PKG/usr/share/bash-completion/completions/ +_output/bin/kubectl completion bash > $PKG/usr/share/bash-completion/completions/${PRGNAM} + +mkdir -p $PKG/usr/share/zsh/site-functions/ +_output/bin/kubectl completion zsh > $PKG/usr/share/zsh/site-functions/${PRGNAM} find $PKG -print0 | xargs -0 file | grep -e "executable" -e "shared object" | grep ELF \ | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true -mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION -cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild +mkdir -p "$PKG/usr/doc/${PRGNAM}-${VERSION}" +cp -a LICENSE README.md $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 diff --git a/network/kubectl/kubectl.info b/network/kubectl/kubectl.info index dcdd8f35d8..3c5c8ccc40 100644 --- a/network/kubectl/kubectl.info +++ b/network/kubectl/kubectl.info @@ -3,8 +3,8 @@ VERSION="1.32.3" HOMEPAGE="https://kubernetes.io/" DOWNLOAD="UNSUPPORTED" MD5SUM="" -DOWNLOAD_x86_64="https://dl.k8s.io/release/v1.32.3/bin/linux/amd64/kubectl" -MD5SUM_x86_64="68dec5f5f62c2bfe92e738ac72fafcb9" -REQUIRES="" -MAINTAINER="Willy Sudiarto Raharjo" -EMAIL="willysr@slackbuilds.org" +DOWNLOAD_x86_64="https://github.com/kubernetes/kubernetes/archive/v1.32.3/kubernetes-1.32.3.tar.gz" +MD5SUM_x86_64="d452486ac10a059e7114ea3a65a9f25a" +REQUIRES="google-go-lang" +MAINTAINER="r1w1s1" +EMAIL="r1w1s1@fastmail.com" diff --git a/network/kubectl/slack-desc b/network/kubectl/slack-desc index 3caff3f8d2..2357cf0c0d 100644 --- a/network/kubectl/slack-desc +++ b/network/kubectl/slack-desc @@ -1,17 +1,17 @@ # 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 +# 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------------------------------------------------------| -kubectl: kubectl (Kubectl is a command line interface) +kubectl: kubectl (Kubernetes command-line tool) +kubectl: +kubectl: kubectl is a command-line tool for controlling Kubernetes clusters. +kubectl: kubectl: -kubectl: Kubectl is a command line interface for running commands against -kubectl: Kubernetes clusters. kubectl: -kubectl: Homepage: https://kubernetes.io/ kubectl: kubectl: kubectl: |