aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--network/kubectl/README4
-rw-r--r--network/kubectl/kubectl.SlackBuild107
-rw-r--r--network/kubectl/kubectl.info10
-rw-r--r--network/kubectl/slack-desc16
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: