Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Build tbot without CGO #43112

Closed
5 tasks done
rosstimothy opened this issue Jun 17, 2024 · 3 comments · Fixed by #43309
Closed
5 tasks done

Build tbot without CGO #43112

rosstimothy opened this issue Jun 17, 2024 · 3 comments · Fixed by #43309
Labels
feature-request Used for new features in Teleport, improvements to current should be #enhancements machine-id

Comments

@rosstimothy
Copy link
Contributor

rosstimothy commented Jun 17, 2024

  • Separate process storage from process state to eliminate sqlite
  • Remove getLoginShell from lib/client
  • Remove github.com/flynn/u2f/u2fhid from lib/client
  • Remove devicetrust native apis from lib/client (macOS only)
  • Update builds to use CGO_ENALBED=0
@rosstimothy rosstimothy added the feature-request Used for new features in Teleport, improvements to current should be #enhancements label Jun 17, 2024
@strideynet
Copy link
Contributor

How challenging for us to also add a job to the CI that ensures we can build tbot without CGO ? It'd be good to catch regressions.

@rosstimothy
Copy link
Contributor Author

How challenging for us to also add a job to the CI that ensures we can build tbot without CGO ? It'd be good to catch regressions.

Would it make more sense to start building tbot exclusively with cgo disabled so there is no chance for a regression?

rosstimothy added a commit that referenced this issue Jun 17, 2024
The shell package requires cgo and by importing it in lib/client,
which all client tools have in their dependency tree, it prevents
them  from building without GCO_ENBALED=1.

Updates #43112.
github-merge-queue bot pushed a commit that referenced this issue Jun 17, 2024
The shell package requires cgo and by importing it in lib/client,
which all client tools have in their dependency tree, it prevents
them  from building without GCO_ENBALED=1.

Updates #43112.
rosstimothy added a commit that referenced this issue Jun 17, 2024
U2F support was deprecated in favor of WebAuthn many releases ago, however,
not all references were removed when working on
#10375. This eliminates
the last remaining inclusions of github.com/flynn/u2f and
github.com/flynn/hid from lib/client and drops all support of
falling back to U2F if client tools are not built with FIDO2
enabled.

In practice, this should only cause problems for people building
tsh/tctl locally without setting the correct build flags. All
release artifacts published should already be built with the
appropriate flags and not cause any issues as a result.

Updates #43112.
github-actions bot pushed a commit that referenced this issue Jun 17, 2024
The shell package requires cgo and by importing it in lib/client,
which all client tools have in their dependency tree, it prevents
them  from building without GCO_ENBALED=1.

Updates #43112.
github-actions bot pushed a commit that referenced this issue Jun 17, 2024
The shell package requires cgo and by importing it in lib/client,
which all client tools have in their dependency tree, it prevents
them  from building without GCO_ENBALED=1.

Updates #43112.
rosstimothy added a commit that referenced this issue Jun 17, 2024
The shell package requires cgo and by importing it in lib/client,
which all client tools have in their dependency tree, it prevents
them  from building without GCO_ENBALED=1.

Updates #43112.
github-merge-queue bot pushed a commit that referenced this issue Jun 17, 2024
U2F support was deprecated in favor of WebAuthn many releases ago, however,
not all references were removed when working on
#10375. This eliminates
the last remaining inclusions of github.com/flynn/u2f and
github.com/flynn/hid from lib/client and drops all support of
falling back to U2F if client tools are not built with FIDO2
enabled.

In practice, this should only cause problems for people building
tsh/tctl locally without setting the correct build flags. All
release artifacts published should already be built with the
appropriate flags and not cause any issues as a result.

Updates #43112.
github-actions bot pushed a commit that referenced this issue Jun 17, 2024
U2F support was deprecated in favor of WebAuthn many releases ago, however,
not all references were removed when working on
#10375. This eliminates
the last remaining inclusions of github.com/flynn/u2f and
github.com/flynn/hid from lib/client and drops all support of
falling back to U2F if client tools are not built with FIDO2
enabled.

In practice, this should only cause problems for people building
tsh/tctl locally without setting the correct build flags. All
release artifacts published should already be built with the
appropriate flags and not cause any issues as a result.

Updates #43112.
@strideynet
Copy link
Contributor

Would it make more sense to start building tbot exclusively with cgo disabled so there is no chance for a regression?

I'm starting to think it would make sense - I had some initial concerns about DNS resolution but I think in most cases, those ought not to be a concern in the environments tbot operates in.

github-merge-queue bot pushed a commit that referenced this issue Jun 18, 2024
The shell package requires cgo and by importing it in lib/client,
which all client tools have in their dependency tree, it prevents
them  from building without GCO_ENBALED=1.

Updates #43112.
github-merge-queue bot pushed a commit that referenced this issue Jun 18, 2024
The shell package requires cgo and by importing it in lib/client,
which all client tools have in their dependency tree, it prevents
them  from building without GCO_ENBALED=1.

Updates #43112.
github-merge-queue bot pushed a commit that referenced this issue Jun 18, 2024
The shell package requires cgo and by importing it in lib/client,
which all client tools have in their dependency tree, it prevents
them  from building without GCO_ENBALED=1.

Updates #43112.
rosstimothy added a commit that referenced this issue Jun 18, 2024
rosstimothy added a commit that referenced this issue Jun 20, 2024
The native device trust libraries included in lib/devicetrust
prevent building client tools that don't use device trust from
building with cgo disabled. This moves the default device auth
ceremony and device enrollment from lib/client into a location
specific to tsh since it's the only tool that requires them.

