Skip to content

Remove gettext-base/envsubst dependency from astral.sh-uv, opencode.ai, atuin.sh, and btop - #79

Merged
sebst merged 7 commits into
mainfrom
copilot/fix-gettext-base-installation
Mar 16, 2026
Merged

sebst merged 7 commits into
mainfrom
copilot/fix-gettext-base-installation

Conversation

Copilot AI commented Feb 27, 2026 •

Copy link
Copy Markdown
Contributor

gettext-base is unavailable on some minimal base images, causing envsubst-dependent features to fail at install time. btop was additionally broken by a renamed release asset.

Changes

Drop envsubst / gettext-base across four features

Replace the template-variable pattern with direct bash expansion:

# Before
readonly downloadUrlTemplate='https://github.com/${githubRepository}/releases/download/${version}/...'
readonly downloadUrl="$(echo -n "$downloadUrlTemplate" | envsubst)"

# After
readonly downloadUrl="https://github.com/${githubRepository}/releases/download/${releaseTag}/..."
  • All four features: remove *Template variable declarations, eliminate envsubst/gettext-base from prerequisite checks, rename check_curl_envsubst_* → check_curl_*
  • astral.sh-uv, opencode.ai, atuin.sh, btop: add github_get_tag_for_version helper to resolve the actual release tag (handles optional v prefix), use ${releaseTag} directly in the download URL

btop URL fix

Release assets changed from btop-<arch>-linux-musl.tbz → btop-<arch>-unknown-linux-musl.tbz; URL updated accordingly.

opencode.ai repo rename

GitHub repository updated from sst/opencode → anomalyco/opencode.

Version bumps

astral.sh-uv → 1.0.3 · atuin.sh → 1.0.2 · btop → 1.0.2 · opencode.ai → 1.0.3

Original prompt

This section details on the original issue you should resolve

<issue_title>opencode.ai / astral.sh-uv installs fail due to missing gettext-base</issue_title>
<issue_description>Both opencode.ai and astral.sh-uv need gettext-base.

Installation in the devcontainer fails with

 > [dev_containers_target_stage 5/9] RUN --mount=type=bind,from=dev_containers_feature_content_source,source=astral.sh-uv_0,target=/tmp/build-features-src/astral.sh-uv_0     cp -ar /tmp/build-features-src/astral.sh-uv_0 /tmp/dev-container-features  && chmod -R 0755 /tmp/dev-container-features/astral.sh-uv_0  && cd /tmp/dev-container-features/astral.sh-uv_0  && chmod +x ./devcontainer-features-install.sh  && ./devcontainer-features-install.sh  && rm -rf /tmp/dev-container-features/astral.sh-uv_0:
0.213 ===========================================================================
0.213 Feature       : astral.sh/uv
0.213 Description   : Install "uv" and "uvx" binaries
0.213 Id            : ghcr.io/devcontainer-community/devcontainer-features/astral.sh-uv
0.213 Version       : 1.0.1
0.213 Documentation : https://github.com/devcontainer-community/devcontainer-features/tree/main/src/uv
0.213 Options       :
0.213     VERSION="latest"
0.213     SHELLAUTOCOMPLETION="true"
0.213 ===========================================================================
0.216 devcontainer.community
0.216 Installing uv...
0.240 Reading package lists...
0.252 Building dependency tree...
0.253 Reading state information...
0.254 Package gettext-base is not available, but is referred to by another package.
0.254 This may mean that the package is missing, has been obsoleted, or
0.254 is only available from another source
0.254 
0.254 E: Package 'gettext-base' has no installation candidate
0.255 ERROR: Feature "astral.sh/uv" (ghcr.io/devcontainer-community/devcontainer-features/astral.sh-uv) failed to install! Look at the documentation at https://github.com/devcontainer-community/devcontainer-features/tree/main/src/uv for help troubleshooting this error.

or similar in case of opencode.ai.</issue_description>

Comments on the Issue (you are @copilot in this section)


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

…encode.ai

Co-authored-by: sebst <592313+sebst@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix installation failure due to missing gettext-base Remove gettext-base/envsubst dependency from astral.sh-uv and opencode.ai Feb 27, 2026
@sebst

sebst commented Mar 16, 2026

Copy link
Copy Markdown
Member

@copilot tests are failing (btop, opencode, atuin)

… btop URL format

Co-authored-by: sebst <592313+sebst@users.noreply.github.com>

Copilot AI commented Mar 16, 2026

Copy link
Copy Markdown
Contributor Author

@copilot tests are failing (btop, opencode, atuin)

Fixed in commit ac4900e.

  • atuin: Removed the gettext-base/envsubst dependency (same fix applied earlier to astral.sh-uv and opencode.ai) — URLs are now built directly using bash variable expansion.
  • btop: Removed the gettext-base/envsubst dependency, and also fixed the download URL format — btop's release assets changed from btop-x86_64-linux-musl.tbz to btop-x86_64-unknown-linux-musl.tbz, which was causing the 404 errors.
  • opencode: Was already fixed in the previous commit (28f2914).

Copilot AI changed the title Remove gettext-base/envsubst dependency from astral.sh-uv and opencode.ai Remove gettext-base/envsubst dependency from astral.sh-uv, opencode.ai, atuin.sh, and btop Mar 16, 2026
Copilot AI requested a review from sebst March 16, 2026 13:45

@sebst sebst left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tests fail for:

  • asdf-vm.com

Merge conflicts. If in doubt, further increase patch version in devcontainer-feature.json files.

Co-authored-by: sebst <592313+sebst@users.noreply.github.com>

Copilot AI commented Mar 16, 2026

Copy link
Copy Markdown
Contributor Author

Tests fail for:

  • asdf-vm.com
    ...

Fixed in commit 98ad2a0. Synced asdf-vm.com with the main branch changes from PRs #80–#83: the install script now supports binary installation for asdf ≥0.16.0, uses the /releases/latest API endpoint, and the version is bumped to 1.0.2 to resolve the merge conflict.

Copilot AI requested a review from sebst March 16, 2026 14:04
@sebst
sebst marked this pull request as ready for review March 16, 2026 14:05
@sebst

sebst commented Mar 16, 2026

Copy link
Copy Markdown
Member

Resolve merge conflicts, @copilot !

…envsubst dependency

Co-authored-by: sebst <592313+sebst@users.noreply.github.com>

Copilot AI commented Mar 16, 2026

Copy link
Copy Markdown
Contributor Author

Resolve merge conflicts, @copilot !

Resolved in commit 6a549f9. The branch now incorporates all of main's concurrent changes (PRs #81–#83) and resolves the conflicts by:

  • Incorporating github_get_tag_for_version from main and using ${releaseTag} directly in URLs (no envsubst)
  • Updating opencode.ai repo to anomalyco/opencode
  • Bumping versions above both branch and main: astral.sh-uv → 1.0.2, atuin.sh → 1.0.2, btop → 1.0.2, opencode.ai → 1.0.3

Copilot AI and others added 2 commits March 16, 2026 14:50
Co-authored-by: sebst <592313+sebst@users.noreply.github.com>
@sebst
sebst merged commit d8773bc into main Mar 16, 2026
81 checks passed
@sebst
sebst deleted the copilot/fix-gettext-base-installation branch March 16, 2026 14:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

opencode.ai / astral.sh-uv installs fail due to missing gettext-base

2 participants