internal/rosa: provide package metadata
All checks were successful
Test / Create distribution (push) Successful in 59s
Test / Sandbox (push) Successful in 2m32s
Test / Hakurei (push) Successful in 3m39s
Test / ShareFS (push) Successful in 3m44s
Test / Sandbox (race detector) (push) Successful in 5m0s
Test / Hakurei (race detector) (push) Successful in 5m56s
Test / Flake checks (push) Successful in 1m29s

This had to be done out-of-band because there was no way to efficiently represent these within Artifact.

Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
2026-03-04 18:01:18 +09:00
parent 6fdd800b2b
commit 7636f39066
59 changed files with 1286 additions and 478 deletions

View File

@@ -2,7 +2,7 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newAttr() pkg.Artifact {
func (t Toolchain) newAttr() (pkg.Artifact, string) {
const (
version = "2.5.2"
checksum = "YWEphrz6vg1sUMmHHVr1CRo53pFXRhq_pjN-AlG8UgwZK1y6m7zuDhxqJhD0SV0l"
@@ -62,11 +62,19 @@ ln -s ../../system/bin/perl /usr/bin
`,
}, (*MakeHelper)(nil),
Perl,
)
), version
}
func init() { artifactsF[Attr] = Toolchain.newAttr }
func init() {
artifactsM[Attr] = Metadata{
f: Toolchain.newAttr,
func (t Toolchain) newACL() pkg.Artifact {
Name: "attr",
Description: "Commands for Manipulating Filesystem Extended Attributes",
Website: "https://savannah.nongnu.org/projects/attr/",
}
}
func (t Toolchain) newACL() (pkg.Artifact, string) {
const (
version = "2.3.2"
checksum = "-fY5nwH4K8ZHBCRXrzLdguPkqjKI6WIiGu4dBtrZ1o0t6AIU73w8wwJz_UyjIS0P"
@@ -81,6 +89,14 @@ func (t Toolchain) newACL() pkg.Artifact {
SkipCheck: true,
},
Attr,
)
), version
}
func init() {
artifactsM[ACL] = Metadata{
f: Toolchain.newACL,
Name: "acl",
Description: "Commands for Manipulating POSIX Access Control Lists",
Website: "https://savannah.nongnu.org/projects/acl/",
}
}
func init() { artifactsF[ACL] = Toolchain.newACL }

View File

@@ -120,7 +120,10 @@ const (
Zlib
Zstd
buildcatrust
// _presetUnexportedStart is the first unexported preset.
_presetUnexportedStart
buildcatrust = iota - 1
utilMacros
// Musl is a standalone libc that does not depend on the toolchain.
@@ -138,131 +141,59 @@ const (
_presetEnd
)
var (
// artifactsF is an array of functions for the result of [PArtifact].
artifactsF [_presetEnd]func(t Toolchain) pkg.Artifact
// Metadata is stage-agnostic information of a [PArtifact] not directly
// representable in the resulting [pkg.Artifact].
type Metadata struct {
f func(t Toolchain) (a pkg.Artifact, version string)
// artifacts stores the result of artifactsF.
artifacts [_toolchainEnd][len(artifactsF)]pkg.Artifact
// Unique package name.
Name string `json:"name"`
// Short user-facing description.
Description string `json:"description"`
// Project home page.
Website string `json:"website,omitempty"`
}
// Unversioned denotes an unversioned [PArtifact].
const Unversioned = "\x00"
var (
// artifactsM is an array of [PArtifact] metadata.
artifactsM [_presetEnd]Metadata
// artifacts stores the result of Metadata.f.
artifacts [_toolchainEnd][len(artifactsM)]pkg.Artifact
// versions stores the version of [PArtifact].
versions [_toolchainEnd][len(artifactsM)]string
// artifactsOnce is for lazy initialisation of artifacts.
artifactsOnce [_toolchainEnd][len(artifactsF)]sync.Once
artifactsOnce [_toolchainEnd][len(artifactsM)]sync.Once
)
// GetMetadata returns [Metadata] of a [PArtifact].
func GetMetadata(p PArtifact) *Metadata { return &artifactsM[p] }
// Load returns the resulting [pkg.Artifact] of [PArtifact].
func (t Toolchain) Load(p PArtifact) pkg.Artifact {
artifactsOnce[t][p].Do(func() {
artifacts[t][p] = artifactsF[p](t)
artifacts[t][p], versions[t][p] = artifactsM[p].f(t)
})
return artifacts[t][p]
}
// Version returns the version string of [PArtifact].
func (t Toolchain) Version(p PArtifact) string {
artifactsOnce[t][p].Do(func() {
artifacts[t][p], versions[t][p] = artifactsM[p].f(t)
})
return versions[t][p]
}
// ResolveName returns a [PArtifact] by name.
func ResolveName(name string) (p PArtifact, ok bool) {
p, ok = map[string]PArtifact{
"initramfs-image": ImageInitramfs,
"kernel": Kernel,
"kernel-headers": KernelHeaders,
"kernel-source": KernelSource,
"acl": ACL,
"argp-standalone": ArgpStandalone,
"attr": Attr,
"autoconf": Autoconf,
"automake": Automake,
"bc": BC,
"bash": Bash,
"binutils": Binutils,
"bison": Bison,
"bzip2": Bzip2,
"cmake": CMake,
"coreutils": Coreutils,
"curl": Curl,
"dtc": DTC,
"diffutils": Diffutils,
"elfutils": Elfutils,
"fakeroot": Fakeroot,
"findutils": Findutils,
"flex": Flex,
"fuse": Fuse,
"gmp": GMP,
"glib": GLib,
"gawk": Gawk,
"gen_init_cpio": GenInitCPIO,
"gettext": Gettext,
"git": Git,
"go": Go,
"gperf": Gperf,
"grep": Grep,
"gzip": Gzip,
"hakurei": Hakurei,
"hakurei-dist": HakureiDist,
"iniconfig": IniConfig,
"kmod": Kmod,
"libXau": LibXau,
"libcap": Libcap,
"libexpat": Libexpat,
"libiconv": Libiconv,
"libpsl": Libpsl,
"libseccomp": Libseccomp,
"libucontext": Libucontext,
"libxml2": Libxml2,
"libxslt": Libxslt,
"libffi": Libffi,
"libgd": Libgd,
"libtool": Libtool,
"m4": M4,
"mpc": MPC,
"mpfr": MPFR,
"make": Make,
"meson": Meson,
"mksh": Mksh,
"musl-fts": MuslFts,
"musl-obstack": MuslObstack,
"nss": NSS,
"nss-cacert": NSSCACert,
"ncurses": Ncurses,
"ninja": Ninja,
"openssl": OpenSSL,
"pcre2": PCRE2,
"packaging": Packaging,
"patch": Patch,
"perl": Perl,
"Locale::gettext": PerlLocaleGettext,
"MIME::Charset": PerlMIMECharset,
"Module::Build": PerlModuleBuild,
"Pod::Parser": PerlPodParser,
"SGMLS": PerlSGMLS,
"Term::ReadKey": PerlTermReadKey,
"Text::CharWidth": PerlTextCharWidth,
"Text::WrapI18N": PerlTextWrapI18N,
"Unicode::GCString": PerlUnicodeGCString,
"YAML::Tiny": PerlYAMLTiny,
"pkg-config": PkgConfig,
"pluggy": Pluggy,
"procps": Procps,
"pytest": PyTest,
"pygments": Pygments,
"python": Python,
"qemu": QEMU,
"rsync": Rsync,
"sed": Sed,
"setuptools": Setuptools,
"squashfs-tools": SquashfsTools,
"tamago": TamaGo,
"tar": Tar,
"texinfo": Texinfo,
"toybox": Toybox,
"unzip": Unzip,
"util-linux": UtilLinux,
"wayland": Wayland,
"wayland-protocols": WaylandProtocols,
"xcb": XCB,
"xcb-proto": XCBProto,
"xproto": Xproto,
"xz": XZ,
"zlib": Zlib,
"zstd": Zstd,
}[name]
return
for i := range _presetUnexportedStart {
if name == artifactsM[i].Name {
return i, true
}
}
return 0, false
}

49
internal/rosa/all_test.go Normal file
View File

@@ -0,0 +1,49 @@
package rosa
import "testing"
func TestLoad(t *testing.T) {
t.Parallel()
for i := range _presetEnd {
p := PArtifact(i)
t.Run(GetMetadata(p).Name, func(t *testing.T) {
t.Parallel()
Std.Load(p)
})
}
}
func TestResolveName(t *testing.T) {
t.Parallel()
for i := range _presetUnexportedStart {
p := i
name := GetMetadata(p).Name
t.Run(name, func(t *testing.T) {
t.Parallel()
if got, ok := ResolveName(name); !ok {
t.Fatal("ResolveName: ok = false")
} else if got != p {
t.Fatalf("ResolveName: %d, want %d", got, p)
}
})
}
}
func TestResolveNameUnexported(t *testing.T) {
t.Parallel()
for i := _presetUnexportedStart; i < _presetEnd; i++ {
p := i
name := GetMetadata(p).Name
t.Run(name, func(t *testing.T) {
t.Parallel()
if got, ok := ResolveName(name); ok {
t.Fatalf("ResolveName: resolved unexported preset %d", got)
}
})
}
}

View File

@@ -2,7 +2,7 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newArgpStandalone() pkg.Artifact {
func (t Toolchain) newArgpStandalone() (pkg.Artifact, string) {
const (
version = "1.3"
checksum = "vtW0VyO2pJ-hPyYmDI2zwSLS8QL0sPAUKC1t3zNYbwN2TmsaE-fADhaVtNd3eNFl"
@@ -23,6 +23,14 @@ install -D -m755 libargp.a /work/system/lib/libargp.a
`,
},
Diffutils,
)
), version
}
func init() {
artifactsM[ArgpStandalone] = Metadata{
f: Toolchain.newArgpStandalone,
Name: "argp-standalone",
Description: "hierarchical argument parsing library broken out from glibc",
Website: "http://www.lysator.liu.se/~nisse/misc/",
}
}
func init() { artifactsF[ArgpStandalone] = Toolchain.newArgpStandalone }

View File

@@ -2,7 +2,7 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newBzip2() pkg.Artifact {
func (t Toolchain) newBzip2() (pkg.Artifact, string) {
const (
version = "1.0.8"
checksum = "cTLykcco7boom-s05H1JVsQi1AtChYL84nXkg_92Dm1Xt94Ob_qlMg_-NSguIK-c"
@@ -23,6 +23,14 @@ func (t Toolchain) newBzip2() pkg.Artifact {
"CC=cc",
},
Install: "make PREFIX=/work/system install",
})
}), version
}
func init() {
artifactsM[Bzip2] = Metadata{
f: Toolchain.newBzip2,
Name: "bzip2",
Description: "a freely available, patent free, high-quality data compressor",
Website: "https://sourceware.org/bzip2/",
}
}
func init() { artifactsF[Bzip2] = Toolchain.newBzip2 }

View File