Updates #43112.
rosstimothy added a commit that referenced this issue Jun 20, 2024
U2F support was deprecated in favor of WebAuthn many releases ago, however,
not all references were removed when working on
#10375. This eliminates
the last remaining inclusions of github.com/flynn/u2f and
github.com/flynn/hid from lib/client and drops all support of
falling back to U2F if client tools are not built with FIDO2
enabled.

In practice, this should only cause problems for people building
tsh/tctl locally without setting the correct build flags. All
release artifacts published should already be built with the
appropriate flags and not cause any issues as a result.

Updates #43112.
rosstimothy added a commit that referenced this issue Jun 20, 2024
U2F support was deprecated in favor of WebAuthn many releases ago, however,
not all references were removed when working on
#10375. This eliminates
the last remaining inclusions of github.com/flynn/u2f and
github.com/flynn/hid from lib/client and drops all support of
falling back to U2F if client tools are not built with FIDO2
enabled.

In practice, this should only cause problems for people building
tsh/tctl locally without setting the correct build flags. All
release artifacts published should already be built with the
appropriate flags and not cause any issues as a result.

Updates #43112.
rosstimothy added a commit that referenced this issue Jun 20, 2024
U2F support was deprecated in favor of WebAuthn many releases ago, however,
not all references were removed when working on
#10375. This eliminates
the last remaining inclusions of github.com/flynn/u2f and
github.com/flynn/hid from lib/client and drops all support of
falling back to U2F if client tools are not built with FIDO2
enabled.

In practice, this should only cause problems for people building
tsh/tctl locally without setting the correct build flags. All
release artifacts published should already be built with the
appropriate flags and not cause any issues as a result.

Updates #43112.
github-merge-queue bot pushed a commit that referenced this issue Jun 20, 2024
The native device trust libraries included in lib/devicetrust
prevent building client tools that don't use device trust from
building with cgo disabled. This moves the default device auth
ceremony and device enrollment from lib/client into a location
specific to tsh since it's the only tool that requires them.

Updates #43112.
github-actions bot pushed a commit that referenced this issue Jun 20, 2024
The native device trust libraries included in lib/devicetrust
prevent building client tools that don't use device trust from
building with cgo disabled. This moves the default device auth
ceremony and device enrollment from lib/client into a location
specific to tsh since it's the only tool that requires them.

Updates #43112.
github-actions bot pushed a commit that referenced this issue Jun 20, 2024
The native device trust libraries included in lib/devicetrust
prevent building client tools that don't use device trust from
building with cgo disabled. This moves the default device auth
ceremony and device enrollment from lib/client into a location
specific to tsh since it's the only tool that requires them.

Updates #43112.
rosstimothy added a commit that referenced this issue Jun 20, 2024
The native device trust libraries included in lib/devicetrust
prevent building client tools that don't use device trust from
building with cgo disabled. This moves the default device auth
ceremony and device enrollment from lib/client into a location
specific to tsh since it's the only tool that requires them.

Updates #43112.
github-merge-queue bot pushed a commit that referenced this issue Jun 20, 2024
The native device trust libraries included in lib/devicetrust
prevent building client tools that don't use device trust from
building with cgo disabled. This moves the default device auth
ceremony and device enrollment from lib/client into a location
specific to tsh since it's the only tool that requires them.

Updates #43112.
github-merge-queue bot pushed a commit that referenced this issue Jun 20, 2024
The native device trust libraries included in lib/devicetrust
prevent building client tools that don't use device trust from
building with cgo disabled. This moves the default device auth
ceremony and device enrollment from lib/client into a location
specific to tsh since it's the only tool that requires them.

Updates #43112.
github-merge-queue bot pushed a commit that referenced this issue Jun 20, 2024
The native device trust libraries included in lib/devicetrust
prevent building client tools that don't use device trust from
building with cgo disabled. This moves the default device auth
ceremony and device enrollment from lib/client into a location
specific to tsh since it's the only tool that requires them.

Updates #43112.
rosstimothy added a commit that referenced this issue Jun 20, 2024
github-merge-queue bot pushed a commit that referenced this issue Jun 24, 2024
U2F support was deprecated in favor of WebAuthn many releases ago, however,
not all references were removed when working on
#10375. This eliminates
the last remaining inclusions of github.com/flynn/u2f and
github.com/flynn/hid from lib/client and drops all support of
falling back to U2F if client tools are not built with FIDO2
enabled.

In practice, this should only cause problems for people building
tsh/tctl locally without setting the correct build flags. All
release artifacts published should already be built with the
appropriate flags and not cause any issues as a result.

Updates #43112.
github-merge-queue bot pushed a commit that referenced this issue Jun 24, 2024
U2F support was deprecated in favor of WebAuthn many releases ago, however,
not all references were removed when working on
#10375. This eliminates
the last remaining inclusions of github.com/flynn/u2f and
github.com/flynn/hid from lib/client and drops all support of
falling back to U2F if client tools are not built with FIDO2
enabled.

In practice, this should only cause problems for people building
tsh/tctl locally without setting the correct build flags. All
release artifacts published should already be built with the
appropriate flags and not cause any issues as a result.

Updates #43112.
github-merge-queue bot pushed a commit that referenced this issue Jun 24, 2024
U2F support was deprecated in favor of WebAuthn many releases ago, however,
not all references were removed when working on
#10375. This eliminates
the last remaining inclusions of github.com/flynn/u2f and
github.com/flynn/hid from lib/client and drops all support of
falling back to U2F if client tools are not built with FIDO2
enabled.

In practice, this should only cause problems for people building
tsh/tctl locally without setting the correct build flags. All
release artifacts published should already be built with the
appropriate flags and not cause any issues as a result.

Updates #43112.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature-request Used for new features in Teleport, improvements to current should be #enhancements machine-id
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants