diff options
| author | Ophestra <cat@gensokyo.uk> | 2026-02-05 19:10:32 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2026-02-05 19:10:32 +0900 |
| commit | ce6b3ff53be779a871d66cb820aa13f566080d05 (patch) | |
| tree | ca4cdcc0eef1d2f3dd7dfa3adf8e39aecae01378 | |
| parent | 30afa0e2ab25cf989ad6c01a70491a727a9aee72 (diff) | |
internal/rosa: unzip artifact
Because the zip format is too awful and cannot be streamed anyway, supporting it natively comes with no benefit.
Signed-off-by: Ophestra <cat@gensokyo.uk>
| -rw-r--r-- | internal/rosa/all.go | 2 | ||||
| -rw-r--r-- | internal/rosa/unzip.go | 34 |
2 files changed, 36 insertions, 0 deletions
diff --git a/internal/rosa/all.go b/internal/rosa/all.go index f82841ea..f600f061 100644 --- a/internal/rosa/all.go +++ b/internal/rosa/all.go @@ -61,6 +61,7 @@ const ( Setuptools Toybox toyboxEarly + Unzip utilMacros Wayland WaylandProtocols @@ -147,6 +148,7 @@ func ResolveName(name string) (p PArtifact, ok bool) { "sed": Sed, "setuptools": Setuptools, "toybox": Toybox, + "unzip": Unzip, "wayland": Wayland, "wayland-protocols": WaylandProtocols, "xcb": XCB, diff --git a/internal/rosa/unzip.go b/internal/rosa/unzip.go new file mode 100644 index 00000000..84e6120c --- /dev/null +++ b/internal/rosa/unzip.go @@ -0,0 +1,34 @@ +package rosa + +import ( + "strings" + + "hakurei.app/internal/pkg" +) + +func (t Toolchain) newUnzip() pkg.Artifact { + const ( + version = "6.0" + checksum = "fcqjB1IOVRNJ16K5gTGEDt3zCJDVBc7EDSra9w3H93stqkNwH1vaPQs_QGOpQZu1" + ) + return t.New("unzip-"+version, 0, []pkg.Artifact{ + t.Load(Make), + t.Load(Coreutils), + }, nil, nil, ` +cd /usr/src/unzip/ +unix/configure +make -f unix/Makefile generic1 + +mkdir -p /work/system/bin/ +mv unzip /work/system/bin/ +`, pkg.Path(AbsUsrSrc.Append("unzip"), true, t.NewPatchedSource( + "unzip", version, pkg.NewHTTPGetTar( + nil, "https://downloads.sourceforge.net/project/infozip/"+ + "UnZip%206.x%20%28latest%29/UnZip%20"+version+"/"+ + "unzip"+strings.ReplaceAll(version, ".", "")+".tar.gz", + mustDecode(checksum), + pkg.TarGzip, + ), false, + ))) +} +func init() { artifactsF[Unzip] = Toolchain.newUnzip } |
