uboot: (firmwareOdroidC2/C4) don't invoke patch tool, use patches = [] instead

https://github.com/NixOS/nixpkgs/blob/master/pkgs/stdenv/generic/setup.sh#L948
this can do it nicely.

Signed-off-by: Anton Arapov <anton@deadbeef.mx>
This commit is contained in:
Anton Arapov 2021-04-03 12:58:10 +02:00 committed by Alan Daniels
commit 56de2bcd43
30691 changed files with 3076956 additions and 0 deletions

View file

@ -0,0 +1,96 @@
{ stdenv
, lib
, fetchFromGitHub
, which
, go
, makeWrapper
, rsync
, installShellFiles
, kubectl
, nixosTests
, components ? [
"cmd/kubelet"
"cmd/kube-apiserver"
"cmd/kube-controller-manager"
"cmd/kube-proxy"
"cmd/kube-scheduler"
"test/e2e/e2e.test"
]
}:
stdenv.mkDerivation rec {
pname = "kubernetes";
version = "1.23.7";
src = fetchFromGitHub {
owner = "kubernetes";
repo = "kubernetes";
rev = "v${version}";
sha256 = "sha256-YHlcopB47HVLO/4QI8HxjMBzCpcHVnlAz3EOmZI+EG8=";
};
nativeBuildInputs = [ makeWrapper which go rsync installShellFiles ];
outputs = [ "out" "man" "pause" ];
patches = [ ./fixup-addonmanager-lib-path.patch ];
postPatch = ''
substituteInPlace "hack/update-generated-docs.sh" --replace "make" "make SHELL=${stdenv.shell}"
patchShebangs ./hack
'';
WHAT = lib.concatStringsSep " " ([
"cmd/kubeadm"
] ++ components);
postBuild = ''
./hack/update-generated-docs.sh
'';
installPhase = ''
runHook preInstall
for p in $WHAT; do
install -D _output/local/go/bin/''${p##*/} -t $out/bin
done
cc build/pause/linux/pause.c -o pause
install -D pause -t $pause/bin
rm docs/man/man1/kubectl*
installManPage docs/man/man1/*.[1-9]
ln -s ${kubectl}/bin/kubectl $out/bin/kubectl
# Unfortunately, kube-addons-main.sh only looks for the lib file in either the
# current working dir or in /opt. We have to patch this for now.
substitute cluster/addons/addon-manager/kube-addons-main.sh $out/bin/kube-addons \
--subst-var out
chmod +x $out/bin/kube-addons
patchShebangs $out/bin/kube-addons
wrapProgram $out/bin/kube-addons --set "KUBECTL_BIN" "$out/bin/kubectl"
cp cluster/addons/addon-manager/kube-addons.sh $out/bin/kube-addons-lib.sh
installShellCompletion --cmd kubeadm \
--bash <($out/bin/kubeadm completion bash) \
--zsh <($out/bin/kubeadm completion zsh)
runHook postInstall
'';
disallowedReferences = [ go ];
GOFLAGS = [ "-trimpath" ];
meta = with lib; {
description = "Production-Grade Container Scheduling and Management";
license = licenses.asl20;
homepage = "https://kubernetes.io";
maintainers = with maintainers; [ ] ++ teams.kubernetes.members;
platforms = platforms.linux;
};
passthru.tests = nixosTests.kubernetes;
}

View file

@ -0,0 +1,23 @@
diff --git a/cluster/addons/addon-manager/kube-addons-main.sh b/cluster/addons/addon-manager/kube-addons-main.sh
index 849973470d1..e4fef30eaea 100755
--- a/cluster/addons/addon-manager/kube-addons-main.sh
+++ b/cluster/addons/addon-manager/kube-addons-main.sh
@@ -17,17 +17,7 @@
# Import required functions. The addon manager is installed to /opt in
# production use (see the Dockerfile)
# Disabling shellcheck following files as the full path would be required.
-if [ -f "kube-addons.sh" ]; then
- # shellcheck disable=SC1091
- source "kube-addons.sh"
-elif [ -f "/opt/kube-addons.sh" ]; then
- # shellcheck disable=SC1091
- source "/opt/kube-addons.sh"
-else
- # If the required source is missing, we have to fail.
- log ERR "== Could not find kube-addons.sh (not in working directory or /opt) at $(date -Is) =="
- exit 1
-fi
+source "@out@/bin/kube-addons-lib.sh"
# The business logic for whether a given object should be created
# was already enforced by salt, and /etc/kubernetes/addons is the

View file

@ -0,0 +1,38 @@
{ lib, stdenv, kubernetes }:
stdenv.mkDerivation rec {
pname = "kubectl";
inherit (kubernetes)
disallowedReferences
GOFLAGS
nativeBuildInputs
postBuild
postPatch
src
version
;
outputs = [ "out" "man" ];
WHAT = "cmd/kubectl";
installPhase = ''
runHook preInstall
install -D _output/local/go/bin/kubectl -t $out/bin
installManPage docs/man/man1/kubectl*
installShellCompletion --cmd kubectl \
--bash <($out/bin/kubectl completion bash) \
--fish <($out/bin/kubectl completion fish) \
--zsh <($out/bin/kubectl completion zsh)
runHook postInstall
'';
meta = kubernetes.meta // {
description = "Kubernetes CLI";
homepage = "https://github.com/kubernetes/kubectl";
platforms = lib.platforms.unix;
};
}