@@ -8,7 +8,7 @@ import (
"hakurei.app/internal/pkg"
)
func (t Toolchain) newCMake() pkg.Artifact {
func (t Toolchain) newCMake() (pkg.Artifact, string) {
const (
version = "4.2.3"
checksum = "Y4uYGnLrDQX78UdzH7fMzfok46Nt_1taDIHSmqgboU1yFi6f0iAXBDegMCu4eS-J"
@@ -102,9 +102,17 @@ index 2ead810437..f85cbb8b1c 100644
},
},
KernelHeaders,
)
), version
}
func init() {
artifactsM[CMake] = Metadata{
f: Toolchain.newCMake,
Name: "cmake",
Description: "cross-platform, open-source build system",
Website: "https://cmake.org/",
}
}
func init() { artifactsF[CMake] = Toolchain.newCMake }
// CMakeHelper is the [CMake] build system helper.
type CMakeHelper struct {

View File

@@ -2,7 +2,7 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newCurl() pkg.Artifact {
func (t Toolchain) newCurl() (pkg.Artifact, string) {
const (
version = "8.18.0"
checksum = "YpOolP_sx1DIrCEJ3elgVAu0wTLDS-EZMZFvOP0eha7FaLueZUlEpuMwDzJNyi7i"
@@ -25,6 +25,14 @@ func (t Toolchain) newCurl() pkg.Artifact {
Libpsl,
OpenSSL,
)
), version
}
func init() {
artifactsM[Curl] = Metadata{
f: Toolchain.newCurl,
Name: "curl",
Description: "command line tool and library for transferring data with URLs",
Website: "https://curl.se/",
}
}
func init() { artifactsF[Curl] = Toolchain.newCurl }

View File

@@ -2,7 +2,7 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newDTC() pkg.Artifact {
func (t Toolchain) newDTC() (pkg.Artifact, string) {
const (
version = "1.7.2"
checksum = "vUoiRynPyYRexTpS6USweT5p4SVHvvVJs8uqFkkVD-YnFjwf6v3elQ0-Etrh00Dt"
@@ -28,6 +28,14 @@ func (t Toolchain) newDTC() pkg.Artifact {
M4,
Coreutils,
Diffutils,
)
), version
}
func init() {
artifactsM[DTC] = Metadata{
f: Toolchain.newDTC,
Name: "dtc",
Description: "The Device Tree Compiler",
Website: "https://git.kernel.org/pub/scm/utils/dtc/dtc.git/",
}
}
func init() { artifactsF[DTC] = Toolchain.newDTC }

View File

@@ -2,7 +2,7 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newElfutils() pkg.Artifact {
func (t Toolchain) newElfutils() (pkg.Artifact, string) {
const (
version = "0.194"
checksum = "Q3XUygUPv9vR1TkWucwUsQ8Kb1_F6gzk-KMPELr3cC_4AcTrprhVPMvN0CKkiYRa"
@@ -36,6 +36,14 @@ func (t Toolchain) newElfutils() pkg.Artifact {
MuslFts,
MuslObstack,
KernelHeaders,
)
), version
}
func init() {
artifactsM[Elfutils] = Metadata{
f: Toolchain.newElfutils,
Name: "elfutils",
Description: "utilities and libraries to handle ELF files and DWARF data",
Website: "https://sourceware.org/elfutils/",
}
}
func init() { artifactsF[Elfutils] = Toolchain.newElfutils }

View File

@@ -2,7 +2,7 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newFakeroot() pkg.Artifact {
func (t Toolchain) newFakeroot() (pkg.Artifact, string) {
const (
version = "1.37.2"
checksum = "4ve-eDqVspzQ6VWDhPS0NjW3aSenBJcPAJq_BFT7OOFgUdrQzoTBxZWipDAGWxF8"
@@ -46,6 +46,14 @@ index f135ad9..85c784c 100644
Attr,
Libcap,
KernelHeaders,
)
), version
}
func init() {
artifactsM[Fakeroot] = Metadata{
f: Toolchain.newFakeroot,
Name: "fakeroot",
Description: "tool for simulating superuser privileges",
Website: "https://salsa.debian.org/clint/fakeroot",
}
}
func init() { artifactsF[Fakeroot] = Toolchain.newFakeroot }

View File

@@ -4,7 +4,7 @@ import (
"hakurei.app/internal/pkg"
)
func (t Toolchain) newFlex() pkg.Artifact {
func (t Toolchain) newFlex() (pkg.Artifact, string) {
const (
version = "2.6.4"
checksum = "p9POjQU7VhgOf3x5iFro8fjhy0NOanvA7CTeuWS_veSNgCixIJshTrWVkc5XLZkB"
@@ -16,6 +16,14 @@ func (t Toolchain) newFlex() pkg.Artifact {
pkg.TarGzip,
), nil, (*MakeHelper)(nil),
M4,
)
), version
}
func init() {
artifactsM[Flex] = Metadata{
f: Toolchain.newFlex,
Name: "flex",
Description: "scanner generator for lexing in C and C++",
Website: "https://github.com/westes/flex/",
}
}
func init() { artifactsF[Flex] = Toolchain.newFlex }

View File

@@ -2,7 +2,7 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newFuse() pkg.Artifact {
func (t Toolchain) newFuse() (pkg.Artifact, string) {
const (
version = "3.18.1"
checksum = "COb-BgJRWXLbt9XUkNeuiroQizpMifXqxgieE1SlkMXhs_WGSyJStrmyewAw2hd6"
@@ -31,6 +31,14 @@ func (t Toolchain) newFuse() pkg.Artifact {
PyTest,
KernelHeaders,
)
), version
}
func init() {
artifactsM[Fuse] = Metadata{
f: Toolchain.newFuse,
Name: "fuse",
Description: "the reference implementation of the Linux FUSE interface",
Website: "https://github.com/libfuse/libfuse/",
}
}
func init() { artifactsF[Fuse] = Toolchain.newFuse }

View File

@@ -2,7 +2,7 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newGit() pkg.Artifact {
func (t Toolchain) newGit() (pkg.Artifact, string) {
const (
version = "2.52.0"
checksum = "uH3J1HAN_c6PfGNJd2OBwW4zo36n71wmkdvityYnrh8Ak0D1IifiAvEWz9Vi9DmS"
@@ -63,9 +63,17 @@ disable_test t2200-add-update
Curl,
OpenSSL,
Libexpat,
)
), version
}
func init() {
artifactsM[Git] = Metadata{
f: Toolchain.newGit,
Name: "git",
Description: "distributed version control system",
Website: "https://www.git-scm.com/",
}
}
func init() { artifactsF[Git] = Toolchain.newGit }
// NewViaGit returns a [pkg.Artifact] for cloning a git repository.
func (t Toolchain) NewViaGit(

View File

@@ -2,7 +2,7 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newM4() pkg.Artifact {
func (t Toolchain) newM4() (pkg.Artifact, string) {
const (
version = "1.4.20"
checksum = "RT0_L3m4Co86bVBY3lCFAEs040yI1WdeNmRylFpah8IZovTm6O4wI7qiHJN3qsW9"
@@ -18,11 +18,19 @@ chmod +w tests/test-c32ispunct.sh && echo '#!/bin/sh' > tests/test-c32ispunct.sh
`,
}, (*MakeHelper)(nil),
Diffutils,
)
), version
}
func init() { artifactsF[M4] = Toolchain.newM4 }
func init() {
artifactsM[M4] = Metadata{
f: Toolchain.newM4,
func (t Toolchain) newBison() pkg.Artifact {
Name: "m4",
Description: "a macro processor with GNU extensions",
Website: "https://www.gnu.org/software/m4/",
}
}
func (t Toolchain) newBison() (pkg.Artifact, string) {
const (
version = "3.8.2"
checksum = "BhRM6K7URj1LNOkIDCFDctSErLS-Xo5d9ba9seg10o6ACrgC1uNhED7CQPgIY29Y"
@@ -35,11 +43,19 @@ func (t Toolchain) newBison() pkg.Artifact {
M4,
Diffutils,
Sed,
)
), version
}
func init() { artifactsF[Bison] = Toolchain.newBison }
func init() {
artifactsM[Bison] = Metadata{
f: Toolchain.newBison,
func (t Toolchain) newSed() pkg.Artifact {
Name: "bison",
Description: "a general-purpose parser generator",
Website: "https://www.gnu.org/software/bison/",
}
}
func (t Toolchain) newSed() (pkg.Artifact, string) {
const (
version = "4.9"
checksum = "pe7HWH4PHNYrazOTlUoE1fXmhn2GOPFN_xE62i0llOr3kYGrH1g2_orDz0UtZ9Nt"
@@ -50,11 +66,19 @@ func (t Toolchain) newSed() pkg.Artifact {
pkg.TarGzip,
), nil, (*MakeHelper)(nil),
Diffutils,
)
), version
}
func init() { artifactsF[Sed] = Toolchain.newSed }
func init() {
artifactsM[Sed] = Metadata{
f: Toolchain.newSed,
func (t Toolchain) newAutoconf() pkg.Artifact {
Name: "sed",
Description: "a non-interactive command-line text editor",
Website: "https://www.gnu.org/software/sed/",
}
}
func (t Toolchain) newAutoconf() (pkg.Artifact, string) {
const (
version = "2.72"
checksum = "-c5blYkC-xLDer3TWEqJTyh1RLbOd1c5dnRLKsDnIrg_wWNOLBpaqMY8FvmUFJ33"
@@ -75,11 +99,19 @@ func (t Toolchain) newAutoconf() pkg.Artifact {
Perl,
Bash,
Diffutils,
)
), version
}
func init() { artifactsF[Autoconf] = Toolchain.newAutoconf }
func init() {
artifactsM[Autoconf] = Metadata{
f: Toolchain.newAutoconf,
func (t Toolchain) newAutomake() pkg.Artifact {
Name: "autoconf",
Description: "M4 macros to produce self-contained configure script",
Website: "https://www.gnu.org/software/autoconf/",
}
}
func (t Toolchain) newAutomake() (pkg.Artifact, string) {
const (
version = "1.18.1"
checksum = "FjvLG_GdQP7cThTZJLDMxYpRcKdpAVG-YDs1Fj1yaHlSdh_Kx6nRGN14E0r_BjcG"
@@ -107,11 +139,19 @@ test_disable '#!/bin/sh' t/pr9.sh
Gzip,
Autoconf,
Diffutils,
)
), version
}
func init() { artifactsF[Automake] = Toolchain.newAutomake }
func init() {
artifactsM[Automake] = Metadata{
f: Toolchain.newAutomake,
func (t Toolchain) newLibtool() pkg.Artifact {
Name: "automake",
Description: "a tool for automatically generating Makefile.in files",
Website: "https://www.gnu.org/software/automake/",
}
}
func (t Toolchain) newLibtool() (pkg.Artifact, string) {
const (
version = "2.5.4"
checksum = "pa6LSrQggh8mSJHQfwGjysAApmZlGJt8wif2cCLzqAAa2jpsTY0jZ-6stS3BWZ2Q"
@@ -128,11 +168,19 @@ func (t Toolchain) newLibtool() pkg.Artifact {
},
M4,
Diffutils,
)
), version
}
func init() { artifactsF[Libtool] = Toolchain.newLibtool }
func init() {
artifactsM[Libtool] = Metadata{
f: Toolchain.newLibtool,
func (t Toolchain) newGzip() pkg.Artifact {
Name: "libtool",
Description: "a generic library support script",
Website: "https://www.gnu.org/software/libtool/",
}
}
func (t Toolchain) newGzip() (pkg.Artifact, string) {
const (
version = "1.14"
checksum = "NWhjUavnNfTDFkZJyAUonL9aCOak8GVajWX2OMlzpFnuI0ErpBFyj88mz2xSjz0q"
@@ -144,11 +192,19 @@ func (t Toolchain) newGzip() pkg.Artifact {
), nil, &MakeHelper{
// dependency loop
SkipCheck: true,
})
}), version
}
func init() { artifactsF[Gzip] = Toolchain.newGzip }
func init() {
artifactsM[Gzip] = Metadata{
f: Toolchain.newGzip,
func (t Toolchain) newGettext() pkg.Artifact {
Name: "gzip",
Description: "a popular data compression program",
Website: "https://www.gnu.org/software/gzip/",
}
}
func (t Toolchain) newGettext() (pkg.Artifact, string) {
const (
version = "1.0"
checksum = "3MasKeEdPeFEgWgzsBKk7JqWqql1wEMbgPmzAfs-mluyokoW0N8oQVxPQoOnSdgC"
@@ -180,11 +236,19 @@ touch gettext-tools/autotools/archive.dir.tar
Sed,
KernelHeaders,
)
), version
}
func init() { artifactsF[Gettext] = Toolchain.newGettext }
func init() {
artifactsM[Gettext] = Metadata{
f: Toolchain.newGettext,
func (t Toolchain) newDiffutils() pkg.Artifact {
Name: "gettext",
Description: "tools for producing multi-lingual messages",
Website: "https://www.gnu.org/software/gettext/",
}
}
func (t Toolchain) newDiffutils() (pkg.Artifact, string) {
const (
version = "3.12"
checksum = "9J5VAq5oA7eqwzS1Yvw-l3G5o-TccUrNQR3PvyB_lgdryOFAfxtvQfKfhdpquE44"
@@ -203,11 +267,19 @@ test_disable 'int main(){return 0;}' gnulib-tests/test-c32ispunct.c
test_disable '#!/bin/sh' tests/cmp
`,
Flag: TEarly,
}, (*MakeHelper)(nil))
}, (*MakeHelper)(nil)), version
}
func init() { artifactsF[Diffutils] = Toolchain.newDiffutils }
func init() {
artifactsM[Diffutils] = Metadata{
f: Toolchain.newDiffutils,
func (t Toolchain) newPatch() pkg.Artifact {
Name: "diffutils",
Description: "several programs related to finding differences between files",
Website: "https://www.gnu.org/software/diffutils/",
}
}
func (t Toolchain) newPatch() (pkg.Artifact, string) {
const (
version = "2.8"
checksum = "MA0BQc662i8QYBD-DdGgyyfTwaeALZ1K0yusV9rAmNiIsQdX-69YC4t9JEGXZkeR"
@@ -225,11 +297,19 @@ test_disable '#!/bin/sh' tests/ed-style
test_disable '#!/bin/sh' tests/need-filename
`,
Flag: TEarly,
}, (*MakeHelper)(nil))
}, (*MakeHelper)(nil)), version
}
func init() { artifactsF[Patch] = Toolchain.newPatch }
func init() {
artifactsM[Patch] = Metadata{
f: Toolchain.newPatch,
func (t Toolchain) newBash() pkg.Artifact {
Name: "patch",
Description: "a program to apply diff output to files",
Website: "https://savannah.gnu.org/projects/patch/",
}
}
func (t Toolchain) newBash() (pkg.Artifact, string) {
const (
version = "5.3"
checksum = "4LQ_GRoB_ko-Ih8QPf_xRKA02xAm_TOxQgcJLmFDT6udUPxTAWrsj-ZNeuTusyDq"
@@ -245,11 +325,19 @@ func (t Toolchain) newBash() pkg.Artifact {
Configure: [][2]string{
{"without-bash-malloc"},
},
})
}), version
}
func init() { artifactsF[Bash] = Toolchain.newBash }
func init() {
artifactsM[Bash] = Metadata{
f: Toolchain.newBash,
func (t Toolchain) newCoreutils() pkg.Artifact {
Name: "bash",
Description: "the Bourne Again SHell",
Website: "https://www.gnu.org/software/bash/",
}
}
func (t Toolchain) newCoreutils() (pkg.Artifact, string) {
const (
version = "9.9"
checksum = "B1_TaXj1j5aiVIcazLWu8Ix03wDV54uo2_iBry4qHG6Y-9bjDpUPlkNLmU_3Nvw6"
@@ -281,11 +369,19 @@ test_disable 'int main(){return 0;}' gnulib-tests/test-lchown.c
Bash,
KernelHeaders,
)
), version
}
func init() { artifactsF[Coreutils] = Toolchain.newCoreutils }
func init() {
artifactsM[Coreutils] = Metadata{
f: Toolchain.newCoreutils,
func (t Toolchain) newTexinfo() pkg.Artifact {
Name: "coreutils",
Description: "the basic file, shell and text manipulation utilities",
Website: "https://www.gnu.org/software/coreutils/",
}
}
func (t Toolchain) newTexinfo() (pkg.Artifact, string) {
const (
version = "7.2"
checksum = "9EelM5b7QGMAY5DKrAm_El8lofBGuFWlaBPSBhh7l_VQE8054MBmC0KBvGrABqjv"
@@ -299,11 +395,19 @@ func (t Toolchain) newTexinfo() pkg.Artifact {
SkipCheck: true,
},
Perl,
)
), version
}
func init() { artifactsF[Texinfo] = Toolchain.newTexinfo }
func init() {
artifactsM[Texinfo] = Metadata{
f: Toolchain.newTexinfo,
func (t Toolchain) newGperf() pkg.Artifact {
Name: "texinfo",
Description: "the GNU square-wheel-reinvension of man pages",
Website: "https://www.gnu.org/software/texinfo/",
}
}
func (t Toolchain) newGperf() (pkg.Artifact, string) {
const (
version = "3.3"
checksum = "RtIy9pPb_Bb8-31J2Nw-rRGso2JlS-lDlVhuNYhqR7Nt4xM_nObznxAlBMnarJv7"
@@ -314,11 +418,19 @@ func (t Toolchain) newGperf() pkg.Artifact {
pkg.TarGzip,
), nil, (*MakeHelper)(nil),
Diffutils,
)
), version
}
func init() { artifactsF[Gperf] = Toolchain.newGperf }
func init() {
artifactsM[Gperf] = Metadata{
f: Toolchain.newGperf,
func (t Toolchain) newGawk() pkg.Artifact {
Name: "gperf",
Description: "a perfect hash function generator",
Website: "https://www.gnu.org/software/gperf/",
}
}
func (t Toolchain) newGawk() (pkg.Artifact, string) {
const (
version = "5.3.2"
checksum = "uIs0d14h_d2DgMGYwrPtegGNyt_bxzG3D6Fe-MmExx_pVoVkQaHzrtmiXVr6NHKk"
@@ -332,11 +444,19 @@ func (t Toolchain) newGawk() pkg.Artifact {
}, &MakeHelper{
// dependency loop
SkipCheck: true,
})
}), version
}
func init() { artifactsF[Gawk] = Toolchain.newGawk }
func init() {
artifactsM[Gawk] = Metadata{
f: Toolchain.newGawk,
func (t Toolchain) newGrep() pkg.Artifact {
Name: "gawk",
Description: "an implementation of awk with GNU extensions",
Website: "https://www.gnu.org/software/gawk/",
}
}
func (t Toolchain) newGrep() (pkg.Artifact, string) {
const (
version = "3.12"
checksum = "qMB4RjaPNRRYsxix6YOrjE8gyAT1zVSTy4nW4wKW9fqa0CHYAuWgPwDTirENzm_1"
@@ -355,11 +475,19 @@ test_disable 'int main(){return 0;}' gnulib-tests/test-c32ispunct.c
`,
}, (*MakeHelper)(nil),
Diffutils,
)
), version
}
func init() { artifactsF[Grep] = Toolchain.newGrep }
func init() {
artifactsM[Grep] = Metadata{
f: Toolchain.newGrep,
func (t Toolchain) newFindutils() pkg.Artifact {
Name: "grep",
Description: "searches input for lines containing a match to a pattern",
Website: "https://www.gnu.org/software/grep/",
}
}
func (t Toolchain) newFindutils() (pkg.Artifact, string) {
const (
version = "4.10.0"
checksum = "ZXABdNBQXL7QjTygynRRTdXYWxQKZ0Wn5eMd3NUnxR0xaS0u0VfcKoTlbo50zxv6"
@@ -377,11 +505,19 @@ echo 'int main(){return 0;}' > tests/xargs/test-sigusr.c
Diffutils,
XZ,
Sed,
)
), version
}
func init() { artifactsF[Findutils] = Toolchain.newFindutils }
func init() {
artifactsM[Findutils] = Metadata{
f: Toolchain.newFindutils,
func (t Toolchain) newBC() pkg.Artifact {
Name: "findutils",
Description: "the basic directory searching utilities",
Website: "https://www.gnu.org/software/findutils/",
}
}
func (t Toolchain) newBC() (pkg.Artifact, string) {
const (
version = "1.08.2"
checksum = "8h6f3hjV80XiFs6v9HOPF2KEyg1kuOgn5eeFdVspV05ODBVQss-ey5glc8AmneLy"
@@ -397,11 +533,19 @@ func (t Toolchain) newBC() pkg.Artifact {
}, (*MakeHelper)(nil),
Perl,
Texinfo,
)
), version
}
func init() { artifactsF[BC] = Toolchain.newBC }
func init() {
artifactsM[BC] = Metadata{
f: Toolchain.newBC,
func (t Toolchain) newLibiconv() pkg.Artifact {
Name: "bc",
Description: "an arbitrary precision numeric processing language",
Website: "https://www.gnu.org/software/bc/",
}
}
func (t Toolchain) newLibiconv() (pkg.Artifact, string) {
const (
version = "1.18"
checksum = "iV5q3VxP5VPdJ-X7O5OQI4fGm8VjeYb5viLd1L3eAHg26bbHb2_Qn63XPF3ucVZr"
@@ -410,11 +554,19 @@ func (t Toolchain) newLibiconv() pkg.Artifact {
nil, "https://ftpmirror.gnu.org/gnu/libiconv/libiconv-"+version+".tar.gz",
mustDecode(checksum),
pkg.TarGzip,
), nil, (*MakeHelper)(nil))
), nil, (*MakeHelper)(nil)), version
}
func init() { artifactsF[Libiconv] = Toolchain.newLibiconv }
func init() {
artifactsM[Libiconv] = Metadata{
f: Toolchain.newLibiconv,
func (t Toolchain) newTar() pkg.Artifact {
Name: "libiconv",
Description: "iconv implementation independent of glibc",
Website: "https://www.gnu.org/software/libiconv/",
}
}
func (t Toolchain) newTar() (pkg.Artifact, string) {
const (
version = "1.35"
checksum = "zSaoSlVUDW0dSfm4sbL4FrXLFR8U40Fh3zY5DWhR5NCIJ6GjU6Kc4VZo2-ZqpBRA"
@@ -442,11 +594,19 @@ func (t Toolchain) newTar() pkg.Artifact {
Gzip,
Bzip2,
Zstd,
)
), version
}
func init() { artifactsF[Tar] = Toolchain.newTar }
func init() {
artifactsM[Tar] = Metadata{
f: Toolchain.newTar,
func (t Toolchain) newBinutils() pkg.Artifact {
Name: "tar",
Description: "provides the ability to create tar archives",
Website: "https://www.gnu.org/software/tar/",
}
}
func (t Toolchain) newBinutils() (pkg.Artifact, string) {
const (
version = "2.45"
checksum = "hlLtqqHDmzAT2OQVHaKEd_io2DGFvJkaeS-igBuK8bRRir7LUKGHgHYNkDVKaHTT"
@@ -457,11 +617,19 @@ func (t Toolchain) newBinutils() pkg.Artifact {
pkg.TarBzip2,
), nil, (*MakeHelper)(nil),
Bash,
)
), version
}
func init() { artifactsF[Binutils] = Toolchain.newBinutils }
func init() {
artifactsM[Binutils] = Metadata{
f: Toolchain.newBinutils,
func (t Toolchain) newGMP() pkg.Artifact {
Name: "binutils",
Description: "a collection of binary tools",
Website: "https://www.gnu.org/software/binutils/",
}
}
func (t Toolchain) newGMP() (pkg.Artifact, string) {
const (
version = "6.3.0"
checksum = "yrgbgEDWKDdMWVHh7gPbVl56-sRtVVhfvv0M_LX7xMUUk_mvZ1QOJEAnt7g4i3k5"
@@ -473,11 +641,19 @@ func (t Toolchain) newGMP() pkg.Artifact {
pkg.TarBzip2,
), nil, (*MakeHelper)(nil),
M4,
)
), version
}
func init() { artifactsF[GMP] = Toolchain.newGMP }
func init() {
artifactsM[GMP] = Metadata{
f: Toolchain.newGMP,
func (t Toolchain) newMPFR() pkg.Artifact {
Name: "gmp",
Description: "a free library for arbitrary precision arithmetic",
Website: "https://gmplib.org/",
}
}
func (t Toolchain) newMPFR() (pkg.Artifact, string) {
const (
version = "4.2.2"
checksum = "wN3gx0zfIuCn9r3VAn_9bmfvAYILwrRfgBjYSD1IjLqyLrLojNN5vKyQuTE9kA-B"
@@ -489,11 +665,19 @@ func (t Toolchain) newMPFR() pkg.Artifact {
pkg.TarBzip2,
), nil, (*MakeHelper)(nil),
GMP,
)
), version
}
func init() { artifactsF[MPFR] = Toolchain.newMPFR }
func init() {
artifactsM[MPFR] = Metadata{
f: Toolchain.newMPFR,
func (t Toolchain) newMPC() pkg.Artifact {
Name: "mpfr",
Description: "a C library for multiple-precision floating-point computations",
Website: "https://www.mpfr.org/",
}
}
func (t Toolchain) newMPC() (pkg.Artifact, string) {
const (
version = "1.3.1"
checksum = "o8r8K9R4x7PuRx0-JE3-bC5jZQrtxGV2nkB773aqJ3uaxOiBDCID1gKjPaaDxX4V"
@@ -506,11 +690,19 @@ func (t Toolchain) newMPC() pkg.Artifact {
), nil, (*MakeHelper)(nil),
GMP,
MPFR,
)
), version
}
func init() { artifactsF[MPC] = Toolchain.newMPC }
func init() {
artifactsM[MPC] = Metadata{
f: Toolchain.newMPC,
func (t Toolchain) newGCC() pkg.Artifact {
Name: "mpc",
Description: "a C library for the arithmetic of complex numbers",
Website: "https://www.multiprecision.org/",
}
}
func (t Toolchain) newGCC() (pkg.Artifact, string) {
const (
version = "15.2.0"
checksum = "TXJ5WrbXlGLzy1swghQTr4qxgDCyIZFgJry51XEPTBZ8QYbVmFeB4lZbSMtPJ-a1"
@@ -710,6 +902,14 @@ ln -s system/lib /work/
Zlib,
Libucontext,
KernelHeaders,
)
), version
}
func init() {
artifactsM[gcc] = Metadata{
f: Toolchain.newGCC,
Name: "gcc",
Description: "The GNU Compiler Collection",
Website: "https://www.gnu.org/software/gcc/",
}
}
func init() { artifactsF[gcc] = Toolchain.newGCC }

View File

@@ -62,7 +62,7 @@ ln -s \
)))
}
func (t Toolchain) newGoLatest() pkg.Artifact {
func (t Toolchain) newGoLatest() (pkg.Artifact, string) {
var (
bootstrapEnv []string
bootstrapExtra []pkg.Artifact
@@ -153,9 +153,13 @@ rm \
`, go123,
)
const (
version = "1.26.0"
checksum = "uHLcrgBc0NMcyTMDLRNAZIcOx0RyQlyekSl9xbWSwj3esEFWJysYLfLa3S8p39Nh"
)
return t.newGo(
"1.26.0",
"uHLcrgBc0NMcyTMDLRNAZIcOx0RyQlyekSl9xbWSwj3esEFWJysYLfLa3S8p39Nh",
version,
checksum,
finalEnv, `
sed -i \
's,/lib/ld-musl-`+linuxArch()+`.so.1,/system/bin/linker,' \
@@ -164,6 +168,14 @@ sed -i \
rm \
os/root_unix_test.go
`, go125,
)
), version
}
func init() {
artifactsM[Go] = Metadata{
f: Toolchain.newGoLatest,
Name: "go",
Description: "the Go programming language toolchain",
Website: "https://go.dev/",
}
}
func init() { artifactsF[Go] = Toolchain.newGoLatest }

View File

@@ -7,7 +7,7 @@ import (
"hakurei.app/internal/pkg"
)
func (t Toolchain) newGLib() pkg.Artifact {
func (t Toolchain) newGLib() (pkg.Artifact, string) {
const (
version = "2.86.4"
checksum = "AfTjBrrxtXXPL6dFa1LfTe40PyPSth62CoIkM5m_VJTUngGLOFHw6I4XE7RGQE8G"
@@ -46,6 +46,14 @@ func (t Toolchain) newGLib() pkg.Artifact {
PCRE2,
Libffi,
Zlib,
)
), version
}
func init() {
artifactsM[GLib] = Metadata{
f: Toolchain.newGLib,
Name: "glib",
Description: "the GNU library of miscellaneous stuff",
Website: "https://gitlab.gnome.org/GNOME/glib/",
}
}
func init() { artifactsF[GLib] = Toolchain.newGLib }

View File

@@ -58,7 +58,8 @@ func main() {
)))
}
func init() {
artifactsF[Hakurei] = func(t Toolchain) pkg.Artifact {
artifactsM[Hakurei] = Metadata{
f: func(t Toolchain) (pkg.Artifact, string) {
return t.newHakurei("", `
mkdir -p /work/system/libexec/hakurei/
@@ -83,12 +84,23 @@ mkdir -p /work/system/bin/
hakurei \
sharefs \
../../bin/)
`)
`), hakureiVersion
},
Name: "hakurei",
Description: "low-level userspace tooling for Rosa OS",
Website: "https://hakurei.app/",
}
artifactsF[HakureiDist] = func(t Toolchain) pkg.Artifact {
artifactsM[HakureiDist] = Metadata{
f: func(t Toolchain) (pkg.Artifact, string) {
return t.newHakurei("-dist", `
export HAKUREI_VERSION
DESTDIR=/work /usr/src/hakurei/dist/release.sh
`)
`), hakureiVersion
},
Name: "hakurei-dist",
Description: "low-level userspace tooling for Rosa OS (distribution tarball)",
Website: "https://hakurei.app/",
}
}

View File

@@ -2,7 +2,7 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newImageInitramfs() pkg.Artifact {
func (t Toolchain) newImageInitramfs() (pkg.Artifact, string) {
return t.New("initramfs", TNoToolchain, []pkg.Artifact{
t.Load(Zstd),
t.Load(Hakurei),
@@ -14,6 +14,13 @@ dir /dev 0755 0 0
nod /dev/null 0666 0 0 c 1 3
nod /dev/console 0600 0 0 c 5 1
file /init /system/libexec/hakurei/earlyinit 0555 0 0
`))))
`)))), Unversioned
}
func init() {
artifactsM[ImageInitramfs] = Metadata{
Name: "initramfs-image",
Description: "Rosa OS initramfs image",
f: Toolchain.newImageInitramfs,
}
}
func init() { artifactsF[ImageInitramfs] = Toolchain.newImageInitramfs }

View File

@@ -11,16 +11,24 @@ var kernelSource = pkg.NewHTTPGetTar(
pkg.TarGzip,
)
func (t Toolchain) newKernelSource() pkg.Artifact {
func (t Toolchain) newKernelSource() (pkg.Artifact, string) {
return t.New("kernel-"+kernelVersion+"-src", 0, nil, nil, nil, `
mkdir -p /work/usr/src/
cp -r /usr/src/linux /work/usr/src/
chmod -R +w /work/usr/src/linux/
`, pkg.Path(AbsUsrSrc.Append("linux"), false, kernelSource))
`, pkg.Path(AbsUsrSrc.Append("linux"), false, kernelSource)), kernelVersion
}
func init() { artifactsF[KernelSource] = Toolchain.newKernelSource }
func init() {
artifactsM[KernelSource] = Metadata{
f: Toolchain.newKernelSource,
func (t Toolchain) newKernelHeaders() pkg.Artifact {
Name: "kernel-source",
Description: "a writable kernel source tree installed to /usr/src/linux",
Website: "https://kernel.org/",
}
}
func (t Toolchain) newKernelHeaders() (pkg.Artifact, string) {
return t.NewPackage("kernel-headers", kernelVersion, kernelSource, &PackageAttr{
Flag: TEarly,
}, &MakeHelper{
@@ -38,11 +46,19 @@ func (t Toolchain) newKernelHeaders() pkg.Artifact {
Install: "# headers installed during make",
},
Rsync,
)
), kernelVersion
}
func init() { artifactsF[KernelHeaders] = Toolchain.newKernelHeaders }
func init() {
artifactsM[KernelHeaders] = Metadata{
f: Toolchain.newKernelHeaders,
func (t Toolchain) newKernel() pkg.Artifact {
Name: "kernel-headers",
Description: "an installation of kernel headers",
Website: "https://kernel.org/",
}
}
func (t Toolchain) newKernel() (pkg.Artifact, string) {
return t.NewPackage("kernel", kernelVersion, kernelSource, &PackageAttr{
Env: []string{
"PATH=/system/sbin",
@@ -123,14 +139,29 @@ rm -v /work/lib/modules/` + kernelVersion + `/build
OpenSSL,
UtilLinux,
KernelHeaders,
)
), kernelVersion
}
func init() { artifactsF[Kernel] = Toolchain.newKernel }
func init() {
artifactsM[Kernel] = Metadata{
f: Toolchain.newKernel,
func (t Toolchain) newGenInitCPIO() pkg.Artifact {
Name: "kernel",
Description: "the generic Rosa OS linux kernel",
Website: "https://kernel.org/",
}
}
func (t Toolchain) newGenInitCPIO() (pkg.Artifact, string) {
return t.New("gen_init_cpio-"+kernelVersion, 0, nil, nil, nil, `
mkdir -p /work/system/bin/
cc -o /work/system/bin/gen_init_cpio /usr/src/linux/usr/gen_init_cpio.c
`, pkg.Path(AbsUsrSrc.Append("linux"), false, kernelSource))
`, pkg.Path(AbsUsrSrc.Append("linux"), false, kernelSource)), kernelVersion
}
func init() {
artifactsM[GenInitCPIO] = Metadata{
f: Toolchain.newGenInitCPIO,
Name: "gen_init_cpio",
Description: "a program in the kernel source tree for creating initramfs archive",
}
}
func init() { artifactsF[GenInitCPIO] = Toolchain.newGenInitCPIO }

View File

@@ -2,7 +2,7 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newKmod() pkg.Artifact {
func (t Toolchain) newKmod() (pkg.Artifact, string) {
const (
version = "34.2"
checksum = "0K7POeTKxMhExsaTsnKAC6LUNsRSfe6sSZxWONPbOu-GI_pXOw3toU_BIoqfBhJV"
@@ -28,6 +28,14 @@ func (t Toolchain) newKmod() pkg.Artifact {
Zstd,
OpenSSL,
KernelHeaders,
)
), version
}
func init() {
artifactsM[Kmod] = Metadata{
f: Toolchain.newKmod,
Name: "kmod",
Description: "a set of tools to handle common tasks with Linux kernel modules",
Website: "https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git",
}
}
func init() { artifactsF[Kmod] = Toolchain.newKmod }

View File

@@ -2,7 +2,7 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newLibcap() pkg.Artifact {
func (t Toolchain) newLibcap() (pkg.Artifact, string) {
const (
version = "2.77"
checksum = "2GOTFU4cl2QoS7Dv5wh0c9-hxsQwIzMB9Y_gfAo5xKHqcM13fiHt1RbPkfemzjmB"
@@ -39,6 +39,14 @@ ln -s ../system/bin/bash /bin/
},
Bash,
Diffutils,
)
), version
}
func init() {
artifactsM[Libcap] = Metadata{
f: Toolchain.newLibcap,
Name: "libcap",
Description: "a library for getting and setting POSIX.1e draft 15 capabilities",
Website: "https://sites.google.com/site/fullycapable/",
}
}
func init() { artifactsF[Libcap] = Toolchain.newLibcap }

View File

@@ -6,7 +6,7 @@ import (
"hakurei.app/internal/pkg"
)
func (t Toolchain) newLibexpat() pkg.Artifact {
func (t Toolchain) newLibexpat() (pkg.Artifact, string) {
const (
version = "2.7.3"
checksum = "GmkoD23nRi9cMT0cgG1XRMrZWD82UcOMzkkvP1gkwSFWCBgeSXMuoLpa8-v8kxW-"
@@ -19,6 +19,14 @@ func (t Toolchain) newLibexpat() pkg.Artifact {
pkg.TarBzip2,
), nil, (*MakeHelper)(nil),
Bash,
)
), version
}
func init() {
artifactsM[Libexpat] = Metadata{
f: Toolchain.newLibexpat,
Name: "libexpat",
Description: "a stream-oriented XML parser library",
Website: "https://libexpat.github.io/",
}
}
func init() { artifactsF[Libexpat] = Toolchain.newLibexpat }

View File

@@ -2,7 +2,7 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newLibffi() pkg.Artifact {
func (t Toolchain) newLibffi() (pkg.Artifact, string) {
const (
version = "3.4.5"
checksum = "apIJzypF4rDudeRoI_n3K7N-zCeBLTbQlHRn9NSAZqdLAWA80mR0gXPTpHsL7oMl"
@@ -14,6 +14,14 @@ func (t Toolchain) newLibffi() pkg.Artifact {
pkg.TarGzip,
), nil, (*MakeHelper)(nil),
KernelHeaders,
)
), version
}
func init() {
artifactsM[Libffi] = Metadata{
f: Toolchain.newLibffi,
Name: "libffi",
Description: "a portable, high level programming interface to various calling conventions",
Website: "https://sourceware.org/libffi/",
}
}
func init() { artifactsF[Libffi] = Toolchain.newLibffi }

View File

@@ -2,7 +2,7 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newLibgd() pkg.Artifact {
func (t Toolchain) newLibgd() (pkg.Artifact, string) {
const (
version = "2.3.3"
checksum = "8T-sh1_FJT9K9aajgxzh8ot6vWIF-xxjcKAHvTak9MgGUcsFfzP8cAvvv44u2r36"
@@ -21,6 +21,14 @@ mkdir /dev/shm/gd
`,
}, (*MakeHelper)(nil),
Zlib,
)
), version
}
func init() {
artifactsM[Libgd] = Metadata{
f: Toolchain.newLibgd,
Name: "libgd",
Description: "an open source code library for the dynamic creation of images",
Website: "https://libgd.github.io/",
}
}
func init() { artifactsF[Libgd] = Toolchain.newLibgd }

View File

@@ -2,7 +2,7 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newLibpsl() pkg.Artifact {
func (t Toolchain) newLibpsl() (pkg.Artifact, string) {
const (
version = "0.21.5"
checksum = "XjfxSzh7peG2Vg4vJlL8z4JZJLcXqbuP6pLWkrGCmRxlnYUFTKNBqWGHCxEOlCad"
@@ -21,6 +21,14 @@ test_disable 'int main(){return 0;}' tests/test-is-public-builtin.c
`,
}, (*MakeHelper)(nil),
Python,
)
), version
}
func init() {
artifactsM[Libpsl] = Metadata{
f: Toolchain.newLibpsl,
Name: "libpsl",
Description: "provides functions to work with the Mozilla Public Suffix List",
Website: "https://rockdaboot.github.io/libpsl/",
}
}
func init() { artifactsF[Libpsl] = Toolchain.newLibpsl }

View File

@@ -1,10 +1,8 @@
package rosa
import (
"hakurei.app/internal/pkg"
)
import "hakurei.app/internal/pkg"
func (t Toolchain) newLibseccomp() pkg.Artifact {
func (t Toolchain) newLibseccomp() (pkg.Artifact, string) {
const (
version = "2.6.0"
checksum = "mMu-iR71guPjFbb31u-YexBaanKE_nYPjPux-vuBiPfS_0kbwJdfCGlkofaUm-EY"
@@ -24,6 +22,14 @@ ln -s ../system/bin/bash /bin/
Gperf,
KernelHeaders,
)
), version
}
func init() {
artifactsM[Libseccomp] = Metadata{
f: Toolchain.newLibseccomp,
Name: "libseccomp",
Description: "an interface to the Linux Kernel's syscall filtering mechanism",
Website: "https://github.com/seccomp/libseccomp/",
}
}
func init() { artifactsF[Libseccomp] = Toolchain.newLibseccomp }

View File

@@ -2,7 +2,7 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newLibucontext() pkg.Artifact {
func (t Toolchain) newLibucontext() (pkg.Artifact, string) {
const (
version = "1.5"
checksum = "Ggk7FMmDNBdCx1Z9PcNWWW6LSpjGYssn2vU0GK5BLXJYw7ZxZbA2m_eSgT9TFnIG"
@@ -25,6 +25,14 @@ func (t Toolchain) newLibucontext() pkg.Artifact {
"ARCH=" + linuxArch(),
},
Install: "make prefix=/system DESTDIR=/work install",
})
}), version
}
func init() {
artifactsM[Libucontext] = Metadata{
f: Toolchain.newLibucontext,
Name: "libucontext",
Description: "ucontext implementation featuring glibc-compatible ABI",
Website: "https://github.com/kaniini/libucontext/",
}
}
func init() { artifactsF[Libucontext] = Toolchain.newLibucontext }

View File

@@ -6,7 +6,7 @@ import (
"hakurei.app/internal/pkg"
)
func (t Toolchain) newLibxml2() pkg.Artifact {
func (t Toolchain) newLibxml2() (pkg.Artifact, string) {
const (
version = "2.15.1"
checksum = "pYzAR3cNrEHezhEMirgiq7jbboLzwMj5GD7SQp0jhSIMdgoU4G9oU9Gxun3zzUIU"
@@ -21,6 +21,14 @@ func (t Toolchain) newLibxml2() pkg.Artifact {
}, (*MakeHelper)(nil),
Diffutils,
XZ,
)
), version
}
func init() {
artifactsM[Libxml2] = Metadata{
f: Toolchain.newLibxml2,
Name: "libxml2",
Description: "an XML toolkit implemented in C",
Website: "https://gitlab.gnome.org/GNOME/libxml2/",
}
}
func init() { artifactsF[Libxml2] = Toolchain.newLibxml2 }

View File

@@ -6,7 +6,7 @@ import (
"hakurei.app/internal/pkg"
)
func (t Toolchain) newLibxslt() pkg.Artifact {
func (t Toolchain) newLibxslt() (pkg.Artifact, string) {
const (
version = "1.1.45"
checksum = "vw72UbREQnA3YDYuZ9-93hDr9BYCaKV6oh_U4Kt4n1Js_na4E-nFj-ksZnZ0kvEK"
@@ -27,6 +27,14 @@ func (t Toolchain) newLibxslt() pkg.Artifact {
PkgConfig,
Libxml2,
)
), version
}
func init() {
artifactsM[Libxslt] = Metadata{
f: Toolchain.newLibxslt,
Name: "libxslt",
Description: "an XSLT processor based on libxml2",
Website: "https://gitlab.gnome.org/GNOME/libxslt/",
}
}
func init() { artifactsF[Libxslt] = Toolchain.newLibxslt }

View File

@@ -216,6 +216,10 @@ func (t Toolchain) newLLVM() (musl, compilerRT, runtimes, clang pkg.Artifact) {
{"LLVM_ENABLE_LIBXML2", "OFF"},
}
muslHeaders, _ := t.newMusl(true, []string{
"CC=clang",
})
compilerRT = t.newLLVMVariant("compiler-rt", &llvmAttr{
env: stage0ExclConcat(t, []string{},
"LDFLAGS="+earlyLDFLAGS(false),
@@ -237,9 +241,9 @@ func (t Toolchain) newLLVM() (musl, compilerRT, runtimes, clang pkg.Artifact) {
{"COMPILER_RT_BUILD_XRAY", "OFF"},
},
append: []string{"compiler-rt"},
nonStage0: []pkg.Artifact{t.newMusl(true, []string{
"CC=clang",
})},
nonStage0: []pkg.Artifact{
muslHeaders,
},
script: `
mkdir -p "/work/system/lib/clang/21/lib/"
ln -s \
@@ -255,7 +259,7 @@ ln -s \
`,
})
musl = t.newMusl(false, stage0ExclConcat(t, []string{
musl, _ = t.newMusl(false, stage0ExclConcat(t, []string{
"CC=clang",
"LIBCC=/system/lib/clang/21/lib/" +
triplet() + "/libclang_rt.builtins.a",

View File

@@ -7,7 +7,7 @@ import (
"hakurei.app/internal/pkg"
)
func (t Toolchain) newMake() pkg.Artifact {
func (t Toolchain) newMake() (pkg.Artifact, string) {
const (
version = "4.4.1"
checksum = "YS_B07ZcAy9PbaK5_vKGj64SrxO2VMpnMKfc9I0Q9IC1rn0RwOH7802pJoj2Mq4a"
@@ -24,9 +24,17 @@ cd "$(mktemp -d)"
nil, "https://ftpmirror.gnu.org/gnu/make/make-"+version+".tar.gz",
mustDecode(checksum),
pkg.TarGzip,
)))
))), version
}
func init() {
artifactsM[Make] = Metadata{
f: Toolchain.newMake,
Name: "make",
Description: "a tool which controls the generation of executables and other non-source files",
Website: "https://www.gnu.org/software/make/",
}
}
func init() { artifactsF[Make] = Toolchain.newMake }
// MakeHelper is the [Make] build system helper.
type MakeHelper struct {

View File

@@ -7,7 +7,7 @@ import (
"hakurei.app/internal/pkg"
)
func (t Toolchain) newMeson() pkg.Artifact {
func (t Toolchain) newMeson() (pkg.Artifact, string) {
const (
version = "1.10.1"
checksum = "w895BXF_icncnXatT_OLCFe2PYEtg4KrKooMgUYdN-nQVvbFX3PvYWHGEpogsHtd"
@@ -27,9 +27,17 @@ python3 setup.py \
version+"/meson-"+version+".tar.gz",
mustDecode(checksum),
pkg.TarGzip,
)))
))), version
}
func init() {
artifactsM[Meson] = Metadata{
f: Toolchain.newMeson,
Name: "meson",
Description: "an open source build system",
Website: "https://mesonbuild.com/",
}
}
func init() { artifactsF[Meson] = Toolchain.newMeson }
// MesonHelper is the [Meson] build system helper.
type MesonHelper struct {

View File

@@ -2,7 +2,7 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newMksh() pkg.Artifact {
func (t Toolchain) newMksh() (pkg.Artifact, string) {
const (
version = "59c"
checksum = "0Zj-k4nXEu3IuJY4lvwD2OrC2t27GdZj8SPy4DoaeuBRH1padWb7oREpYgwY8JNq"
@@ -31,6 +31,14 @@ ln -vs ../system/bin/sh /work/bin/
"https://mbsd.evolvis.org/MirOS/dist/mir/mksh/mksh-R"+version+".tgz",
mustDecode(checksum),
pkg.TarGzip,
)))
))), version
}
func init() {
artifactsM[Mksh] = Metadata{
f: Toolchain.newMksh,
Name: "mksh",
Description: "MirBSD Korn Shell",
Website: "https://www.mirbsd.org/mksh",
}
}
func init() { artifactsF[Mksh] = Toolchain.newMksh }

View File

@@ -2,7 +2,7 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newMuslFts() pkg.Artifact {
func (t Toolchain) newMuslFts() (pkg.Artifact, string) {
const (
version = "1.2.7"
checksum = "N_p_ZApX3eHt7xoDCw1hLf6XdJOw7ZSx7xPvpvAP0knG2zgU0zeN5w8tt5Pg60XJ"
@@ -25,6 +25,14 @@ func (t Toolchain) newMuslFts() pkg.Artifact {
Automake,
Libtool,
PkgConfig,
)
), version
}
func init() {
artifactsM[MuslFts] = Metadata{
f: Toolchain.newMuslFts,
Name: "musl-fts",
Description: "implementation of fts(3) functions which are missing in musl libc",
Website: "https://github.com/void-linux/musl-fts",
}
}
func init() { artifactsF[MuslFts] = Toolchain.newMuslFts }

View File

@@ -2,7 +2,7 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newMuslObstack() pkg.Artifact {
func (t Toolchain) newMuslObstack() (pkg.Artifact, string) {
const (
version = "1.2.3"
checksum = "tVRY_KjIlkkMszcaRlkKdBVQHIXTT_T_TiMxbwErlILXrOBosocg8KklppZhNdCG"
@@ -25,6 +25,14 @@ func (t Toolchain) newMuslObstack() pkg.Artifact {
Automake,
Libtool,
PkgConfig,
)
), version
}
func init() {
artifactsM[MuslObstack] = Metadata{
f: Toolchain.newMuslObstack,
Name: "musl-obstack",
Description: "obstack functions and macros separated from glibc",
Website: "https://github.com/void-linux/musl-obstack",
}
}
func init() { artifactsF[MuslObstack] = Toolchain.newMuslObstack }

View File

@@ -6,7 +6,7 @@ func (t Toolchain) newMusl(
headers bool,
env []string,
extra ...pkg.Artifact,
) pkg.Artifact {
) (pkg.Artifact, string) {
const (
version = "1.2.5"
checksum = "y6USdIeSdHER_Fw2eT2CNjqShEye85oEg2jnOur96D073ukmIpIqDOLmECQroyDb"
@@ -50,10 +50,16 @@ rmdir -v /work/lib
Env: env,
}, &helper,
Coreutils,
)
), version
}
func init() {
artifactsF[Musl] = func(t Toolchain) pkg.Artifact {
artifactsM[Musl] = Metadata{
f: func(t Toolchain) (pkg.Artifact, string) {
return t.newMusl(false, nil)
},
Name: "musl",
Description: "an implementation of the C standard library",
Website: "https://musl.libc.org/",
}
}

View File

@@ -2,7 +2,7 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newNcurses() pkg.Artifact {
func (t Toolchain) newNcurses() (pkg.Artifact, string) {
const (
version = "6.6"
checksum = "XvWp4xi6hR_hH8XUoGY26L_pqBSDapJYulhzZqPuR0KNklqypqNc1yNXU-nOjf5w"
@@ -21,6 +21,14 @@ func (t Toolchain) newNcurses() pkg.Artifact {
},
},
PkgConfig,
)
), version
}
func init() {
artifactsM[Ncurses] = Metadata{
f: Toolchain.newNcurses,
Name: "ncurses",
Description: "a free software emulation of curses in System V Release 4.0 (SVr4)",
Website: "https://invisible-island.net/ncurses/",
}
}
func init() { artifactsF[Ncurses] = Toolchain.newNcurses }

View File

@@ -2,7 +2,7 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newNinja() pkg.Artifact {
func (t Toolchain) newNinja() (pkg.Artifact, string) {
const (
version = "1.13.2"
checksum = "ygKWMa0YV2lWKiFro5hnL-vcKbc_-RACZuPu0Io8qDvgQlZ0dxv7hPNSFkt4214v"
@@ -33,6 +33,14 @@ cp ninja /work/system/bin/
mustDecode(checksum),
pkg.TarGzip,
), false,
)))
))), version
}
func init() {
artifactsM[Ninja] = Metadata{
f: Toolchain.newNinja,
Name: "ninja",
Description: "a small build system with a focus on speed",
Website: "https://ninja-build.org/",
}
}
func init() { artifactsF[Ninja] = Toolchain.newNinja }

View File

@@ -2,7 +2,7 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newOpenSSL() pkg.Artifact {
func (t Toolchain) newOpenSSL() (pkg.Artifact, string) {
const (
version = "3.5.5"
checksum = "I2Hp1LxcTR8j4G6LFEQMVy6EJH-Na1byI9Ti-ThBot6EMLNRnjGXGq-WXrim3Fkz"
@@ -35,6 +35,14 @@ func (t Toolchain) newOpenSSL() pkg.Artifact {
Zlib,
KernelHeaders,
)
), version
}
func init() {
artifactsM[OpenSSL] = Metadata{
f: Toolchain.newOpenSSL,
Name: "openssl",
Description: "TLS/SSL and crypto library",
Website: "https://www.openssl.org/",
}
}
func init() { artifactsF[OpenSSL] = Toolchain.newOpenSSL }

View File

@@ -4,7 +4,7 @@ import (
"hakurei.app/internal/pkg"
)
func (t Toolchain) newPCRE2() pkg.Artifact {
func (t Toolchain) newPCRE2() (pkg.Artifact, string) {
const (
version = "10.43"
checksum = "iyNw-POPSJwiZVJfUK5qACA6q2uMzP-84WieimN_CskaEkuw5fRnRTZhEv6ry2Yo"
@@ -28,6 +28,14 @@ ln -s ../system/bin/toybox /bin/echo
},
},
Diffutils,
)
), version
}
func init() {
artifactsM[PCRE2] = Metadata{
f: Toolchain.newPCRE2,
Name: "pcre2",
Description: "a set of C functions that implement regular expression pattern matching",
Website: "https://pcre2project.github.io/pcre2/",
}
}
func init() { artifactsF[PCRE2] = Toolchain.newPCRE2 }

View File

@@ -6,7 +6,7 @@ import (
"hakurei.app/internal/pkg"
)
func (t Toolchain) newPerl() pkg.Artifact {
func (t Toolchain) newPerl() (pkg.Artifact, string) {
const (
version = "5.42.0"
checksum = "2KR7Jbpk-ZVn1a30LQRwbgUvg2AXlPQZfzrqCr31qD5-yEsTwVQ_W76eZH-EdxM9"
@@ -45,9 +45,17 @@ rm -f /system/bin/ps # perl does not like toybox ps
"test_harness",
},
Install: "./perl -Ilib -I. installperl --destdir=/work",
})
}), version
}
func init() {
artifactsM[Perl] = Metadata{
f: Toolchain.newPerl,
Name: "perl",
Description: "The Perl Programming language",
Website: "https://www.perl.org/",
}
}
func init() { artifactsF[Perl] = Toolchain.newPerl }
// newViaPerlModuleBuild installs a perl module via Build.PL.
func (t Toolchain) newViaPerlModuleBuild(
@@ -72,7 +80,7 @@ perl Build.PL --prefix=/system
)))
}
func (t Toolchain) newPerlModuleBuild() pkg.Artifact {
func (t Toolchain) newPerlModuleBuild() (pkg.Artifact, string) {
const (
version = "0.4234"
checksum = "ZKxEFG4hE1rqZt52zBL2LRZBMkYzhjb5-cTBXcsyA52EbPeeYyVxU176yAea8-Di"
@@ -82,9 +90,17 @@ func (t Toolchain) newPerlModuleBuild() pkg.Artifact {
"Module-Build-"+version+".tar.gz",
mustDecode(checksum),
pkg.TarGzip,
), nil)
), nil), version
}
func init() {
artifactsM[PerlModuleBuild] = Metadata{
f: Toolchain.newPerlModuleBuild,
Name: "perl-Module::Build",
Description: "build and install Perl modules",
Website: "https://metacpan.org/release/Module-Build",
}
}
func init() { artifactsF[PerlModuleBuild] = Toolchain.newPerlModuleBuild }
// newViaPerlMakeMaker installs a perl module via Makefile.PL.
func (t Toolchain) newViaPerlMakeMaker(
@@ -114,7 +130,7 @@ func (t Toolchain) newViaPerlMakeMaker(
})...)
}
func (t Toolchain) newPerlLocaleGettext() pkg.Artifact {
func (t Toolchain) newPerlLocaleGettext() (pkg.Artifact, string) {
const (
version = "1.07"
checksum = "cFq4BKFD1MWSoa7lsrPjpdo9kzPqd0jlRcBFUyL1L1isw8m3D_Sge_ff0MAu_9J3"
@@ -124,11 +140,19 @@ func (t Toolchain) newPerlLocaleGettext() pkg.Artifact {
"Locale-gettext-"+version+".tar.gz",
mustDecode(checksum),
pkg.TarGzip,
), nil)
), nil), version
}
func init() { artifactsF[PerlLocaleGettext] = Toolchain.newPerlLocaleGettext }
func init() {
artifactsM[PerlLocaleGettext] = Metadata{
f: Toolchain.newPerlLocaleGettext,
func (t Toolchain) newPerlPodParser() pkg.Artifact {
Name: "perl-Locale::gettext",
Description: "message handling functions",
Website: "https://metacpan.org/release/Locale-gettext",
}
}
func (t Toolchain) newPerlPodParser() (pkg.Artifact, string) {
const (
version = "1.67"
checksum = "RdURu9mOfExk_loCp6abxlcQV3FycSNbTqhRS9i6JUqnYfGGEgercK30g0gjYyqe"
@@ -138,11 +162,19 @@ func (t Toolchain) newPerlPodParser() pkg.Artifact {
"Pod-Parser-"+version+".tar.gz",
mustDecode(checksum),
pkg.TarGzip,
), nil)
), nil), version
}
func init() { artifactsF[PerlPodParser] = Toolchain.newPerlPodParser }
func init() {
artifactsM[PerlPodParser] = Metadata{
f: Toolchain.newPerlPodParser,
func (t Toolchain) newPerlSGMLS() pkg.Artifact {
Name: "perl-Pod::Parser",
Description: "base class for creating POD filters and translators",
Website: "https://metacpan.org/release/Pod-Parser",
}
}
func (t Toolchain) newPerlSGMLS() (pkg.Artifact, string) {
const (
version = "1.1"
checksum = "aZijn4MUqD-wfyZgdcCruCwl4SgDdu25cNmJ4_UvdAk9a7uz4gzMQdoeB6DQ6QOy"
@@ -152,11 +184,19 @@ func (t Toolchain) newPerlSGMLS() pkg.Artifact {
"SGMLSpm-"+version+".tar.gz",
mustDecode(checksum),
pkg.TarGzip,
), nil)
), nil), version
}
func init() { artifactsF[PerlSGMLS] = Toolchain.newPerlSGMLS }
func init() {
artifactsM[PerlSGMLS] = Metadata{
f: Toolchain.newPerlSGMLS,
func (t Toolchain) newPerlTermReadKey() pkg.Artifact {
Name: "perl-SGMLS",
Description: "class for postprocessing the output from the sgmls and nsgmls parsers",
Website: "https://metacpan.org/release/RAAB/SGMLSpm-1.1",
}
}
func (t Toolchain) newPerlTermReadKey() (pkg.Artifact, string) {
const (
version = "2.38"
checksum = "qerL8Xo7kD0f42PZoiEbmE8Roc_S9pOa27LXelY4DN_0UNy_u5wLrGHI8utNlaiI"
@@ -166,11 +206,19 @@ func (t Toolchain) newPerlTermReadKey() pkg.Artifact {
"TermReadKey-"+version+".tar.gz",
mustDecode(checksum),
pkg.TarGzip,
), nil)
), nil), version
}
func init() { artifactsF[PerlTermReadKey] = Toolchain.newPerlTermReadKey }
func init() {
artifactsM[PerlTermReadKey] = Metadata{
f: Toolchain.newPerlTermReadKey,
func (t Toolchain) newPerlTextCharWidth() pkg.Artifact {
Name: "perl-Term::ReadKey",
Description: "a perl module for simple terminal control",
Website: "https://metacpan.org/release/TermReadKey",
}
}
func (t Toolchain) newPerlTextCharWidth() (pkg.Artifact, string) {
const (
version = "0.04"
checksum = "G2p5RHU4_HiZ23ZusBA_enTlVMxz0J4esUx4CGcOPhY6xYTbp-aXWRN6lYZpzBw2"
@@ -180,11 +228,19 @@ func (t Toolchain) newPerlTextCharWidth() pkg.Artifact {
"Text-CharWidth-"+version+".tar.gz",
mustDecode(checksum),
pkg.TarGzip,
), nil)
), nil), version
}
func init() { artifactsF[PerlTextCharWidth] = Toolchain.newPerlTextCharWidth }
func init() {
artifactsM[PerlTextCharWidth] = Metadata{
f: Toolchain.newPerlTextCharWidth,
func (t Toolchain) newPerlTextWrapI18N() pkg.Artifact {
Name: "perl-Text::CharWidth",
Description: "get number of occupied columns of a string on terminal",
Website: "https://metacpan.org/release/Text-CharWidth",
}
}
func (t Toolchain) newPerlTextWrapI18N() (pkg.Artifact, string) {
const (
version = "0.06"
checksum = "Vmo89qLgxUqyQ6QmWJVqu60aQAUjrNKRjFQSXGnvClxofzRjiCa6idzPgJ4VkixM"
@@ -196,11 +252,19 @@ func (t Toolchain) newPerlTextWrapI18N() pkg.Artifact {
pkg.TarGzip,
), nil,
PerlTextCharWidth,
)
), version
}
func init() { artifactsF[PerlTextWrapI18N] = Toolchain.newPerlTextWrapI18N }
func init() {
artifactsM[PerlTextWrapI18N] = Metadata{
f: Toolchain.newPerlTextWrapI18N,
func (t Toolchain) newPerlMIMECharset() pkg.Artifact {
Name: "perl-Text::WrapI18N",
Description: "line wrapping module",
Website: "https://metacpan.org/release/Text-WrapI18N",
}
}
func (t Toolchain) newPerlMIMECharset() (pkg.Artifact, string) {
const (
version = "1.013.1"
checksum = "Ou_ukcrOa1cgtE3mptinb-os3bdL1SXzbRDFZQF3prrJj-drc3rp_huay7iDLJol"
@@ -210,11 +274,19 @@ func (t Toolchain) newPerlMIMECharset() pkg.Artifact {
"MIME-Charset-"+version+".tar.gz",
mustDecode(checksum),
pkg.TarGzip,
), nil)
), nil), version
}
func init() { artifactsF[PerlMIMECharset] = Toolchain.newPerlMIMECharset }
func init() {
artifactsM[PerlMIMECharset] = Metadata{
f: Toolchain.newPerlMIMECharset,
func (t Toolchain) newPerlUnicodeGCString() pkg.Artifact {
Name: "perl-MIME::Charset",
Description: "MIME のためのキャラクタセット情報",
Website: "https://metacpan.org/release/MIME-Charset",
}
}
func (t Toolchain) newPerlUnicodeGCString() (pkg.Artifact, string) {
const (
version = "2019.001"
checksum = "ZHVkh7EDgAUHnTpvXsnPAuWpgNoBImtY_9_8TIbo2co_WgUwEb0MtXPhI8pAZ5OH"
@@ -226,11 +298,19 @@ func (t Toolchain) newPerlUnicodeGCString() pkg.Artifact {
pkg.TarGzip,
), nil,
PerlMIMECharset,
)
), version
}
func init() { artifactsF[PerlUnicodeGCString] = Toolchain.newPerlUnicodeGCString }
func init() {
artifactsM[PerlUnicodeGCString] = Metadata{
f: Toolchain.newPerlUnicodeGCString,
func (t Toolchain) newPerlYAMLTiny() pkg.Artifact {
Name: "perl-Unicode::GCString",
Description: "UAX #29 書記素クラスタの列としての文字列",
Website: "https://metacpan.org/release/Unicode-LineBreak",
}
}
func (t Toolchain) newPerlYAMLTiny() (pkg.Artifact, string) {
const (
version = "1.76"
checksum = "V1MV4KPym1LxSw8CRXqPR3K-l1hGHbT5Ob4t-9xju6R9X_CWyw6hI8wsMaNdHdBY"
@@ -240,6 +320,14 @@ func (t Toolchain) newPerlYAMLTiny() pkg.Artifact {
"YAML-Tiny-"+version+".tar.gz",
mustDecode(checksum),
pkg.TarGzip,
), nil)
), nil), version
}
func init() {
artifactsM[PerlYAMLTiny] = Metadata{
f: Toolchain.newPerlYAMLTiny,
Name: "perl-YAML::Tiny",
Description: "read/write YAML files with as little code as possible",
Website: "https://metacpan.org/release/YAML-Tiny",
}
}
func init() { artifactsF[PerlYAMLTiny] = Toolchain.newPerlYAMLTiny }

View File

@@ -2,7 +2,7 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newPkgConfig() pkg.Artifact {
func (t Toolchain) newPkgConfig() (pkg.Artifact, string) {
const (
version = "0.29.2"
checksum = "gi7yAvkwo20Inys1tHbeYZ3Wjdm5VPkrnO0Q6_QZPCAwa1zrA8F4a63cdZDd-717"
@@ -17,6 +17,14 @@ func (t Toolchain) newPkgConfig() pkg.Artifact {
{"CFLAGS", "'-Wno-int-conversion'"},
{"with-internal-glib"},
},
})
}), version
}
func init() {
artifactsM[PkgConfig] = Metadata{
f: Toolchain.newPkgConfig,
Name: "pkg-config",
Description: "a helper tool used when compiling applications and libraries",
Website: "https://pkgconfig.freedesktop.org/",
}
}
func init() { artifactsF[PkgConfig] = Toolchain.newPkgConfig }

View File

@@ -2,7 +2,7 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newProcps() pkg.Artifact {
func (t Toolchain) newProcps() (pkg.Artifact, string) {
const (
version = "4.0.6"
checksum = "pl_fZLvDlv6iZTkm8l_tHFpzTDVFGCiSJEs3eu0zAX6u36AV36P_En8K7JPScRWM"
@@ -27,6 +27,14 @@ func (t Toolchain) newProcps() pkg.Artifact {
Gzip,
PkgConfig,
)
), version
}
func init() {
artifactsM[Procps] = Metadata{
f: Toolchain.newProcps,
Name: "procps",
Description: "command line and full screen utilities for browsing procfs",
Website: "https://gitlab.com/procps-ng/procps",
}
}
func init() { artifactsF[Procps] = Toolchain.newProcps }

View File

@@ -7,7 +7,7 @@ import (
"hakurei.app/internal/pkg"
)
func (t Toolchain) newPython() pkg.Artifact {
func (t Toolchain) newPython() (pkg.Artifact, string) {
const (
version = "3.14.2"
checksum = "7nZunVMGj0viB-CnxpcRego2C90X5wFsMTgsoewd5z-KSZY2zLuqaBwG-14zmKys"
@@ -59,19 +59,34 @@ func (t Toolchain) newPython() pkg.Artifact {
OpenSSL,
Bzip2,
XZ,
)
), version
}
func init() {
artifactsM[Python] = Metadata{
f: Toolchain.newPython,
Name: "python",
Description: "the Python programming language interpreter",
Website: "https://www.python.org/",
}
}
func init() { artifactsF[Python] = Toolchain.newPython }
// newViaPip is a helper for installing python dependencies via pip.
func (t Toolchain) newViaPip(
name, version, abi, platform, checksum, prefix string,
extra ...pkg.Artifact,
) pkg.Artifact {
func newViaPip(
name, description, version, abi, platform, checksum, prefix string,
extra ...PArtifact,
) Metadata {
wname := name + "-" + version + "-py3-" + abi + "-" + platform + ".whl"
return Metadata{
f: func(t Toolchain) (pkg.Artifact, string) {
extraRes := make([]pkg.Artifact, len(extra))
for i, p := range extra {
extraRes[i] = t.Load(p)
}
return t.New(name+"-"+version, 0, slices.Concat([]pkg.Artifact{
t.Load(Python),
}, extra), nil, nil, `
}, extraRes), nil, nil, `
pip3 install \
--no-index \
--prefix=/system \
@@ -80,10 +95,16 @@ pip3 install \
`, pkg.Path(AbsUsrSrc.Append(wname), false, pkg.NewHTTPGet(
nil, prefix+wname,
mustDecode(checksum),
)))
))), version
},
Name: "python-" + name,
Description: description,
Website: "https://pypi.org/project/" + name + "/",
}
}
func (t Toolchain) newSetuptools() pkg.Artifact {
func (t Toolchain) newSetuptools() (pkg.Artifact, string) {
const (
version = "80.10.1"
checksum = "p3rlwEmy1krcUH1KabprQz1TCYjJ8ZUjOQknQsWh3q-XEqLGEd3P4VrCc7ouHGXU"
@@ -101,53 +122,64 @@ pip3 install \
"v"+version+".tar.gz",
mustDecode(checksum),
pkg.TarGzip,
)))
))), version
}
func init() { artifactsF[Setuptools] = Toolchain.newSetuptools }
func init() {
artifactsM[Setuptools] = Metadata{
f: Toolchain.newSetuptools,
func (t Toolchain) newPygments() pkg.Artifact {
return t.newViaPip("pygments", "2.19.2", "none", "any",
Name: "setuptools",
Description: "the autotools of the Python ecosystem",
Website: "https://pypi.org/project/setuptools/",
}
}
func init() {
artifactsM[Pygments] = newViaPip(
"pygments",
" a syntax highlighting package written in Python",
"2.19.2", "none", "any",
"ak_lwTalmSr7W4Mjy2XBZPG9I6a0gwSy2pS87N8x4QEuZYif0ie9z0OcfRfi9msd",
"https://files.pythonhosted.org/packages/"+
"c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/")
}
func init() { artifactsF[Pygments] = Toolchain.newPygments }
"c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/",
)
func (t Toolchain) newPluggy() pkg.Artifact {
return t.newViaPip("pluggy", "1.6.0", "none", "any",
artifactsM[Pluggy] = newViaPip(
"pluggy",
"the core framework used by the pytest, tox, and devpi projects",
"1.6.0", "none", "any",
"2HWYBaEwM66-y1hSUcWI1MyE7dVVuNNRW24XD6iJBey4YaUdAK8WeXdtFMQGC-4J",
"https://files.pythonhosted.org/packages/"+
"54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/")
}
func init() { artifactsF[Pluggy] = Toolchain.newPluggy }
"54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/",
)
func (t Toolchain) newPackaging() pkg.Artifact {
return t.newViaPip("packaging", "26.0", "none", "any",
artifactsM[Packaging] = newViaPip(
"packaging",
"reusable core utilities for various Python Packaging interoperability specifications",
"26.0", "none", "any",
"iVVXcqdwHDskPKoCFUlh2x8J0Gyq-bhO4ns9DvUJ7oJjeOegRYtSIvLV33Bki-pP",
"https://files.pythonhosted.org/packages/"+
"b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/")
}
func init() { artifactsF[Packaging] = Toolchain.newPackaging }
"b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/",
)
func (t Toolchain) newIniConfig() pkg.Artifact {
const version = "2.3.0"
return t.newViaPip("iniconfig", version, "none", "any",
artifactsM[IniConfig] = newViaPip(
"iniconfig",
"a small and simple INI-file parser module",
"2.3.0", "none", "any",
"SDgs4S5bXi77aVOeKTPv2TUrS3M9rduiK4DpU0hCmDsSBWqnZcWInq9lsx6INxut",
"https://github.com/pytest-dev/iniconfig/releases/download/"+
"v"+version+"/")
}
func init() { artifactsF[IniConfig] = Toolchain.newIniConfig }
func (t Toolchain) newPyTest() pkg.Artifact {
const version = "9.0.2"
return t.newViaPip("pytest", version, "none", "any",
"https://files.pythonhosted.org/packages/"+
"cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/",
)
artifactsM[PyTest] = newViaPip(
"pytest",
"the pytest framework",
"9.0.2", "none", "any",
"IM2wDbLke1EtZhF92zvAjUl_Hms1uKDtM7U8Dt4acOaChMnDg1pW7ib8U0wYGDLH",
"https://github.com/pytest-dev/pytest/releases/download/"+
version+"/",
t.Load(IniConfig),
t.Load(Packaging),
t.Load(Pluggy),
t.Load(Pygments),
"https://files.pythonhosted.org/packages/"+
"3b/ab/b3226f0bd7cdcf710fbede2b3548584366da3b19b5021e74f5bde2a8fa3f/",
IniConfig,
Packaging,
Pluggy,
Pygments,
)
}
func init() { artifactsF[PyTest] = Toolchain.newPyTest }

View File

@@ -2,7 +2,7 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newQEMU() pkg.Artifact {
func (t Toolchain) newQEMU() (pkg.Artifact, string) {
const (
version = "10.2.1"
checksum = "rjLTSgHJd3X3Vgpxrsus_ZZiaYLiNix1YhcHaGbLd_odYixwZjCcAIt8CVQPJGdZ"
@@ -93,6 +93,14 @@ EOF
Zstd,
DTC,
KernelHeaders,
)
), version
}
func init() {
artifactsM[QEMU] = Metadata{
f: Toolchain.newQEMU,
Name: "qemu",
Description: "a generic and open source machine emulator and virtualizer",
Website: "https://www.qemu.org/",
}
}
func init() { artifactsF[QEMU] = Toolchain.newQEMU }

View File

@@ -2,7 +2,7 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newRsync() pkg.Artifact {
func (t Toolchain) newRsync() (pkg.Artifact, string) {
const (
version = "3.4.1"
checksum = "VBlTsBWd9z3r2-ex7GkWeWxkUc5OrlgDzikAC0pK7ufTjAJ0MbmC_N04oSVTGPiv"
@@ -24,6 +24,14 @@ func (t Toolchain) newRsync() pkg.Artifact {
// circular dependency
SkipCheck: true,
})
}), version
}
func init() {
artifactsM[Rsync] = Metadata{
f: Toolchain.newRsync,
Name: "rsync",
Description: "an open source utility that provides fast incremental file transfer",
Website: "https://rsync.samba.org/",
}
}
func init() { artifactsF[Rsync] = Toolchain.newRsync }

View File

@@ -2,7 +2,7 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newSquashfsTools() pkg.Artifact {
func (t Toolchain) newSquashfsTools() (pkg.Artifact, string) {
const (
version = "4.7.4"
checksum = "pG0E_wkRJFS6bvPYF-hTKZT-cWnvo5BbIzCDZrJZVQDgJOx2Vc3ZfNSEV7Di7cSW"
@@ -39,6 +39,14 @@ func (t Toolchain) newSquashfsTools() pkg.Artifact {
Zstd,
Gzip,
Zlib,
)
), version
}
func init() {
artifactsM[SquashfsTools] = Metadata{
f: Toolchain.newSquashfsTools,
Name: "squashfs-tools",
Description: "tools to create and extract Squashfs filesystems",
Website: "https://github.com/plougher/squashfs-tools",
}
}
func init() { artifactsF[SquashfsTools] = Toolchain.newSquashfsTools }

View File

@@ -4,7 +4,7 @@ import (
"hakurei.app/internal/pkg"
)
func (t Toolchain) newNSS() pkg.Artifact {
func (t Toolchain) newNSS() (pkg.Artifact, string) {
const (
version = "3_120"
checksum = "9M0SNMrj9BJp6RH2rQnMm6bZWtP0Kgj64D5JNPHF7Cxr2_8kfy3msubIcvEPwC35"
@@ -63,20 +63,31 @@ cp -r \
Zlib,
KernelHeaders,
)
), version
}
func init() { artifactsF[NSS] = Toolchain.newNSS }
func init() {
artifactsM[NSS] = Metadata{
f: Toolchain.newNSS,
func (t Toolchain) newBuildCATrust() pkg.Artifact {
Name: "nss",
Description: "Network Security Services",
Website: "https://firefox-source-docs.mozilla.org/security/nss/index.html",
}
}
func init() {
const version = "0.4.0"
return t.newViaPip("buildcatrust", version, "none", "any",
artifactsM[buildcatrust] = newViaPip(
"buildcatrust",
"transform certificate stores between formats",
version, "none", "any",
"k_FGzkRCLjbTWBkuBLzQJ1S8FPAz19neJZlMHm0t10F2Y0hElmvVwdSBRc03Rjo1",
"https://github.com/nix-community/buildcatrust/"+
"releases/download/v"+version+"/")
"releases/download/v"+version+"/",
)
}
func init() { artifactsF[buildcatrust] = Toolchain.newBuildCATrust }
func (t Toolchain) newNSSCACert() pkg.Artifact {
func (t Toolchain) newNSSCACert() (pkg.Artifact, string) {
return t.New("nss-cacert", 0, []pkg.Artifact{
t.Load(Bash),
t.Load(Python),
@@ -92,6 +103,14 @@ buildcatrust \
--ca_unpacked_output /work/system/etc/ssl/certs/unbundled \
--ca_hashed_unpacked_output /work/system/etc/ssl/certs/hashed \
--p11kit_output /work/system/etc/ssl/trust-source/ca-bundle.trust.p11-kit
`)
`), Unversioned
}
func init() {
artifactsM[NSSCACert] = Metadata{
f: Toolchain.newNSSCACert,
Name: "nss-cacert",
Description: "bundle of X.509 certificates of public Certificate Authorities",
Website: "https://curl.se/docs/caextract.html",
}
}
func init() { artifactsF[NSSCACert] = Toolchain.newNSSCACert }

View File

@@ -7,7 +7,7 @@ import (
"hakurei.app/internal/pkg"
)
func (t Toolchain) newStage0() pkg.Artifact {
func (t Toolchain) newStage0() (pkg.Artifact, string) {
musl, compilerRT, runtimes, clang := t.NewLLVM()
return t.New("rosa-stage0", 0, []pkg.Artifact{
musl,
@@ -39,9 +39,16 @@ tar \
-C / \
-f /work/stage0-`+triplet()+`.tar.bz2 \
system bin usr/bin/env
`)
`), Unversioned
}
func init() {
artifactsM[Stage0] = Metadata{
f: Toolchain.newStage0,
Name: "rosa-stage0",
Description: "Rosa OS stage0 toolchain tarball for bootstrap",
}
}
func init() { artifactsF[Stage0] = Toolchain.newStage0 }
var (
// stage0 stores the tarball unpack artifact.

View File

@@ -6,7 +6,7 @@ import (
"hakurei.app/internal/pkg"
)
func (t Toolchain) newTamaGo() pkg.Artifact {
func (t Toolchain) newTamaGo() (pkg.Artifact, string) {
const (
version = "1.26.0"
checksum = "5XkfbpTpSdPJfwtTfUegfdu4LUy8nuZ7sCondiRIxTJI9eQONi8z_O_dq9yDkjw8"
@@ -35,6 +35,14 @@ rm \
"tamago-go"+version+".tar.gz",
mustDecode(checksum),
pkg.TarGzip,
)))
))), version
}
func init() {
artifactsM[TamaGo] = Metadata{
f: Toolchain.newTamaGo,
Name: "tamago",
Description: "a Go toolchain extended with support for bare metal execution",
Website: "https://github.com/usbarmory/tamago-go",
}
}
func init() { artifactsF[TamaGo] = Toolchain.newTamaGo }

View File

@@ -2,7 +2,7 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newToybox(suffix, script string) pkg.Artifact {
func (t Toolchain) newToybox(suffix, script string) (pkg.Artifact, string) {
const (
version = "0.8.13"
checksum = "rZ1V1ATDte2WeQZanxLVoiRGdfPXhMlEo5-exX-e-ml8cGn9qOv0ABEUVZpX3wTI"
@@ -56,14 +56,21 @@ ln -s ../../system/bin/env /work/usr/bin
Gzip,
KernelHeaders,
)
), version
}
func init() {
artifactsF[Toybox] = func(t Toolchain) pkg.Artifact {
artifactsM[Toybox] = Metadata{
f: func(t Toolchain) (pkg.Artifact, string) {
return t.newToybox("", "")
},
Name: "toybox",
Description: "many common Linux command line utilities",
Website: "https://landley.net/toybox/",
}
artifactsF[toyboxEarly] = func(t Toolchain) pkg.Artifact {
artifactsM[toyboxEarly] = Metadata{
f: func(t Toolchain) (pkg.Artifact, string) {
return t.newToybox("-early", `
echo '
CONFIG_EXPR=y
@@ -72,5 +79,10 @@ CONFIG_AWK=y
CONFIG_DIFF=y
' >> .config
`)
},
Name: "toybox-early",
Description: "a build of toybox with unfinished tools enabled to break dependency loops",
Website: "https://landley.net/toybox/",
}
}

View File

@@ -6,7 +6,7 @@ import (
"hakurei.app/internal/pkg"
)
func (t Toolchain) newUnzip() pkg.Artifact {
func (t Toolchain) newUnzip() (pkg.Artifact, string) {
const (
version = "6.0"
checksum = "fcqjB1IOVRNJ16K5gTGEDt3zCJDVBc7EDSra9w3H93stqkNwH1vaPQs_QGOpQZu1"
@@ -29,6 +29,14 @@ mv unzip /work/system/bin/
mustDecode(checksum),
pkg.TarGzip,
), false,
)))
))), version
}
func init() {
artifactsM[Unzip] = Metadata{
f: Toolchain.newUnzip,
Name: "unzip",
Description: "portable compression/archiver utilities",
Website: "https://infozip.sourceforge.net/",
}
}
func init() { artifactsF[Unzip] = Toolchain.newUnzip }

View File

@@ -6,7 +6,7 @@ import (
"hakurei.app/internal/pkg"
)
func (t Toolchain) newUtilLinux() pkg.Artifact {
func (t Toolchain) newUtilLinux() (pkg.Artifact, string) {
const (
version = "2.41.3"
checksum = "gPTd5JJ2ho_Rd0qainuogcLiiWwKSXEZPXN3yCCRl0m0KBgMaqwFuMjYgu9z8zCH"
@@ -44,6 +44,14 @@ ln -s ../system/bin/bash /bin/
Bash,
KernelHeaders,
)
), version
}
func init() {
artifactsM[UtilLinux] = Metadata{
f: Toolchain.newUtilLinux,
Name: "util-linux",
Description: "a random collection of Linux utilities",
Website: "https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git",
}
}
func init() { artifactsF[UtilLinux] = Toolchain.newUtilLinux }

View File

@@ -2,7 +2,7 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newWayland() pkg.Artifact {
func (t Toolchain) newWayland() (pkg.Artifact, string) {
const (
version = "1.24.0"
checksum = "JxgLiFRRGw2D3uhVw8ZeDbs3V7K_d4z_ypDog2LBqiA_5y2vVbUAk5NT6D5ozm0m"
@@ -32,11 +32,19 @@ echo 'int main(){}' > tests/sanity-test.c
Libffi,
Libexpat,
Libxml2,
)
), version
}
func init() { artifactsF[Wayland] = Toolchain.newWayland }
func init() {
artifactsM[Wayland] = Metadata{
f: Toolchain.newWayland,
func (t Toolchain) newWaylandProtocols() pkg.Artifact {
Name: "wayland",
Description: "core Wayland window system code and protocol",
Website: "https://wayland.freedesktop.org/",
}
}
func (t Toolchain) newWaylandProtocols() (pkg.Artifact, string) {
const (
version = "1.47"
checksum = "B_NodZ7AQfCstcx7kgbaVjpkYOzbAQq0a4NOk-SA8bQixAE20FY3p1-6gsbPgHn9"
@@ -105,6 +113,14 @@ GitLab
Libffi,
Libexpat,
Libxml2,
)
), version
}
func init() {
artifactsM[WaylandProtocols] = Metadata{
f: Toolchain.newWaylandProtocols,
Name: "wayland-protocols",
Description: "Additional standard Wayland protocols",
Website: "https://wayland.freedesktop.org/",
}
}
func init() { artifactsF[WaylandProtocols] = Toolchain.newWaylandProtocols }

View File

@@ -2,7 +2,7 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newUtilMacros() pkg.Artifact {
func (t Toolchain) newUtilMacros() (pkg.Artifact, string) {
const (
version = "1.17"
checksum = "vYPO4Qq3B_WGcsBjG0-lfwZ6DZ7ayyrOLqfDrVOgTDcyLChuMGOAAVAa_UXLu5tD"
@@ -12,11 +12,19 @@ func (t Toolchain) newUtilMacros() pkg.Artifact {
"util-macros-"+version+".tar.bz2",
mustDecode(checksum),
pkg.TarBzip2,
), nil, (*MakeHelper)(nil))
), nil, (*MakeHelper)(nil)), version
}
func init() { artifactsF[utilMacros] = Toolchain.newUtilMacros }
func init() {
artifactsM[utilMacros] = Metadata{
f: Toolchain.newUtilMacros,
func (t Toolchain) newXproto() pkg.Artifact {
Name: "util-macros",
Description: "X.Org Autotools macros",
Website: "https://xorg.freedesktop.org/",
}
}
func (t Toolchain) newXproto() (pkg.Artifact, string) {
const (
version = "7.0.23"
checksum = "goxwWxV0jZ_3pNczXFltZWHAhq92x-aEreUGyp5Ns8dBOoOmgbpeNIu1nv0Zx07z"
@@ -37,11 +45,19 @@ func (t Toolchain) newXproto() pkg.Artifact {
PkgConfig,
utilMacros,
)
), version
}
func init() { artifactsF[Xproto] = Toolchain.newXproto }
func init() {
artifactsM[Xproto] = Metadata{
f: Toolchain.newXproto,
func (t Toolchain) newLibXau() pkg.Artifact {
Name: "xproto",
Description: "X Window System unified protocol definitions",
Website: "https://gitlab.freedesktop.org/xorg/proto/xorgproto",
}
}
func (t Toolchain) newLibXau() (pkg.Artifact, string) {
const (
version = "1.0.7"
checksum = "bm768RoZZnHRe9VjNU1Dw3BhfE60DyS9D_bgSR-JLkEEyUWT_Hb_lQripxrXto8j"
@@ -64,6 +80,14 @@ func (t Toolchain) newLibXau() pkg.Artifact {
utilMacros,
Xproto,
)
), version
}
func init() {
artifactsM[LibXau] = Metadata{
f: Toolchain.newLibXau,
Name: "libXau",
Description: "functions for handling Xauthority files and entries",
Website: "https://gitlab.freedesktop.org/xorg/lib/libxau",
}
}
func init() { artifactsF[LibXau] = Toolchain.newLibXau }

View File

@@ -2,7 +2,7 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newXCBProto() pkg.Artifact {
func (t Toolchain) newXCBProto() (pkg.Artifact, string) {
const (
version = "1.17.0"
checksum = "_NtbKaJ_iyT7XiJz25mXQ7y-niTzE8sHPvLXZPcqtNoV_-vTzqkezJ8Hp2U1enCv"
@@ -13,11 +13,19 @@ func (t Toolchain) newXCBProto() pkg.Artifact {
pkg.TarGzip,
), nil, (*MakeHelper)(nil),
Python,
)
), version
}
func init() { artifactsF[XCBProto] = Toolchain.newXCBProto }
func init() {
artifactsM[XCBProto] = Metadata{
f: Toolchain.newXCBProto,
func (t Toolchain) newXCB() pkg.Artifact {
Name: "xcb-proto",
Description: "XML-XCB protocol descriptions used by libxcb for the X11 protocol & extensions",
Website: "https://gitlab.freedesktop.org/xorg/proto/xcbproto",
}
}
func (t Toolchain) newXCB() (pkg.Artifact, string) {
const (
version = "1.17.0"
checksum = "hjjsc79LpWM_hZjNWbDDS6qRQUXREjjekS6UbUsDq-RR1_AjgNDxhRvZf-1_kzDd"
@@ -33,6 +41,14 @@ func (t Toolchain) newXCB() pkg.Artifact {
XCBProto,
Xproto,
LibXau,
)
), version
}
func init() {
artifactsM[XCB] = Metadata{
f: Toolchain.newXCB,
Name: "xcb",
Description: "The X protocol C-language Binding",
Website: "https://xcb.freedesktop.org/",
}
}
func init() { artifactsF[XCB] = Toolchain.newXCB }

View File

@@ -2,7 +2,7 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newXZ() pkg.Artifact {
func (t Toolchain) newXZ() (pkg.Artifact, string) {
const (
version = "5.8.2"
checksum = "rXT-XCp9R2q6cXqJ5qenp0cmGPfiENQiU3BWtUVeVgArfRmSsISeUJgvCR3zI0a0"
@@ -14,6 +14,14 @@ func (t Toolchain) newXZ() pkg.Artifact {
pkg.TarBzip2,
), nil, (*MakeHelper)(nil),
Diffutils,
)
), version
}
func init() {
artifactsM[XZ] = Metadata{
f: Toolchain.newXZ,
Name: "xz",
Description: "XZ Utils",
Website: "https://tukaani.org/xz/",
}
}
func init() { artifactsF[XZ] = Toolchain.newXZ }

View File

@@ -2,7 +2,7 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newZlib() pkg.Artifact {
func (t Toolchain) newZlib() (pkg.Artifact, string) {
const (
version = "1.3.1"
checksum = "E-eIpNzE8oJ5DsqH4UuA_0GDKuQF5csqI8ooDx2w7Vx-woJ2mb-YtSbEyIMN44mH"
@@ -20,6 +20,14 @@ func (t Toolchain) newZlib() pkg.Artifact {
Host: `""`,
Build: `""`,
})
}), version
}
func init() {
artifactsM[Zlib] = Metadata{
f: Toolchain.newZlib,
Name: "zlib",
Description: "lossless data-compression library",
Website: "https://zlib.net/",
}
}
func init() { artifactsF[Zlib] = Toolchain.newZlib }

View File

@@ -2,7 +2,7 @@ package rosa
import "hakurei.app/internal/pkg"
func (t Toolchain) newZstd() pkg.Artifact {
func (t Toolchain) newZstd() (pkg.Artifact, string) {
const (
version = "1.5.7"
checksum = "4XhfR7DwVkwo1R-TmYDAJOcx9YXv9WSFhcFUe3hWEAMmdMLPhFaznCqYIA19_xxV"
@@ -18,6 +18,14 @@ func (t Toolchain) newZstd() pkg.Artifact {
{"CMAKE_BUILD_TYPE", "Release"},
{"CMAKE_INSTALL_LIBDIR", "lib"},
},
})
}), version
}
func init() {
artifactsM[Zstd] = Metadata{
f: Toolchain.newZstd,
Name: "zstd",
Description: "a fast compression algorithm",
Website: "https://www.zstd.net/",
}
}
func init() { artifactsF[Zstd] = Toolchain.newZstd }