diff --git a/pkgs/by-name/ss/ssm-session-manager-plugin/0001-module-support.patch b/pkgs/by-name/ss/ssm-session-manager-plugin/0001-module-support.patch new file mode 100644 index 000000000000..c12bf9d857d3 --- /dev/null +++ b/pkgs/by-name/ss/ssm-session-manager-plugin/0001-module-support.patch @@ -0,0 +1,96 @@ +From e246c4f87c1af78be5f5a76f79bd66c27d63918f Mon Sep 17 00:00:00 2001 +From: Paul Meyer <49727155+katexochen@users.noreply.github.com> +Date: Wed, 3 Jul 2024 21:38:15 +0200 +Subject: [PATCH] module support + +Signed-off-by: Paul Meyer <49727155+katexochen@users.noreply.github.com> +--- + go.mod | 26 ++++++++++++++++++++++++++ + go.sum | 42 ++++++++++++++++++++++++++++++++++++++++++ + 2 files changed, 68 insertions(+) + create mode 100644 go.mod + create mode 100644 go.sum + +diff --git a/go.mod b/go.mod +new file mode 100644 +index 00000000..51c79d4c +--- /dev/null ++++ b/go.mod +@@ -0,0 +1,26 @@ ++module github.com/aws/session-manager-plugin ++ ++go 1.22.3 ++ ++require ( ++ github.com/aws/aws-sdk-go v1.54.14 ++ github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 ++ github.com/eiannone/keyboard v0.0.0-20220611211555-0d226195f203 ++ github.com/fsnotify/fsnotify v1.7.0 ++ github.com/gorilla/websocket v1.5.3 ++ github.com/stretchr/testify v1.9.0 ++ github.com/twinj/uuid v0.0.0-20151029044442-89173bcdda19 ++ github.com/xtaci/smux v1.5.24 ++ golang.org/x/crypto v0.24.0 ++ golang.org/x/sync v0.7.0 ++ golang.org/x/sys v0.21.0 ++) ++ ++require ( ++ github.com/davecgh/go-spew v1.1.1 // indirect ++ github.com/jmespath/go-jmespath v0.4.0 // indirect ++ github.com/pmezard/go-difflib v1.0.0 // indirect ++ github.com/stretchr/objx v0.5.2 // indirect ++ golang.org/x/term v0.21.0 // indirect ++ gopkg.in/yaml.v3 v3.0.1 // indirect ++) +diff --git a/go.sum b/go.sum +new file mode 100644 +index 00000000..ca623749 +--- /dev/null ++++ b/go.sum +@@ -0,0 +1,42 @@ ++github.com/aws/aws-sdk-go v1.54.14 h1:llJ60MzLzovyDE/rEDbUjS1cICh7krk1PwQwNlKRoeQ= ++github.com/aws/aws-sdk-go v1.54.14/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU= ++github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575 h1:kHaBemcxl8o/pQ5VM1c8PVE1PubbNx3mjUr09OqWGCs= ++github.com/cihub/seelog v0.0.0-20170130134532-f561c5e57575/go.mod h1:9d6lWj8KzO/fd/NrVaLscBKmPigpZpn5YawRPw+e3Yo= ++github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= ++github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= ++github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= ++github.com/eiannone/keyboard v0.0.0-20220611211555-0d226195f203 h1:XBBHcIb256gUJtLmY22n99HaZTz+r2Z51xUPi01m3wg= ++github.com/eiannone/keyboard v0.0.0-20220611211555-0d226195f203/go.mod h1:E1jcSv8FaEny+OP/5k9UxZVw9YFWGj7eI4KR/iOBqCg= ++github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= ++github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= ++github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg= ++github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= ++github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= ++github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= ++github.com/jmespath/go-jmespath/internal/testify v1.5.1 h1:shLQSRRSCCPj3f2gpwzGwWFoC7ycTf1rcQZHOlsJ6N8= ++github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= ++github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= ++github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= ++github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= ++github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= ++github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= ++github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= ++github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= ++github.com/twinj/uuid v0.0.0-20151029044442-89173bcdda19 h1:HlxV0XiEKMMyjS3gGtJmmFZsxQ22GsLvA7F980il+1w= ++github.com/twinj/uuid v0.0.0-20151029044442-89173bcdda19/go.mod h1:mMgcE1RHFUFqe5AfiwlINXisXfDGro23fWdPUfOMjRY= ++github.com/xtaci/smux v1.5.24 h1:77emW9dtnOxxOQ5ltR+8BbsX1kzcOxQ5gB+aaV9hXOY= ++github.com/xtaci/smux v1.5.24/go.mod h1:OMlQbT5vcgl2gb49mFkYo6SMf+zP3rcjcwQz7ZU7IGY= ++golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= ++golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= ++golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= ++golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= ++golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= ++golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= ++golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= ++golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= ++gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= ++gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= ++gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= ++gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= ++gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= ++gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +-- +2.45.1 + diff --git a/pkgs/by-name/ss/ssm-session-manager-plugin/package.nix b/pkgs/by-name/ss/ssm-session-manager-plugin/package.nix index ec0783001ace..a3be74879368 100644 --- a/pkgs/by-name/ss/ssm-session-manager-plugin/package.nix +++ b/pkgs/by-name/ss/ssm-session-manager-plugin/package.nix @@ -1,14 +1,12 @@ { lib , fetchFromGitHub -, buildGoPackage +, buildGoModule +, fetchpatch }: - -buildGoPackage rec { +buildGoModule rec { pname = "ssm-session-manager-plugin"; version = "1.2.650.0"; - goPackagePath = "github.com/aws/session-manager-plugin"; - src = fetchFromGitHub { owner = "aws"; repo = "session-manager-plugin"; @@ -16,40 +14,57 @@ buildGoPackage rec { hash = "sha256-IcDVt/iE/EYV9Blvl7Gj0UFJcdsUCFdaSQkIto0CKRI="; }; + patches = [ + # Add support for Go modules. + # + # This patch doesn't belong to any upstream PR, it is specially crafted for + # nixpkgs. Deleting the vendor dir is left out from the patch and done in + # postPatch instead, as otherwise the patch would be to big and GitHub returns + # an error. + # + # With https://github.com/aws/session-manager-plugin/pull/74 there is an + # upstream PR with the same goal. It isn't pulled here as patch for the same + # reason. + # + # Notice that the dependencies are pinned with the patch, and upstream dependency + # updates won't take effect. Patch should be recreated from time to time. + # - `rm -rf vendor` + # - `go mod init github.com/aws/session-manager-plugin` + # - `go mod tidy` + # - `go get github.com/twinj/uuid@v0.0.0-20151029044442-89173bcdda19` + # - `go mod tidy` + # - `git checkout HEAD vendor` + ./0001-module-support.patch + ]; + postPatch = '' - mv vendor{,-old} - mv vendor-old/src vendor - rm -r vendor-old + rm -rf vendor ''; + vendorHash = "sha256-wK+aWRC5yrPtdihXAj6RlYC9ZTTPuGUg9wLY33skzeE="; + + subPackages = [ "src/sessionmanagerplugin-main" ]; + preBuild = '' - pushd go/src/${lib.escapeShellArg goPackagePath} echo -n ${lib.escapeShellArg version} > VERSION go run src/version/versiongenerator/version-gen.go - popd ''; doCheck = true; checkFlags = [ "-skip=TestSetSessionHandlers" ]; preCheck = '' - if ! [[ $(go/bin/sessionmanagerplugin-main --version) = ${lib.escapeShellArg version} ]]; then + if ! [[ $($GOPATH/bin/sessionmanagerplugin-main --version) = ${lib.escapeShellArg version} ]]; then echo 'wrong version' exit 1 fi ''; - installPhase = '' - runHook preInstall - install -Dm555 go/bin/sessionmanagerplugin-main "$out/bin/session-manager-plugin" - runHook postInstall - ''; - - meta = with lib; { + meta = { homepage = "https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html"; description = "Amazon SSM Session Manager Plugin"; mainProgram = "session-manager-plugin"; - license = licenses.asl20; - maintainers = with maintainers; [ amarshall mbaillie ]; + license = lib.licenses.asl20; + maintainers = with lib.maintainers; [ amarshall mbaillie ]; }; }