carvel-dev / carvel-dev/ytt

Install script should use something other than `shasum`

Open
#537 1 comment 10 reactions 0 assignees View on GitHub
carvel accepted enhancement priority/unprioritized-backlog
Dominant language
Go
Stars
1.9k
Forks
167
PR merge metrics
No merged PRs in 30d

Description

**Describe the problem/challenge you have**
I was trying to create a docker container to use ytt during a ci/cd operation, and found that the install script wants 'shasum` to be installed, which is apparently part of perl-utils in alpine, which of course also requires perl.

```
/ # apk add shasum
fetch https://dl-cdn.alpinelinux.org/alpine/v3.14/main/x86_64/APKINDEX.tar.gz
fetch https://dl-cdn.alpinelinux.org/alpine/v3.14/community/x86_64/APKINDEX.tar.gz
ERROR: unable to select packages:
shasum (no such package):
required by: world[shasum]
/ # apk add perl-utils
(1/3) Installing libbz2 (1.0.8-r1)
(2/3) Installing perl (5.32.1-r0)
(3/3) Installing perl-utils (5.32.1-r0)
Executing busybox-1.33.1-r3.trigger
OK: 43 MiB in 17 packages
```

As it shows above, this results in 43MiB larger docker image, unnecessarily.

**Describe the solution you'd like**

I love that the install script is checking SHA sums, but maybe we could use something other than "shasum" executable?

Maybe `sha256sum` directly?

**Anything else you would like to add:**

I know there are other workarounds... just a suggestion/recommendation.

---
Vote on this request

This is an invitation to the community to vote on issues, to help us prioritize our backlog. Use the "smiley face" up to the right of this comment to vote.

👍 "I would like to see this addressed as soon as possible"
👎 "There are other more important things to focus on right now"

We are also happy to receive and review Pull Requests if you want to help working on this issue.

Contributor guide

Open the contributing guide

Research direction

Locate the install script and find where it invokes `shasum`; first compare the available checksum tools in the Alpine container described in the issue. Done means the script still verifies downloads while avoiding the unnecessary Perl-based dependency, with the install path or relevant checks rerun to confirm it works.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, shell
Domain
cli, devops
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.