internal/rosa: provide package metadata
All checks were successful
Test / Create distribution (push) Successful in 58s
Test / Sandbox (push) Successful in 2m36s
Test / Hakurei (push) Successful in 3m42s
Test / ShareFS (push) Successful in 3m48s
Test / Sandbox (race detector) (push) Successful in 4m55s
Test / Hakurei (race detector) (push) Successful in 5m53s
Test / Flake checks (push) Successful in 1m35s

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 d2c6d486b0
59 changed files with 1286 additions and 478 deletions

View File

@@ -2,7 +2,7 @@ package rosa
import "hakurei.app/internal/pkg" import "hakurei.app/internal/pkg"
func (t Toolchain) newAttr() pkg.Artifact { func (t Toolchain) newAttr() (pkg.Artifact, string) {
const ( const (
version = "2.5.2" version = "2.5.2"
checksum = "YWEphrz6vg1sUMmHHVr1CRo53pFXRhq_pjN-AlG8UgwZK1y6m7zuDhxqJhD0SV0l" checksum = "YWEphrz6vg1sUMmHHVr1CRo53pFXRhq_pjN-AlG8UgwZK1y6m7zuDhxqJhD0SV0l"
@@ -62,11 +62,19 @@ ln -s ../../system/bin/perl /usr/bin
`, `,
}, (*MakeHelper)(nil), }, (*MakeHelper)(nil),
Perl, 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 ( const (
version = "2.3.2" version = "2.3.2"
checksum = "-fY5nwH4K8ZHBCRXrzLdguPkqjKI6WIiGu4dBtrZ1o0t6AIU73w8wwJz_UyjIS0P" checksum = "-fY5nwH4K8ZHBCRXrzLdguPkqjKI6WIiGu4dBtrZ1o0t6AIU73w8wwJz_UyjIS0P"
@@ -81,6 +89,14 @@ func (t Toolchain) newACL() pkg.Artifact {
SkipCheck: true, SkipCheck: true,
}, },
Attr, 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 Zlib
Zstd Zstd
buildcatrust // _presetUnexportedStart is the first unexported preset.
_presetUnexportedStart
buildcatrust = iota - 1
utilMacros utilMacros
// Musl is a standalone libc that does not depend on the toolchain. // Musl is a standalone libc that does not depend on the toolchain.
@@ -138,131 +141,59 @@ const (
_presetEnd _presetEnd
) )
var ( // Metadata is stage-agnostic information of a [PArtifact] not directly
// artifactsF is an array of functions for the result of [PArtifact]. // representable in the resulting [pkg.Artifact].
artifactsF [_presetEnd]func(t Toolchain) pkg.Artifact type Metadata struct {
f func(t Toolchain) (a pkg.Artifact, version string)
// artifacts stores the result of artifactsF. // Unique package name.
artifacts [_toolchainEnd][len(artifactsF)]pkg.Artifact 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 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]. // Load returns the resulting [pkg.Artifact] of [PArtifact].
func (t Toolchain) Load(p PArtifact) pkg.Artifact { func (t Toolchain) Load(p PArtifact) pkg.Artifact {
artifactsOnce[t][p].Do(func() { 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] 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. // ResolveName returns a [PArtifact] by name.
func ResolveName(name string) (p PArtifact, ok bool) { func ResolveName(name string) (p PArtifact, ok bool) {
p, ok = map[string]PArtifact{ for i := range _presetUnexportedStart {
"initramfs-image": ImageInitramfs, if name == artifactsM[i].Name {
return i, true
"kernel": Kernel, }
"kernel-headers": KernelHeaders, }
"kernel-source": KernelSource, return 0, false
"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
} }

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" import "hakurei.app/internal/pkg"
func (t Toolchain) newArgpStandalone() pkg.Artifact { func (t Toolchain) newArgpStandalone() (pkg.Artifact, string) {
const ( const (
version = "1.3" version = "1.3"
checksum = "vtW0VyO2pJ-hPyYmDI2zwSLS8QL0sPAUKC1t3zNYbwN2TmsaE-fADhaVtNd3eNFl" checksum = "vtW0VyO2pJ-hPyYmDI2zwSLS8QL0sPAUKC1t3zNYbwN2TmsaE-fADhaVtNd3eNFl"
@@ -23,6 +23,14 @@ install -D -m755 libargp.a /work/system/lib/libargp.a
`, `,
}, },
Diffutils, 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" import "hakurei.app/internal/pkg"
func (t Toolchain) newBzip2() pkg.Artifact { func (t Toolchain) newBzip2() (pkg.Artifact, string) {
const ( const (
version = "1.0.8" version = "1.0.8"
checksum = "cTLykcco7boom-s05H1JVsQi1AtChYL84nXkg_92Dm1Xt94Ob_qlMg_-NSguIK-c" checksum = "cTLykcco7boom-s05H1JVsQi1AtChYL84nXkg_92Dm1Xt94Ob_qlMg_-NSguIK-c"
@@ -23,6 +23,14 @@ func (t Toolchain) newBzip2() pkg.Artifact {
"CC=cc", "CC=cc",
}, },
Install: "make PREFIX=/work/system install", 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" "hakurei.app/internal/pkg"
) )
func (t Toolchain) newCMake() pkg.Artifact { func (t Toolchain) newCMake() (pkg.Artifact, string) {
const ( const (
version = "4.2.3" version = "4.2.3"
checksum = "Y4uYGnLrDQX78UdzH7fMzfok46Nt_1taDIHSmqgboU1yFi6f0iAXBDegMCu4eS-J" checksum = "Y4uYGnLrDQX78UdzH7fMzfok46Nt_1taDIHSmqgboU1yFi6f0iAXBDegMCu4eS-J"
@@ -102,9 +102,17 @@ index 2ead810437..f85cbb8b1c 100644
}, },
}, },
KernelHeaders, 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. // CMakeHelper is the [CMake] build system helper.
type CMakeHelper struct { type CMakeHelper struct {

View File

@@ -2,7 +2,7 @@ package rosa
import "hakurei.app/internal/pkg" import "hakurei.app/internal/pkg"
func (t Toolchain) newCurl() pkg.Artifact { func (t Toolchain) newCurl() (pkg.Artifact, string) {
const ( const (
version = "8.18.0" version = "8.18.0"
checksum = "YpOolP_sx1DIrCEJ3elgVAu0wTLDS-EZMZFvOP0eha7FaLueZUlEpuMwDzJNyi7i" checksum = "YpOolP_sx1DIrCEJ3elgVAu0wTLDS-EZMZFvOP0eha7FaLueZUlEpuMwDzJNyi7i"
@@ -25,6 +25,14 @@ func (t Toolchain) newCurl() pkg.Artifact {
Libpsl, Libpsl,
OpenSSL, 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" import "hakurei.app/internal/pkg"
func (t Toolchain) newDTC() pkg.Artifact { func (t Toolchain) newDTC() (pkg.Artifact, string) {
const ( const (
version = "1.7.2" version = "1.7.2"
checksum = "vUoiRynPyYRexTpS6USweT5p4SVHvvVJs8uqFkkVD-YnFjwf6v3elQ0-Etrh00Dt" checksum = "vUoiRynPyYRexTpS6USweT5p4SVHvvVJs8uqFkkVD-YnFjwf6v3elQ0-Etrh00Dt"
@@ -28,6 +28,14 @@ func (t Toolchain) newDTC() pkg.Artifact {
M4, M4,
Coreutils, Coreutils,
Diffutils, 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" import "hakurei.app/internal/pkg"
func (t Toolchain) newElfutils() pkg.Artifact { func (t Toolchain) newElfutils() (pkg.Artifact, string) {
const ( const (
version = "0.194" version = "0.194"
checksum = "Q3XUygUPv9vR1TkWucwUsQ8Kb1_F6gzk-KMPELr3cC_4AcTrprhVPMvN0CKkiYRa" checksum = "Q3XUygUPv9vR1TkWucwUsQ8Kb1_F6gzk-KMPELr3cC_4AcTrprhVPMvN0CKkiYRa"
@@ -36,6 +36,14 @@ func (t Toolchain) newElfutils() pkg.Artifact {
MuslFts, MuslFts,
MuslObstack, MuslObstack,
KernelHeaders, 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" import "hakurei.app/internal/pkg"
func (t Toolchain) newFakeroot() pkg.Artifact { func (t Toolchain) newFakeroot() (pkg.Artifact, string) {
const ( const (
version = "1.37.2" version = "1.37.2"
checksum = "4ve-eDqVspzQ6VWDhPS0NjW3aSenBJcPAJq_BFT7OOFgUdrQzoTBxZWipDAGWxF8" checksum = "4ve-eDqVspzQ6VWDhPS0NjW3aSenBJcPAJq_BFT7OOFgUdrQzoTBxZWipDAGWxF8"
@@ -46,6 +46,14 @@ index f135ad9..85c784c 100644
Attr, Attr,
Libcap, Libcap,
KernelHeaders, 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" "hakurei.app/internal/pkg"
) )
func (t Toolchain) newFlex() pkg.Artifact { func (t Toolchain) newFlex() (pkg.Artifact, string) {
const ( const (
version = "2.6.4" version = "2.6.4"
checksum = "p9POjQU7VhgOf3x5iFro8fjhy0NOanvA7CTeuWS_veSNgCixIJshTrWVkc5XLZkB" checksum = "p9POjQU7VhgOf3x5iFro8fjhy0NOanvA7CTeuWS_veSNgCixIJshTrWVkc5XLZkB"
@@ -16,6 +16,14 @@ func (t Toolchain) newFlex() pkg.Artifact {
pkg.TarGzip, pkg.TarGzip,
), nil, (*MakeHelper)(nil), ), nil, (*MakeHelper)(nil),
M4, 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" import "hakurei.app/internal/pkg"
func (t Toolchain) newFuse() pkg.Artifact { func (t Toolchain) newFuse() (pkg.Artifact, string) {
const ( const (
version = "3.18.1" version = "3.18.1"
checksum = "COb-BgJRWXLbt9XUkNeuiroQizpMifXqxgieE1SlkMXhs_WGSyJStrmyewAw2hd6" checksum = "COb-BgJRWXLbt9XUkNeuiroQizpMifXqxgieE1SlkMXhs_WGSyJStrmyewAw2hd6"
@@ -31,6 +31,14 @@ func (t Toolchain) newFuse() pkg.Artifact {
PyTest, PyTest,
KernelHeaders, 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" import "hakurei.app/internal/pkg"
func (t Toolchain) newGit() pkg.Artifact { func (t Toolchain) newGit() (pkg.Artifact, string) {
const ( const (
version = "2.52.0" version = "2.52.0"
checksum = "uH3J1HAN_c6PfGNJd2OBwW4zo36n71wmkdvityYnrh8Ak0D1IifiAvEWz9Vi9DmS" checksum = "uH3J1HAN_c6PfGNJd2OBwW4zo36n71wmkdvityYnrh8Ak0D1IifiAvEWz9Vi9DmS"
@@ -63,9 +63,17 @@ disable_test t2200-add-update
Curl, Curl,
OpenSSL, OpenSSL,
Libexpat, 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. // NewViaGit returns a [pkg.Artifact] for cloning a git repository.
func (t Toolchain) NewViaGit( func (t Toolchain) NewViaGit(

View File

@@ -2,7 +2,7 @@ package rosa
import "hakurei.app/internal/pkg" import "hakurei.app/internal/pkg"
func (t Toolchain) newM4() pkg.Artifact { func (t Toolchain) newM4() (pkg.Artifact, string) {
const ( const (
version = "1.4.20" version = "1.4.20"
checksum = "RT0_L3m4Co86bVBY3lCFAEs040yI1WdeNmRylFpah8IZovTm6O4wI7qiHJN3qsW9" checksum = "RT0_L3m4Co86bVBY3lCFAEs040yI1WdeNmRylFpah8IZovTm6O4wI7qiHJN3qsW9"
@@ -18,11 +18,19 @@ chmod +w tests/test-c32ispunct.sh && echo '#!/bin/sh' > tests/test-c32ispunct.sh
`, `,
}, (*MakeHelper)(nil), }, (*MakeHelper)(nil),
Diffutils, 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 ( const (
version = "3.8.2" version = "3.8.2"
checksum = "BhRM6K7URj1LNOkIDCFDctSErLS-Xo5d9ba9seg10o6ACrgC1uNhED7CQPgIY29Y" checksum = "BhRM6K7URj1LNOkIDCFDctSErLS-Xo5d9ba9seg10o6ACrgC1uNhED7CQPgIY29Y"
@@ -35,11 +43,19 @@ func (t Toolchain) newBison() pkg.Artifact {
M4, M4,
Diffutils, Diffutils,
Sed, 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 ( const (
version = "4.9" version = "4.9"
checksum = "pe7HWH4PHNYrazOTlUoE1fXmhn2GOPFN_xE62i0llOr3kYGrH1g2_orDz0UtZ9Nt" checksum = "pe7HWH4PHNYrazOTlUoE1fXmhn2GOPFN_xE62i0llOr3kYGrH1g2_orDz0UtZ9Nt"
@@ -50,11 +66,19 @@ func (t Toolchain) newSed() pkg.Artifact {
pkg.TarGzip, pkg.TarGzip,
), nil, (*MakeHelper)(nil), ), nil, (*MakeHelper)(nil),
Diffutils, 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 ( const (
version = "2.72" version = "2.72"
checksum = "-c5blYkC-xLDer3TWEqJTyh1RLbOd1c5dnRLKsDnIrg_wWNOLBpaqMY8FvmUFJ33" checksum = "-c5blYkC-xLDer3TWEqJTyh1RLbOd1c5dnRLKsDnIrg_wWNOLBpaqMY8FvmUFJ33"
@@ -75,11 +99,19 @@ func (t Toolchain) newAutoconf() pkg.Artifact {
Perl, Perl,
Bash, Bash,
Diffutils, 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 ( const (
version = "1.18.1" version = "1.18.1"
checksum = "FjvLG_GdQP7cThTZJLDMxYpRcKdpAVG-YDs1Fj1yaHlSdh_Kx6nRGN14E0r_BjcG" checksum = "FjvLG_GdQP7cThTZJLDMxYpRcKdpAVG-YDs1Fj1yaHlSdh_Kx6nRGN14E0r_BjcG"
@@ -107,11 +139,19 @@ test_disable '#!/bin/sh' t/pr9.sh
Gzip, Gzip,
Autoconf, Autoconf,
Diffutils, 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 ( const (
version = "2.5.4" version = "2.5.4"
checksum = "pa6LSrQggh8mSJHQfwGjysAApmZlGJt8wif2cCLzqAAa2jpsTY0jZ-6stS3BWZ2Q" checksum = "pa6LSrQggh8mSJHQfwGjysAApmZlGJt8wif2cCLzqAAa2jpsTY0jZ-6stS3BWZ2Q"
@@ -128,11 +168,19 @@ func (t Toolchain) newLibtool() pkg.Artifact {
}, },
M4, M4,
Diffutils, 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 ( const (
version = "1.14" version = "1.14"
checksum = "NWhjUavnNfTDFkZJyAUonL9aCOak8GVajWX2OMlzpFnuI0ErpBFyj88mz2xSjz0q" checksum = "NWhjUavnNfTDFkZJyAUonL9aCOak8GVajWX2OMlzpFnuI0ErpBFyj88mz2xSjz0q"
@@ -144,11 +192,19 @@ func (t Toolchain) newGzip() pkg.Artifact {
), nil, &MakeHelper{ ), nil, &MakeHelper{
// dependency loop // dependency loop
SkipCheck: true, 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 ( const (
version = "1.0" version = "1.0"
checksum = "3MasKeEdPeFEgWgzsBKk7JqWqql1wEMbgPmzAfs-mluyokoW0N8oQVxPQoOnSdgC" checksum = "3MasKeEdPeFEgWgzsBKk7JqWqql1wEMbgPmzAfs-mluyokoW0N8oQVxPQoOnSdgC"
@@ -180,11 +236,19 @@ touch gettext-tools/autotools/archive.dir.tar
Sed, Sed,
KernelHeaders, 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 ( const (
version = "3.12" version = "3.12"
checksum = "9J5VAq5oA7eqwzS1Yvw-l3G5o-TccUrNQR3PvyB_lgdryOFAfxtvQfKfhdpquE44" 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 test_disable '#!/bin/sh' tests/cmp
`, `,
Flag: TEarly, 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 ( const (
version = "2.8" version = "2.8"
checksum = "MA0BQc662i8QYBD-DdGgyyfTwaeALZ1K0yusV9rAmNiIsQdX-69YC4t9JEGXZkeR" checksum = "MA0BQc662i8QYBD-DdGgyyfTwaeALZ1K0yusV9rAmNiIsQdX-69YC4t9JEGXZkeR"
@@ -225,11 +297,19 @@ test_disable '#!/bin/sh' tests/ed-style
test_disable '#!/bin/sh' tests/need-filename test_disable '#!/bin/sh' tests/need-filename
`, `,
Flag: TEarly, 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 ( const (
version = "5.3" version = "5.3"
checksum = "4LQ_GRoB_ko-Ih8QPf_xRKA02xAm_TOxQgcJLmFDT6udUPxTAWrsj-ZNeuTusyDq" checksum = "4LQ_GRoB_ko-Ih8QPf_xRKA02xAm_TOxQgcJLmFDT6udUPxTAWrsj-ZNeuTusyDq"
@@ -245,11 +325,19 @@ func (t Toolchain) newBash() pkg.Artifact {
Configure: [][2]string{ Configure: [][2]string{
{"without-bash-malloc"}, {"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 ( const (
version = "9.9" version = "9.9"
checksum = "B1_TaXj1j5aiVIcazLWu8Ix03wDV54uo2_iBry4qHG6Y-9bjDpUPlkNLmU_3Nvw6" checksum = "B1_TaXj1j5aiVIcazLWu8Ix03wDV54uo2_iBry4qHG6Y-9bjDpUPlkNLmU_3Nvw6"
@@ -281,11 +369,19 @@ test_disable 'int main(){return 0;}' gnulib-tests/test-lchown.c
Bash, Bash,
KernelHeaders, 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 ( const (
version = "7.2" version = "7.2"
checksum = "9EelM5b7QGMAY5DKrAm_El8lofBGuFWlaBPSBhh7l_VQE8054MBmC0KBvGrABqjv" checksum = "9EelM5b7QGMAY5DKrAm_El8lofBGuFWlaBPSBhh7l_VQE8054MBmC0KBvGrABqjv"
@@ -299,11 +395,19 @@ func (t Toolchain) newTexinfo() pkg.Artifact {
SkipCheck: true, SkipCheck: true,
}, },
Perl, 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 ( const (
version = "3.3" version = "3.3"
checksum = "RtIy9pPb_Bb8-31J2Nw-rRGso2JlS-lDlVhuNYhqR7Nt4xM_nObznxAlBMnarJv7" checksum = "RtIy9pPb_Bb8-31J2Nw-rRGso2JlS-lDlVhuNYhqR7Nt4xM_nObznxAlBMnarJv7"
@@ -314,11 +418,19 @@ func (t Toolchain) newGperf() pkg.Artifact {
pkg.TarGzip, pkg.TarGzip,
), nil, (*MakeHelper)(nil), ), nil, (*MakeHelper)(nil),
Diffutils, 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 ( const (
version = "5.3.2" version = "5.3.2"
checksum = "uIs0d14h_d2DgMGYwrPtegGNyt_bxzG3D6Fe-MmExx_pVoVkQaHzrtmiXVr6NHKk" checksum = "uIs0d14h_d2DgMGYwrPtegGNyt_bxzG3D6Fe-MmExx_pVoVkQaHzrtmiXVr6NHKk"
@@ -332,11 +444,19 @@ func (t Toolchain) newGawk() pkg.Artifact {
}, &MakeHelper{ }, &MakeHelper{
// dependency loop // dependency loop
SkipCheck: true, 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 ( const (
version = "3.12" version = "3.12"
checksum = "qMB4RjaPNRRYsxix6YOrjE8gyAT1zVSTy4nW4wKW9fqa0CHYAuWgPwDTirENzm_1" checksum = "qMB4RjaPNRRYsxix6YOrjE8gyAT1zVSTy4nW4wKW9fqa0CHYAuWgPwDTirENzm_1"
@@ -355,11 +475,19 @@ test_disable 'int main(){return 0;}' gnulib-tests/test-c32ispunct.c
`, `,
}, (*MakeHelper)(nil), }, (*MakeHelper)(nil),
Diffutils, 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 ( const (
version = "4.10.0" version = "4.10.0"
checksum = "ZXABdNBQXL7QjTygynRRTdXYWxQKZ0Wn5eMd3NUnxR0xaS0u0VfcKoTlbo50zxv6" checksum = "ZXABdNBQXL7QjTygynRRTdXYWxQKZ0Wn5eMd3NUnxR0xaS0u0VfcKoTlbo50zxv6"
@@ -377,11 +505,19 @@ echo 'int main(){return 0;}' > tests/xargs/test-sigusr.c
Diffutils, Diffutils,
XZ, XZ,
Sed, 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 ( const (
version = "1.08.2" version = "1.08.2"
checksum = "8h6f3hjV80XiFs6v9HOPF2KEyg1kuOgn5eeFdVspV05ODBVQss-ey5glc8AmneLy" checksum = "8h6f3hjV80XiFs6v9HOPF2KEyg1kuOgn5eeFdVspV05ODBVQss-ey5glc8AmneLy"
@@ -397,11 +533,19 @@ func (t Toolchain) newBC() pkg.Artifact {
}, (*MakeHelper)(nil), }, (*MakeHelper)(nil),
Perl, Perl,
Texinfo, 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 ( const (
version = "1.18" version = "1.18"
checksum = "iV5q3VxP5VPdJ-X7O5OQI4fGm8VjeYb5viLd1L3eAHg26bbHb2_Qn63XPF3ucVZr" 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", nil, "https://ftpmirror.gnu.org/gnu/libiconv/libiconv-"+version+".tar.gz",
mustDecode(checksum), mustDecode(checksum),
pkg.TarGzip, 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 ( const (
version = "1.35" version = "1.35"
checksum = "zSaoSlVUDW0dSfm4sbL4FrXLFR8U40Fh3zY5DWhR5NCIJ6GjU6Kc4VZo2-ZqpBRA" checksum = "zSaoSlVUDW0dSfm4sbL4FrXLFR8U40Fh3zY5DWhR5NCIJ6GjU6Kc4VZo2-ZqpBRA"
@@ -442,11 +594,19 @@ func (t Toolchain) newTar() pkg.Artifact {
Gzip, Gzip,
Bzip2, Bzip2,
Zstd, 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 ( const (
version = "2.45" version = "2.45"
checksum = "hlLtqqHDmzAT2OQVHaKEd_io2DGFvJkaeS-igBuK8bRRir7LUKGHgHYNkDVKaHTT" checksum = "hlLtqqHDmzAT2OQVHaKEd_io2DGFvJkaeS-igBuK8bRRir7LUKGHgHYNkDVKaHTT"
@@ -457,11 +617,19 @@ func (t Toolchain) newBinutils() pkg.Artifact {
pkg.TarBzip2, pkg.TarBzip2,
), nil, (*MakeHelper)(nil), ), nil, (*MakeHelper)(nil),
Bash, 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 ( const (
version = "6.3.0" version = "6.3.0"
checksum = "yrgbgEDWKDdMWVHh7gPbVl56-sRtVVhfvv0M_LX7xMUUk_mvZ1QOJEAnt7g4i3k5" checksum = "yrgbgEDWKDdMWVHh7gPbVl56-sRtVVhfvv0M_LX7xMUUk_mvZ1QOJEAnt7g4i3k5"
@@ -473,11 +641,19 @@ func (t Toolchain) newGMP() pkg.Artifact {
pkg.TarBzip2, pkg.TarBzip2,
), nil, (*MakeHelper)(nil), ), nil, (*MakeHelper)(nil),
M4, 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 ( const (
version = "4.2.2" version = "4.2.2"
checksum = "wN3gx0zfIuCn9r3VAn_9bmfvAYILwrRfgBjYSD1IjLqyLrLojNN5vKyQuTE9kA-B" checksum = "wN3gx0zfIuCn9r3VAn_9bmfvAYILwrRfgBjYSD1IjLqyLrLojNN5vKyQuTE9kA-B"
@@ -489,11 +665,19 @@ func (t Toolchain) newMPFR() pkg.Artifact {
pkg.TarBzip2, pkg.TarBzip2,
), nil, (*MakeHelper)(nil), ), nil, (*MakeHelper)(nil),
GMP, 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 ( const (
version = "1.3.1" version = "1.3.1"
checksum = "o8r8K9R4x7PuRx0-JE3-bC5jZQrtxGV2nkB773aqJ3uaxOiBDCID1gKjPaaDxX4V" checksum = "o8r8K9R4x7PuRx0-JE3-bC5jZQrtxGV2nkB773aqJ3uaxOiBDCID1gKjPaaDxX4V"
@@ -506,11 +690,19 @@ func (t Toolchain) newMPC() pkg.Artifact {
), nil, (*MakeHelper)(nil), ), nil, (*MakeHelper)(nil),
GMP, GMP,
MPFR, 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 ( const (
version = "15.2.0" version = "15.2.0"
checksum = "TXJ5WrbXlGLzy1swghQTr4qxgDCyIZFgJry51XEPTBZ8QYbVmFeB4lZbSMtPJ-a1" checksum = "TXJ5WrbXlGLzy1swghQTr4qxgDCyIZFgJry51XEPTBZ8QYbVmFeB4lZbSMtPJ-a1"
@@ -710,6 +902,14 @@ ln -s system/lib /work/
Zlib, Zlib,
Libucontext, Libucontext,
KernelHeaders, 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 ( var (
bootstrapEnv []string bootstrapEnv []string
bootstrapExtra []pkg.Artifact bootstrapExtra []pkg.Artifact
@@ -153,9 +153,13 @@ rm \
`, go123, `, go123,
) )
const (
version = "1.26.0"
checksum = "uHLcrgBc0NMcyTMDLRNAZIcOx0RyQlyekSl9xbWSwj3esEFWJysYLfLa3S8p39Nh"
)
return t.newGo( return t.newGo(
"1.26.0", version,
"uHLcrgBc0NMcyTMDLRNAZIcOx0RyQlyekSl9xbWSwj3esEFWJysYLfLa3S8p39Nh", checksum,
finalEnv, ` finalEnv, `
sed -i \ sed -i \
's,/lib/ld-musl-`+linuxArch()+`.so.1,/system/bin/linker,' \ 's,/lib/ld-musl-`+linuxArch()+`.so.1,/system/bin/linker,' \
@@ -164,6 +168,14 @@ sed -i \
rm \ rm \
os/root_unix_test.go os/root_unix_test.go
`, go125, `, 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" "hakurei.app/internal/pkg"
) )
func (t Toolchain) newGLib() pkg.Artifact { func (t Toolchain) newGLib() (pkg.Artifact, string) {
const ( const (
version = "2.86.4" version = "2.86.4"
checksum = "AfTjBrrxtXXPL6dFa1LfTe40PyPSth62CoIkM5m_VJTUngGLOFHw6I4XE7RGQE8G" checksum = "AfTjBrrxtXXPL6dFa1LfTe40PyPSth62CoIkM5m_VJTUngGLOFHw6I4XE7RGQE8G"
@@ -46,6 +46,14 @@ func (t Toolchain) newGLib() pkg.Artifact {
PCRE2, PCRE2,
Libffi, Libffi,
Zlib, 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,8 +58,9 @@ func main() {
))) )))
} }
func init() { func init() {
artifactsF[Hakurei] = func(t Toolchain) pkg.Artifact { artifactsM[Hakurei] = Metadata{
return t.newHakurei("", ` f: func(t Toolchain) (pkg.Artifact, string) {
return t.newHakurei("", `
mkdir -p /work/system/libexec/hakurei/ mkdir -p /work/system/libexec/hakurei/
echo '# Building hakurei.' echo '# Building hakurei.'
@@ -83,12 +84,23 @@ mkdir -p /work/system/bin/
hakurei \ hakurei \
sharefs \ sharefs \
../../bin/) ../../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{
return t.newHakurei("-dist", ` f: func(t Toolchain) (pkg.Artifact, string) {
return t.newHakurei("-dist", `
export HAKUREI_VERSION export HAKUREI_VERSION
DESTDIR=/work /usr/src/hakurei/dist/release.sh 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" 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{ return t.New("initramfs", TNoToolchain, []pkg.Artifact{
t.Load(Zstd), t.Load(Zstd),
t.Load(Hakurei), t.Load(Hakurei),
@@ -14,6 +14,13 @@ dir /dev 0755 0 0
nod /dev/null 0666 0 0 c 1 3 nod /dev/null 0666 0 0 c 1 3
nod /dev/console 0600 0 0 c 5 1 nod /dev/console 0600 0 0 c 5 1
file /init /system/libexec/hakurei/earlyinit 0555 0 0 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, 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, ` return t.New("kernel-"+kernelVersion+"-src", 0, nil, nil, nil, `
mkdir -p /work/usr/src/ mkdir -p /work/usr/src/
cp -r /usr/src/linux /work/usr/src/ cp -r /usr/src/linux /work/usr/src/
chmod -R +w /work/usr/src/linux/ 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{ return t.NewPackage("kernel-headers", kernelVersion, kernelSource, &PackageAttr{
Flag: TEarly, Flag: TEarly,
}, &MakeHelper{ }, &MakeHelper{
@@ -38,11 +46,19 @@ func (t Toolchain) newKernelHeaders() pkg.Artifact {
Install: "# headers installed during make", Install: "# headers installed during make",
}, },
Rsync, 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{ return t.NewPackage("kernel", kernelVersion, kernelSource, &PackageAttr{
Env: []string{ Env: []string{
"PATH=/system/sbin", "PATH=/system/sbin",
@@ -123,14 +139,29 @@ rm -v /work/lib/modules/` + kernelVersion + `/build
OpenSSL, OpenSSL,
UtilLinux, UtilLinux,
KernelHeaders, 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, ` return t.New("gen_init_cpio-"+kernelVersion, 0, nil, nil, nil, `
mkdir -p /work/system/bin/ mkdir -p /work/system/bin/
cc -o /work/system/bin/gen_init_cpio /usr/src/linux/usr/gen_init_cpio.c 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" import "hakurei.app/internal/pkg"
func (t Toolchain) newKmod() pkg.Artifact { func (t Toolchain) newKmod() (pkg.Artifact, string) {
const ( const (
version = "34.2" version = "34.2"
checksum = "0K7POeTKxMhExsaTsnKAC6LUNsRSfe6sSZxWONPbOu-GI_pXOw3toU_BIoqfBhJV" checksum = "0K7POeTKxMhExsaTsnKAC6LUNsRSfe6sSZxWONPbOu-GI_pXOw3toU_BIoqfBhJV"
@@ -28,6 +28,14 @@ func (t Toolchain) newKmod() pkg.Artifact {
Zstd, Zstd,
OpenSSL, OpenSSL,
KernelHeaders, 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" import "hakurei.app/internal/pkg"
func (t Toolchain) newLibcap() pkg.Artifact { func (t Toolchain) newLibcap() (pkg.Artifact, string) {
const ( const (
version = "2.77" version = "2.77"
checksum = "2GOTFU4cl2QoS7Dv5wh0c9-hxsQwIzMB9Y_gfAo5xKHqcM13fiHt1RbPkfemzjmB" checksum = "2GOTFU4cl2QoS7Dv5wh0c9-hxsQwIzMB9Y_gfAo5xKHqcM13fiHt1RbPkfemzjmB"
@@ -39,6 +39,14 @@ ln -s ../system/bin/bash /bin/
}, },
Bash, Bash,
Diffutils, 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" "hakurei.app/internal/pkg"
) )
func (t Toolchain) newLibexpat() pkg.Artifact { func (t Toolchain) newLibexpat() (pkg.Artifact, string) {
const ( const (
version = "2.7.3" version = "2.7.3"
checksum = "GmkoD23nRi9cMT0cgG1XRMrZWD82UcOMzkkvP1gkwSFWCBgeSXMuoLpa8-v8kxW-" checksum = "GmkoD23nRi9cMT0cgG1XRMrZWD82UcOMzkkvP1gkwSFWCBgeSXMuoLpa8-v8kxW-"
@@ -19,6 +19,14 @@ func (t Toolchain) newLibexpat() pkg.Artifact {
pkg.TarBzip2, pkg.TarBzip2,
), nil, (*MakeHelper)(nil), ), nil, (*MakeHelper)(nil),
Bash, 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" import "hakurei.app/internal/pkg"
func (t Toolchain) newLibffi() pkg.Artifact { func (t Toolchain) newLibffi() (pkg.Artifact, string) {
const ( const (
version = "3.4.5" version = "3.4.5"
checksum = "apIJzypF4rDudeRoI_n3K7N-zCeBLTbQlHRn9NSAZqdLAWA80mR0gXPTpHsL7oMl" checksum = "apIJzypF4rDudeRoI_n3K7N-zCeBLTbQlHRn9NSAZqdLAWA80mR0gXPTpHsL7oMl"
@@ -14,6 +14,14 @@ func (t Toolchain) newLibffi() pkg.Artifact {
pkg.TarGzip, pkg.TarGzip,
), nil, (*MakeHelper)(nil), ), nil, (*MakeHelper)(nil),
KernelHeaders, 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" import "hakurei.app/internal/pkg"
func (t Toolchain) newLibgd() pkg.Artifact { func (t Toolchain) newLibgd() (pkg.Artifact, string) {
const ( const (
version = "2.3.3" version = "2.3.3"
checksum = "8T-sh1_FJT9K9aajgxzh8ot6vWIF-xxjcKAHvTak9MgGUcsFfzP8cAvvv44u2r36" checksum = "8T-sh1_FJT9K9aajgxzh8ot6vWIF-xxjcKAHvTak9MgGUcsFfzP8cAvvv44u2r36"
@@ -21,6 +21,14 @@ mkdir /dev/shm/gd
`, `,
}, (*MakeHelper)(nil), }, (*MakeHelper)(nil),
Zlib, 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" import "hakurei.app/internal/pkg"
func (t Toolchain) newLibpsl() pkg.Artifact { func (t Toolchain) newLibpsl() (pkg.Artifact, string) {
const ( const (
version = "0.21.5" version = "0.21.5"
checksum = "XjfxSzh7peG2Vg4vJlL8z4JZJLcXqbuP6pLWkrGCmRxlnYUFTKNBqWGHCxEOlCad" checksum = "XjfxSzh7peG2Vg4vJlL8z4JZJLcXqbuP6pLWkrGCmRxlnYUFTKNBqWGHCxEOlCad"
@@ -21,6 +21,14 @@ test_disable 'int main(){return 0;}' tests/test-is-public-builtin.c
`, `,
}, (*MakeHelper)(nil), }, (*MakeHelper)(nil),
Python, 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 package rosa
import ( import "hakurei.app/internal/pkg"
"hakurei.app/internal/pkg"
)
func (t Toolchain) newLibseccomp() pkg.Artifact { func (t Toolchain) newLibseccomp() (pkg.Artifact, string) {
const ( const (
version = "2.6.0" version = "2.6.0"
checksum = "mMu-iR71guPjFbb31u-YexBaanKE_nYPjPux-vuBiPfS_0kbwJdfCGlkofaUm-EY" checksum = "mMu-iR71guPjFbb31u-YexBaanKE_nYPjPux-vuBiPfS_0kbwJdfCGlkofaUm-EY"
@@ -24,6 +22,14 @@ ln -s ../system/bin/bash /bin/
Gperf, Gperf,
KernelHeaders, 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" import "hakurei.app/internal/pkg"
func (t Toolchain) newLibucontext() pkg.Artifact { func (t Toolchain) newLibucontext() (pkg.Artifact, string) {
const ( const (
version = "1.5" version = "1.5"
checksum = "Ggk7FMmDNBdCx1Z9PcNWWW6LSpjGYssn2vU0GK5BLXJYw7ZxZbA2m_eSgT9TFnIG" checksum = "Ggk7FMmDNBdCx1Z9PcNWWW6LSpjGYssn2vU0GK5BLXJYw7ZxZbA2m_eSgT9TFnIG"
@@ -25,6 +25,14 @@ func (t Toolchain) newLibucontext() pkg.Artifact {
"ARCH=" + linuxArch(), "ARCH=" + linuxArch(),
}, },
Install: "make prefix=/system DESTDIR=/work install", 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" "hakurei.app/internal/pkg"
) )
func (t Toolchain) newLibxml2() pkg.Artifact { func (t Toolchain) newLibxml2() (pkg.Artifact, string) {
const ( const (
version = "2.15.1" version = "2.15.1"
checksum = "pYzAR3cNrEHezhEMirgiq7jbboLzwMj5GD7SQp0jhSIMdgoU4G9oU9Gxun3zzUIU" checksum = "pYzAR3cNrEHezhEMirgiq7jbboLzwMj5GD7SQp0jhSIMdgoU4G9oU9Gxun3zzUIU"
@@ -21,6 +21,14 @@ func (t Toolchain) newLibxml2() pkg.Artifact {
}, (*MakeHelper)(nil), }, (*MakeHelper)(nil),
Diffutils, Diffutils,
XZ, 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" "hakurei.app/internal/pkg"
) )
func (t Toolchain) newLibxslt() pkg.Artifact { func (t Toolchain) newLibxslt() (pkg.Artifact, string) {
const ( const (
version = "1.1.45" version = "1.1.45"
checksum = "vw72UbREQnA3YDYuZ9-93hDr9BYCaKV6oh_U4Kt4n1Js_na4E-nFj-ksZnZ0kvEK" checksum = "vw72UbREQnA3YDYuZ9-93hDr9BYCaKV6oh_U4Kt4n1Js_na4E-nFj-ksZnZ0kvEK"
@@ -27,6 +27,14 @@ func (t Toolchain) newLibxslt() pkg.Artifact {
PkgConfig, PkgConfig,
Libxml2, 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"}, {"LLVM_ENABLE_LIBXML2", "OFF"},
} }
muslHeaders, _ := t.newMusl(true, []string{
"CC=clang",
})
compilerRT = t.newLLVMVariant("compiler-rt", &llvmAttr{ compilerRT = t.newLLVMVariant("compiler-rt", &llvmAttr{
env: stage0ExclConcat(t, []string{}, env: stage0ExclConcat(t, []string{},
"LDFLAGS="+earlyLDFLAGS(false), "LDFLAGS="+earlyLDFLAGS(false),
@@ -237,9 +241,9 @@ func (t Toolchain) newLLVM() (musl, compilerRT, runtimes, clang pkg.Artifact) {
{"COMPILER_RT_BUILD_XRAY", "OFF"}, {"COMPILER_RT_BUILD_XRAY", "OFF"},
}, },
append: []string{"compiler-rt"}, append: []string{"compiler-rt"},
nonStage0: []pkg.Artifact{t.newMusl(true, []string{ nonStage0: []pkg.Artifact{
"CC=clang", muslHeaders,
})}, },
script: ` script: `
mkdir -p "/work/system/lib/clang/21/lib/" mkdir -p "/work/system/lib/clang/21/lib/"
ln -s \ ln -s \
@@ -255,7 +259,7 @@ ln -s \
`, `,
}) })
musl = t.newMusl(false, stage0ExclConcat(t, []string{ musl, _ = t.newMusl(false, stage0ExclConcat(t, []string{
"CC=clang", "CC=clang",
"LIBCC=/system/lib/clang/21/lib/" + "LIBCC=/system/lib/clang/21/lib/" +
triplet() + "/libclang_rt.builtins.a", triplet() + "/libclang_rt.builtins.a",

View File

@@ -7,7 +7,7 @@ import (
"hakurei.app/internal/pkg" "hakurei.app/internal/pkg"
) )
func (t Toolchain) newMake() pkg.Artifact { func (t Toolchain) newMake() (pkg.Artifact, string) {
const ( const (
version = "4.4.1" version = "4.4.1"
checksum = "YS_B07ZcAy9PbaK5_vKGj64SrxO2VMpnMKfc9I0Q9IC1rn0RwOH7802pJoj2Mq4a" checksum = "YS_B07ZcAy9PbaK5_vKGj64SrxO2VMpnMKfc9I0Q9IC1rn0RwOH7802pJoj2Mq4a"
@@ -24,9 +24,17 @@ cd "$(mktemp -d)"
nil, "https://ftpmirror.gnu.org/gnu/make/make-"+version+".tar.gz", nil, "https://ftpmirror.gnu.org/gnu/make/make-"+version+".tar.gz",
mustDecode(checksum), mustDecode(checksum),
pkg.TarGzip, 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. // MakeHelper is the [Make] build system helper.
type MakeHelper struct { type MakeHelper struct {

View File

@@ -7,7 +7,7 @@ import (
"hakurei.app/internal/pkg" "hakurei.app/internal/pkg"
) )
func (t Toolchain) newMeson() pkg.Artifact { func (t Toolchain) newMeson() (pkg.Artifact, string) {
const ( const (
version = "1.10.1" version = "1.10.1"
checksum = "w895BXF_icncnXatT_OLCFe2PYEtg4KrKooMgUYdN-nQVvbFX3PvYWHGEpogsHtd" checksum = "w895BXF_icncnXatT_OLCFe2PYEtg4KrKooMgUYdN-nQVvbFX3PvYWHGEpogsHtd"
@@ -27,9 +27,17 @@ python3 setup.py \
version+"/meson-"+version+".tar.gz", version+"/meson-"+version+".tar.gz",
mustDecode(checksum), mustDecode(checksum),
pkg.TarGzip, 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. // MesonHelper is the [Meson] build system helper.
type MesonHelper struct { type MesonHelper struct {

View File

@@ -2,7 +2,7 @@ package rosa
import "hakurei.app/internal/pkg" import "hakurei.app/internal/pkg"
func (t Toolchain) newMksh() pkg.Artifact { func (t Toolchain) newMksh() (pkg.Artifact, string) {
const ( const (
version = "59c" version = "59c"
checksum = "0Zj-k4nXEu3IuJY4lvwD2OrC2t27GdZj8SPy4DoaeuBRH1padWb7oREpYgwY8JNq" 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", "https://mbsd.evolvis.org/MirOS/dist/mir/mksh/mksh-R"+version+".tgz",
mustDecode(checksum), mustDecode(checksum),
pkg.TarGzip, 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" import "hakurei.app/internal/pkg"
func (t Toolchain) newMuslFts() pkg.Artifact { func (t Toolchain) newMuslFts() (pkg.Artifact, string) {
const ( const (
version = "1.2.7" version = "1.2.7"
checksum = "N_p_ZApX3eHt7xoDCw1hLf6XdJOw7ZSx7xPvpvAP0knG2zgU0zeN5w8tt5Pg60XJ" checksum = "N_p_ZApX3eHt7xoDCw1hLf6XdJOw7ZSx7xPvpvAP0knG2zgU0zeN5w8tt5Pg60XJ"
@@ -25,6 +25,14 @@ func (t Toolchain) newMuslFts() pkg.Artifact {
Automake, Automake,
Libtool, Libtool,
PkgConfig, 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" import "hakurei.app/internal/pkg"
func (t Toolchain) newMuslObstack() pkg.Artifact { func (t Toolchain) newMuslObstack() (pkg.Artifact, string) {
const ( const (
version = "1.2.3" version = "1.2.3"
checksum = "tVRY_KjIlkkMszcaRlkKdBVQHIXTT_T_TiMxbwErlILXrOBosocg8KklppZhNdCG" checksum = "tVRY_KjIlkkMszcaRlkKdBVQHIXTT_T_TiMxbwErlILXrOBosocg8KklppZhNdCG"
@@ -25,6 +25,14 @@ func (t Toolchain) newMuslObstack() pkg.Artifact {
Automake, Automake,
Libtool, Libtool,
PkgConfig, 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, headers bool,
env []string, env []string,
extra ...pkg.Artifact, extra ...pkg.Artifact,
) pkg.Artifact { ) (pkg.Artifact, string) {
const ( const (
version = "1.2.5" version = "1.2.5"
checksum = "y6USdIeSdHER_Fw2eT2CNjqShEye85oEg2jnOur96D073ukmIpIqDOLmECQroyDb" checksum = "y6USdIeSdHER_Fw2eT2CNjqShEye85oEg2jnOur96D073ukmIpIqDOLmECQroyDb"
@@ -50,10 +50,16 @@ rmdir -v /work/lib
Env: env, Env: env,
}, &helper, }, &helper,
Coreutils, Coreutils,
) ), version
} }
func init() { func init() {
artifactsF[Musl] = func(t Toolchain) pkg.Artifact { artifactsM[Musl] = Metadata{
return t.newMusl(false, nil) 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" import "hakurei.app/internal/pkg"
func (t Toolchain) newNcurses() pkg.Artifact { func (t Toolchain) newNcurses() (pkg.Artifact, string) {
const ( const (
version = "6.6" version = "6.6"
checksum = "XvWp4xi6hR_hH8XUoGY26L_pqBSDapJYulhzZqPuR0KNklqypqNc1yNXU-nOjf5w" checksum = "XvWp4xi6hR_hH8XUoGY26L_pqBSDapJYulhzZqPuR0KNklqypqNc1yNXU-nOjf5w"
@@ -21,6 +21,14 @@ func (t Toolchain) newNcurses() pkg.Artifact {
}, },
}, },
PkgConfig, 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" import "hakurei.app/internal/pkg"
func (t Toolchain) newNinja() pkg.Artifact { func (t Toolchain) newNinja() (pkg.Artifact, string) {
const ( const (
version = "1.13.2" version = "1.13.2"
checksum = "ygKWMa0YV2lWKiFro5hnL-vcKbc_-RACZuPu0Io8qDvgQlZ0dxv7hPNSFkt4214v" checksum = "ygKWMa0YV2lWKiFro5hnL-vcKbc_-RACZuPu0Io8qDvgQlZ0dxv7hPNSFkt4214v"
@@ -33,6 +33,14 @@ cp ninja /work/system/bin/
mustDecode(checksum), mustDecode(checksum),
pkg.TarGzip, pkg.TarGzip,
), false, ), 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" import "hakurei.app/internal/pkg"
func (t Toolchain) newOpenSSL() pkg.Artifact { func (t Toolchain) newOpenSSL() (pkg.Artifact, string) {
const ( const (
version = "3.5.5" version = "3.5.5"
checksum = "I2Hp1LxcTR8j4G6LFEQMVy6EJH-Na1byI9Ti-ThBot6EMLNRnjGXGq-WXrim3Fkz" checksum = "I2Hp1LxcTR8j4G6LFEQMVy6EJH-Na1byI9Ti-ThBot6EMLNRnjGXGq-WXrim3Fkz"
@@ -35,6 +35,14 @@ func (t Toolchain) newOpenSSL() pkg.Artifact {
Zlib, Zlib,
KernelHeaders, 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" "hakurei.app/internal/pkg"
) )
func (t Toolchain) newPCRE2() pkg.Artifact { func (t Toolchain) newPCRE2() (pkg.Artifact, string) {
const ( const (
version = "10.43" version = "10.43"
checksum = "iyNw-POPSJwiZVJfUK5qACA6q2uMzP-84WieimN_CskaEkuw5fRnRTZhEv6ry2Yo" checksum = "iyNw-POPSJwiZVJfUK5qACA6q2uMzP-84WieimN_CskaEkuw5fRnRTZhEv6ry2Yo"
@@ -28,6 +28,14 @@ ln -s ../system/bin/toybox /bin/echo
}, },
}, },
Diffutils, 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" "hakurei.app/internal/pkg"
) )
func (t Toolchain) newPerl() pkg.Artifact { func (t Toolchain) newPerl() (pkg.Artifact, string) {
const ( const (
version = "5.42.0" version = "5.42.0"
checksum = "2KR7Jbpk-ZVn1a30LQRwbgUvg2AXlPQZfzrqCr31qD5-yEsTwVQ_W76eZH-EdxM9" checksum = "2KR7Jbpk-ZVn1a30LQRwbgUvg2AXlPQZfzrqCr31qD5-yEsTwVQ_W76eZH-EdxM9"
@@ -45,9 +45,17 @@ rm -f /system/bin/ps # perl does not like toybox ps
"test_harness", "test_harness",
}, },
Install: "./perl -Ilib -I. installperl --destdir=/work", 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. // newViaPerlModuleBuild installs a perl module via Build.PL.
func (t Toolchain) newViaPerlModuleBuild( 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 ( const (
version = "0.4234" version = "0.4234"
checksum = "ZKxEFG4hE1rqZt52zBL2LRZBMkYzhjb5-cTBXcsyA52EbPeeYyVxU176yAea8-Di" checksum = "ZKxEFG4hE1rqZt52zBL2LRZBMkYzhjb5-cTBXcsyA52EbPeeYyVxU176yAea8-Di"
@@ -82,9 +90,17 @@ func (t Toolchain) newPerlModuleBuild() pkg.Artifact {
"Module-Build-"+version+".tar.gz", "Module-Build-"+version+".tar.gz",
mustDecode(checksum), mustDecode(checksum),
pkg.TarGzip, 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. // newViaPerlMakeMaker installs a perl module via Makefile.PL.
func (t Toolchain) newViaPerlMakeMaker( 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 ( const (
version = "1.07" version = "1.07"
checksum = "cFq4BKFD1MWSoa7lsrPjpdo9kzPqd0jlRcBFUyL1L1isw8m3D_Sge_ff0MAu_9J3" checksum = "cFq4BKFD1MWSoa7lsrPjpdo9kzPqd0jlRcBFUyL1L1isw8m3D_Sge_ff0MAu_9J3"
@@ -124,11 +140,19 @@ func (t Toolchain) newPerlLocaleGettext() pkg.Artifact {
"Locale-gettext-"+version+".tar.gz", "Locale-gettext-"+version+".tar.gz",
mustDecode(checksum), mustDecode(checksum),
pkg.TarGzip, 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 ( const (
version = "1.67" version = "1.67"
checksum = "RdURu9mOfExk_loCp6abxlcQV3FycSNbTqhRS9i6JUqnYfGGEgercK30g0gjYyqe" checksum = "RdURu9mOfExk_loCp6abxlcQV3FycSNbTqhRS9i6JUqnYfGGEgercK30g0gjYyqe"
@@ -138,11 +162,19 @@ func (t Toolchain) newPerlPodParser() pkg.Artifact {
"Pod-Parser-"+version+".tar.gz", "Pod-Parser-"+version+".tar.gz",
mustDecode(checksum), mustDecode(checksum),
pkg.TarGzip, 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 ( const (
version = "1.1" version = "1.1"
checksum = "aZijn4MUqD-wfyZgdcCruCwl4SgDdu25cNmJ4_UvdAk9a7uz4gzMQdoeB6DQ6QOy" checksum = "aZijn4MUqD-wfyZgdcCruCwl4SgDdu25cNmJ4_UvdAk9a7uz4gzMQdoeB6DQ6QOy"
@@ -152,11 +184,19 @@ func (t Toolchain) newPerlSGMLS() pkg.Artifact {
"SGMLSpm-"+version+".tar.gz", "SGMLSpm-"+version+".tar.gz",
mustDecode(checksum), mustDecode(checksum),
pkg.TarGzip, 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 ( const (
version = "2.38" version = "2.38"
checksum = "qerL8Xo7kD0f42PZoiEbmE8Roc_S9pOa27LXelY4DN_0UNy_u5wLrGHI8utNlaiI" checksum = "qerL8Xo7kD0f42PZoiEbmE8Roc_S9pOa27LXelY4DN_0UNy_u5wLrGHI8utNlaiI"
@@ -166,11 +206,19 @@ func (t Toolchain) newPerlTermReadKey() pkg.Artifact {
"TermReadKey-"+version+".tar.gz", "TermReadKey-"+version+".tar.gz",
mustDecode(checksum), mustDecode(checksum),
pkg.TarGzip, 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 ( const (
version = "0.04" version = "0.04"
checksum = "G2p5RHU4_HiZ23ZusBA_enTlVMxz0J4esUx4CGcOPhY6xYTbp-aXWRN6lYZpzBw2" checksum = "G2p5RHU4_HiZ23ZusBA_enTlVMxz0J4esUx4CGcOPhY6xYTbp-aXWRN6lYZpzBw2"
@@ -180,11 +228,19 @@ func (t Toolchain) newPerlTextCharWidth() pkg.Artifact {
"Text-CharWidth-"+version+".tar.gz", "Text-CharWidth-"+version+".tar.gz",
mustDecode(checksum), mustDecode(checksum),
pkg.TarGzip, 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 ( const (
version = "0.06" version = "0.06"
checksum = "Vmo89qLgxUqyQ6QmWJVqu60aQAUjrNKRjFQSXGnvClxofzRjiCa6idzPgJ4VkixM" checksum = "Vmo89qLgxUqyQ6QmWJVqu60aQAUjrNKRjFQSXGnvClxofzRjiCa6idzPgJ4VkixM"
@@ -196,11 +252,19 @@ func (t Toolchain) newPerlTextWrapI18N() pkg.Artifact {
pkg.TarGzip, pkg.TarGzip,
), nil, ), nil,
PerlTextCharWidth, 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 ( const (
version = "1.013.1" version = "1.013.1"
checksum = "Ou_ukcrOa1cgtE3mptinb-os3bdL1SXzbRDFZQF3prrJj-drc3rp_huay7iDLJol" checksum = "Ou_ukcrOa1cgtE3mptinb-os3bdL1SXzbRDFZQF3prrJj-drc3rp_huay7iDLJol"
@@ -210,11 +274,19 @@ func (t Toolchain) newPerlMIMECharset() pkg.Artifact {
"MIME-Charset-"+version+".tar.gz", "MIME-Charset-"+version+".tar.gz",
mustDecode(checksum), mustDecode(checksum),
pkg.TarGzip, 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: "Charset Information for MIME",
Website: "https://metacpan.org/release/MIME-Charset",
}
}
func (t Toolchain) newPerlUnicodeGCString() (pkg.Artifact, string) {
const ( const (
version = "2019.001" version = "2019.001"
checksum = "ZHVkh7EDgAUHnTpvXsnPAuWpgNoBImtY_9_8TIbo2co_WgUwEb0MtXPhI8pAZ5OH" checksum = "ZHVkh7EDgAUHnTpvXsnPAuWpgNoBImtY_9_8TIbo2co_WgUwEb0MtXPhI8pAZ5OH"
@@ -226,11 +298,19 @@ func (t Toolchain) newPerlUnicodeGCString() pkg.Artifact {
pkg.TarGzip, pkg.TarGzip,
), nil, ), nil,
PerlMIMECharset, 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: "String as Sequence of UAX #29 Grapheme Clusters",
Website: "https://metacpan.org/release/Unicode-LineBreak",
}
}
func (t Toolchain) newPerlYAMLTiny() (pkg.Artifact, string) {
const ( const (
version = "1.76" version = "1.76"
checksum = "V1MV4KPym1LxSw8CRXqPR3K-l1hGHbT5Ob4t-9xju6R9X_CWyw6hI8wsMaNdHdBY" checksum = "V1MV4KPym1LxSw8CRXqPR3K-l1hGHbT5Ob4t-9xju6R9X_CWyw6hI8wsMaNdHdBY"
@@ -240,6 +320,14 @@ func (t Toolchain) newPerlYAMLTiny() pkg.Artifact {
"YAML-Tiny-"+version+".tar.gz", "YAML-Tiny-"+version+".tar.gz",
mustDecode(checksum), mustDecode(checksum),
pkg.TarGzip, 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" import "hakurei.app/internal/pkg"
func (t Toolchain) newPkgConfig() pkg.Artifact { func (t Toolchain) newPkgConfig() (pkg.Artifact, string) {
const ( const (
version = "0.29.2" version = "0.29.2"
checksum = "gi7yAvkwo20Inys1tHbeYZ3Wjdm5VPkrnO0Q6_QZPCAwa1zrA8F4a63cdZDd-717" checksum = "gi7yAvkwo20Inys1tHbeYZ3Wjdm5VPkrnO0Q6_QZPCAwa1zrA8F4a63cdZDd-717"
@@ -17,6 +17,14 @@ func (t Toolchain) newPkgConfig() pkg.Artifact {
{"CFLAGS", "'-Wno-int-conversion'"}, {"CFLAGS", "'-Wno-int-conversion'"},
{"with-internal-glib"}, {"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" import "hakurei.app/internal/pkg"
func (t Toolchain) newProcps() pkg.Artifact { func (t Toolchain) newProcps() (pkg.Artifact, string) {
const ( const (
version = "4.0.6" version = "4.0.6"
checksum = "pl_fZLvDlv6iZTkm8l_tHFpzTDVFGCiSJEs3eu0zAX6u36AV36P_En8K7JPScRWM" checksum = "pl_fZLvDlv6iZTkm8l_tHFpzTDVFGCiSJEs3eu0zAX6u36AV36P_En8K7JPScRWM"
@@ -27,6 +27,14 @@ func (t Toolchain) newProcps() pkg.Artifact {
Gzip, Gzip,
PkgConfig, 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" "hakurei.app/internal/pkg"
) )
func (t Toolchain) newPython() pkg.Artifact { func (t Toolchain) newPython() (pkg.Artifact, string) {
const ( const (
version = "3.14.2" version = "3.14.2"
checksum = "7nZunVMGj0viB-CnxpcRego2C90X5wFsMTgsoewd5z-KSZY2zLuqaBwG-14zmKys" checksum = "7nZunVMGj0viB-CnxpcRego2C90X5wFsMTgsoewd5z-KSZY2zLuqaBwG-14zmKys"
@@ -59,31 +59,52 @@ func (t Toolchain) newPython() pkg.Artifact {
OpenSSL, OpenSSL,
Bzip2, Bzip2,
XZ, 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. // newViaPip is a helper for installing python dependencies via pip.
func (t Toolchain) newViaPip( func newViaPip(
name, version, abi, platform, checksum, prefix string, name, description, version, abi, platform, checksum, prefix string,
extra ...pkg.Artifact, extra ...PArtifact,
) pkg.Artifact { ) Metadata {
wname := name + "-" + version + "-py3-" + abi + "-" + platform + ".whl" wname := name + "-" + version + "-py3-" + abi + "-" + platform + ".whl"
return t.New(name+"-"+version, 0, slices.Concat([]pkg.Artifact{ return Metadata{
t.Load(Python), f: func(t Toolchain) (pkg.Artifact, string) {
}, extra), nil, nil, ` 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),
}, extraRes), nil, nil, `
pip3 install \ pip3 install \
--no-index \ --no-index \
--prefix=/system \ --prefix=/system \
--root=/work \ --root=/work \
/usr/src/`+wname+` /usr/src/`+wname+`
`, pkg.Path(AbsUsrSrc.Append(wname), false, pkg.NewHTTPGet( `, pkg.Path(AbsUsrSrc.Append(wname), false, pkg.NewHTTPGet(
nil, prefix+wname, nil, prefix+wname,
mustDecode(checksum), 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 ( const (
version = "80.10.1" version = "80.10.1"
checksum = "p3rlwEmy1krcUH1KabprQz1TCYjJ8ZUjOQknQsWh3q-XEqLGEd3P4VrCc7ouHGXU" checksum = "p3rlwEmy1krcUH1KabprQz1TCYjJ8ZUjOQknQsWh3q-XEqLGEd3P4VrCc7ouHGXU"
@@ -101,53 +122,64 @@ pip3 install \
"v"+version+".tar.gz", "v"+version+".tar.gz",
mustDecode(checksum), mustDecode(checksum),
pkg.TarGzip, pkg.TarGzip,
))) ))), version
} }
func init() { artifactsF[Setuptools] = Toolchain.newSetuptools } func init() {
artifactsM[Setuptools] = Metadata{
f: Toolchain.newSetuptools,
func (t Toolchain) newPygments() pkg.Artifact { Name: "setuptools",
return t.newViaPip("pygments", "2.19.2", "none", "any", 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", "ak_lwTalmSr7W4Mjy2XBZPG9I6a0gwSy2pS87N8x4QEuZYif0ie9z0OcfRfi9msd",
"https://files.pythonhosted.org/packages/"+ "https://files.pythonhosted.org/packages/"+
"c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/") "c7/21/705964c7812476f378728bdf590ca4b771ec72385c533964653c68e86bdc/",
} )
func init() { artifactsF[Pygments] = Toolchain.newPygments }
func (t Toolchain) newPluggy() pkg.Artifact { artifactsM[Pluggy] = newViaPip(
return t.newViaPip("pluggy", "1.6.0", "none", "any", "pluggy",
"the core framework used by the pytest, tox, and devpi projects",
"1.6.0", "none", "any",
"2HWYBaEwM66-y1hSUcWI1MyE7dVVuNNRW24XD6iJBey4YaUdAK8WeXdtFMQGC-4J", "2HWYBaEwM66-y1hSUcWI1MyE7dVVuNNRW24XD6iJBey4YaUdAK8WeXdtFMQGC-4J",
"https://files.pythonhosted.org/packages/"+ "https://files.pythonhosted.org/packages/"+
"54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/") "54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/",
} )
func init() { artifactsF[Pluggy] = Toolchain.newPluggy }
func (t Toolchain) newPackaging() pkg.Artifact { artifactsM[Packaging] = newViaPip(
return t.newViaPip("packaging", "26.0", "none", "any", "packaging",
"reusable core utilities for various Python Packaging interoperability specifications",
"26.0", "none", "any",
"iVVXcqdwHDskPKoCFUlh2x8J0Gyq-bhO4ns9DvUJ7oJjeOegRYtSIvLV33Bki-pP", "iVVXcqdwHDskPKoCFUlh2x8J0Gyq-bhO4ns9DvUJ7oJjeOegRYtSIvLV33Bki-pP",
"https://files.pythonhosted.org/packages/"+ "https://files.pythonhosted.org/packages/"+
"b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/") "b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/",
} )
func init() { artifactsF[Packaging] = Toolchain.newPackaging }
func (t Toolchain) newIniConfig() pkg.Artifact { artifactsM[IniConfig] = newViaPip(
const version = "2.3.0" "iniconfig",
return t.newViaPip("iniconfig", version, "none", "any", "a small and simple INI-file parser module",
"2.3.0", "none", "any",
"SDgs4S5bXi77aVOeKTPv2TUrS3M9rduiK4DpU0hCmDsSBWqnZcWInq9lsx6INxut", "SDgs4S5bXi77aVOeKTPv2TUrS3M9rduiK4DpU0hCmDsSBWqnZcWInq9lsx6INxut",
"https://github.com/pytest-dev/iniconfig/releases/download/"+ "https://files.pythonhosted.org/packages/"+
"v"+version+"/") "cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/",
} )
func init() { artifactsF[IniConfig] = Toolchain.newIniConfig } artifactsM[PyTest] = newViaPip(
"pytest",
func (t Toolchain) newPyTest() pkg.Artifact { "the pytest framework",
const version = "9.0.2" "9.0.2", "none", "any",
return t.newViaPip("pytest", version, "none", "any",
"IM2wDbLke1EtZhF92zvAjUl_Hms1uKDtM7U8Dt4acOaChMnDg1pW7ib8U0wYGDLH", "IM2wDbLke1EtZhF92zvAjUl_Hms1uKDtM7U8Dt4acOaChMnDg1pW7ib8U0wYGDLH",
"https://github.com/pytest-dev/pytest/releases/download/"+ "https://files.pythonhosted.org/packages/"+
version+"/", "3b/ab/b3226f0bd7cdcf710fbede2b3548584366da3b19b5021e74f5bde2a8fa3f/",
t.Load(IniConfig), IniConfig,
t.Load(Packaging), Packaging,
t.Load(Pluggy), Pluggy,
t.Load(Pygments), Pygments,
) )
} }
func init() { artifactsF[PyTest] = Toolchain.newPyTest }

View File

@@ -2,7 +2,7 @@ package rosa
import "hakurei.app/internal/pkg" import "hakurei.app/internal/pkg"
func (t Toolchain) newQEMU() pkg.Artifact { func (t Toolchain) newQEMU() (pkg.Artifact, string) {
const ( const (
version = "10.2.1" version = "10.2.1"
checksum = "rjLTSgHJd3X3Vgpxrsus_ZZiaYLiNix1YhcHaGbLd_odYixwZjCcAIt8CVQPJGdZ" checksum = "rjLTSgHJd3X3Vgpxrsus_ZZiaYLiNix1YhcHaGbLd_odYixwZjCcAIt8CVQPJGdZ"
@@ -93,6 +93,14 @@ EOF
Zstd, Zstd,
DTC, DTC,
KernelHeaders, 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" import "hakurei.app/internal/pkg"
func (t Toolchain) newRsync() pkg.Artifact { func (t Toolchain) newRsync() (pkg.Artifact, string) {
const ( const (
version = "3.4.1" version = "3.4.1"
checksum = "VBlTsBWd9z3r2-ex7GkWeWxkUc5OrlgDzikAC0pK7ufTjAJ0MbmC_N04oSVTGPiv" checksum = "VBlTsBWd9z3r2-ex7GkWeWxkUc5OrlgDzikAC0pK7ufTjAJ0MbmC_N04oSVTGPiv"
@@ -24,6 +24,14 @@ func (t Toolchain) newRsync() pkg.Artifact {
// circular dependency // circular dependency
SkipCheck: true, 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" import "hakurei.app/internal/pkg"
func (t Toolchain) newSquashfsTools() pkg.Artifact { func (t Toolchain) newSquashfsTools() (pkg.Artifact, string) {
const ( const (
version = "4.7.4" version = "4.7.4"
checksum = "pG0E_wkRJFS6bvPYF-hTKZT-cWnvo5BbIzCDZrJZVQDgJOx2Vc3ZfNSEV7Di7cSW" checksum = "pG0E_wkRJFS6bvPYF-hTKZT-cWnvo5BbIzCDZrJZVQDgJOx2Vc3ZfNSEV7Di7cSW"
@@ -39,6 +39,14 @@ func (t Toolchain) newSquashfsTools() pkg.Artifact {
Zstd, Zstd,
Gzip, Gzip,
Zlib, 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" "hakurei.app/internal/pkg"
) )
func (t Toolchain) newNSS() pkg.Artifact { func (t Toolchain) newNSS() (pkg.Artifact, string) {
const ( const (
version = "3_120" version = "3_120"
checksum = "9M0SNMrj9BJp6RH2rQnMm6bZWtP0Kgj64D5JNPHF7Cxr2_8kfy3msubIcvEPwC35" checksum = "9M0SNMrj9BJp6RH2rQnMm6bZWtP0Kgj64D5JNPHF7Cxr2_8kfy3msubIcvEPwC35"
@@ -63,20 +63,31 @@ cp -r \
Zlib, Zlib,
KernelHeaders, 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" 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", "k_FGzkRCLjbTWBkuBLzQJ1S8FPAz19neJZlMHm0t10F2Y0hElmvVwdSBRc03Rjo1",
"https://github.com/nix-community/buildcatrust/"+ "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{ return t.New("nss-cacert", 0, []pkg.Artifact{
t.Load(Bash), t.Load(Bash),
t.Load(Python), t.Load(Python),
@@ -92,6 +103,14 @@ buildcatrust \
--ca_unpacked_output /work/system/etc/ssl/certs/unbundled \ --ca_unpacked_output /work/system/etc/ssl/certs/unbundled \
--ca_hashed_unpacked_output /work/system/etc/ssl/certs/hashed \ --ca_hashed_unpacked_output /work/system/etc/ssl/certs/hashed \
--p11kit_output /work/system/etc/ssl/trust-source/ca-bundle.trust.p11-kit --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" "hakurei.app/internal/pkg"
) )
func (t Toolchain) newStage0() pkg.Artifact { func (t Toolchain) newStage0() (pkg.Artifact, string) {
musl, compilerRT, runtimes, clang := t.NewLLVM() musl, compilerRT, runtimes, clang := t.NewLLVM()
return t.New("rosa-stage0", 0, []pkg.Artifact{ return t.New("rosa-stage0", 0, []pkg.Artifact{
musl, musl,
@@ -39,9 +39,16 @@ tar \
-C / \ -C / \
-f /work/stage0-`+triplet()+`.tar.bz2 \ -f /work/stage0-`+triplet()+`.tar.bz2 \
system bin usr/bin/env 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 ( var (
// stage0 stores the tarball unpack artifact. // stage0 stores the tarball unpack artifact.

View File

@@ -6,7 +6,7 @@ import (
"hakurei.app/internal/pkg" "hakurei.app/internal/pkg"
) )
func (t Toolchain) newTamaGo() pkg.Artifact { func (t Toolchain) newTamaGo() (pkg.Artifact, string) {
const ( const (
version = "1.26.0" version = "1.26.0"
checksum = "5XkfbpTpSdPJfwtTfUegfdu4LUy8nuZ7sCondiRIxTJI9eQONi8z_O_dq9yDkjw8" checksum = "5XkfbpTpSdPJfwtTfUegfdu4LUy8nuZ7sCondiRIxTJI9eQONi8z_O_dq9yDkjw8"
@@ -35,6 +35,14 @@ rm \
"tamago-go"+version+".tar.gz", "tamago-go"+version+".tar.gz",
mustDecode(checksum), mustDecode(checksum),
pkg.TarGzip, 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" 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 ( const (
version = "0.8.13" version = "0.8.13"
checksum = "rZ1V1ATDte2WeQZanxLVoiRGdfPXhMlEo5-exX-e-ml8cGn9qOv0ABEUVZpX3wTI" checksum = "rZ1V1ATDte2WeQZanxLVoiRGdfPXhMlEo5-exX-e-ml8cGn9qOv0ABEUVZpX3wTI"
@@ -56,15 +56,22 @@ ln -s ../../system/bin/env /work/usr/bin
Gzip, Gzip,
KernelHeaders, KernelHeaders,
) ), version
} }
func init() { func init() {
artifactsF[Toybox] = func(t Toolchain) pkg.Artifact { artifactsM[Toybox] = Metadata{
return t.newToybox("", "") 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{
return t.newToybox("-early", ` f: func(t Toolchain) (pkg.Artifact, string) {
return t.newToybox("-early", `
echo ' echo '
CONFIG_EXPR=y CONFIG_EXPR=y
CONFIG_TR=y CONFIG_TR=y
@@ -72,5 +79,10 @@ CONFIG_AWK=y
CONFIG_DIFF=y CONFIG_DIFF=y
' >> .config ' >> .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" "hakurei.app/internal/pkg"
) )
func (t Toolchain) newUnzip() pkg.Artifact { func (t Toolchain) newUnzip() (pkg.Artifact, string) {
const ( const (
version = "6.0" version = "6.0"
checksum = "fcqjB1IOVRNJ16K5gTGEDt3zCJDVBc7EDSra9w3H93stqkNwH1vaPQs_QGOpQZu1" checksum = "fcqjB1IOVRNJ16K5gTGEDt3zCJDVBc7EDSra9w3H93stqkNwH1vaPQs_QGOpQZu1"
@@ -29,6 +29,14 @@ mv unzip /work/system/bin/
mustDecode(checksum), mustDecode(checksum),
pkg.TarGzip, pkg.TarGzip,
), false, ), 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" "hakurei.app/internal/pkg"
) )
func (t Toolchain) newUtilLinux() pkg.Artifact { func (t Toolchain) newUtilLinux() (pkg.Artifact, string) {
const ( const (
version = "2.41.3" version = "2.41.3"
checksum = "gPTd5JJ2ho_Rd0qainuogcLiiWwKSXEZPXN3yCCRl0m0KBgMaqwFuMjYgu9z8zCH" checksum = "gPTd5JJ2ho_Rd0qainuogcLiiWwKSXEZPXN3yCCRl0m0KBgMaqwFuMjYgu9z8zCH"
@@ -44,6 +44,14 @@ ln -s ../system/bin/bash /bin/
Bash, Bash,
KernelHeaders, 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" import "hakurei.app/internal/pkg"
func (t Toolchain) newWayland() pkg.Artifact { func (t Toolchain) newWayland() (pkg.Artifact, string) {
const ( const (
version = "1.24.0" version = "1.24.0"
checksum = "JxgLiFRRGw2D3uhVw8ZeDbs3V7K_d4z_ypDog2LBqiA_5y2vVbUAk5NT6D5ozm0m" checksum = "JxgLiFRRGw2D3uhVw8ZeDbs3V7K_d4z_ypDog2LBqiA_5y2vVbUAk5NT6D5ozm0m"
@@ -32,11 +32,19 @@ echo 'int main(){}' > tests/sanity-test.c
Libffi, Libffi,
Libexpat, Libexpat,
Libxml2, 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 ( const (
version = "1.47" version = "1.47"
checksum = "B_NodZ7AQfCstcx7kgbaVjpkYOzbAQq0a4NOk-SA8bQixAE20FY3p1-6gsbPgHn9" checksum = "B_NodZ7AQfCstcx7kgbaVjpkYOzbAQq0a4NOk-SA8bQixAE20FY3p1-6gsbPgHn9"
@@ -105,6 +113,14 @@ GitLab
Libffi, Libffi,
Libexpat, Libexpat,
Libxml2, 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" import "hakurei.app/internal/pkg"
func (t Toolchain) newUtilMacros() pkg.Artifact { func (t Toolchain) newUtilMacros() (pkg.Artifact, string) {
const ( const (
version = "1.17" version = "1.17"
checksum = "vYPO4Qq3B_WGcsBjG0-lfwZ6DZ7ayyrOLqfDrVOgTDcyLChuMGOAAVAa_UXLu5tD" checksum = "vYPO4Qq3B_WGcsBjG0-lfwZ6DZ7ayyrOLqfDrVOgTDcyLChuMGOAAVAa_UXLu5tD"
@@ -12,11 +12,19 @@ func (t Toolchain) newUtilMacros() pkg.Artifact {
"util-macros-"+version+".tar.bz2", "util-macros-"+version+".tar.bz2",
mustDecode(checksum), mustDecode(checksum),
pkg.TarBzip2, 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 ( const (
version = "7.0.23" version = "7.0.23"
checksum = "goxwWxV0jZ_3pNczXFltZWHAhq92x-aEreUGyp5Ns8dBOoOmgbpeNIu1nv0Zx07z" checksum = "goxwWxV0jZ_3pNczXFltZWHAhq92x-aEreUGyp5Ns8dBOoOmgbpeNIu1nv0Zx07z"
@@ -37,11 +45,19 @@ func (t Toolchain) newXproto() pkg.Artifact {
PkgConfig, PkgConfig,
utilMacros, 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 ( const (
version = "1.0.7" version = "1.0.7"
checksum = "bm768RoZZnHRe9VjNU1Dw3BhfE60DyS9D_bgSR-JLkEEyUWT_Hb_lQripxrXto8j" checksum = "bm768RoZZnHRe9VjNU1Dw3BhfE60DyS9D_bgSR-JLkEEyUWT_Hb_lQripxrXto8j"
@@ -64,6 +80,14 @@ func (t Toolchain) newLibXau() pkg.Artifact {
utilMacros, utilMacros,
Xproto, 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" import "hakurei.app/internal/pkg"
func (t Toolchain) newXCBProto() pkg.Artifact { func (t Toolchain) newXCBProto() (pkg.Artifact, string) {
const ( const (
version = "1.17.0" version = "1.17.0"
checksum = "_NtbKaJ_iyT7XiJz25mXQ7y-niTzE8sHPvLXZPcqtNoV_-vTzqkezJ8Hp2U1enCv" checksum = "_NtbKaJ_iyT7XiJz25mXQ7y-niTzE8sHPvLXZPcqtNoV_-vTzqkezJ8Hp2U1enCv"
@@ -13,11 +13,19 @@ func (t Toolchain) newXCBProto() pkg.Artifact {
pkg.TarGzip, pkg.TarGzip,
), nil, (*MakeHelper)(nil), ), nil, (*MakeHelper)(nil),
Python, 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 ( const (
version = "1.17.0" version = "1.17.0"
checksum = "hjjsc79LpWM_hZjNWbDDS6qRQUXREjjekS6UbUsDq-RR1_AjgNDxhRvZf-1_kzDd" checksum = "hjjsc79LpWM_hZjNWbDDS6qRQUXREjjekS6UbUsDq-RR1_AjgNDxhRvZf-1_kzDd"
@@ -33,6 +41,14 @@ func (t Toolchain) newXCB() pkg.Artifact {
XCBProto, XCBProto,
Xproto, Xproto,
LibXau, 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" import "hakurei.app/internal/pkg"
func (t Toolchain) newXZ() pkg.Artifact { func (t Toolchain) newXZ() (pkg.Artifact, string) {
const ( const (
version = "5.8.2" version = "5.8.2"
checksum = "rXT-XCp9R2q6cXqJ5qenp0cmGPfiENQiU3BWtUVeVgArfRmSsISeUJgvCR3zI0a0" checksum = "rXT-XCp9R2q6cXqJ5qenp0cmGPfiENQiU3BWtUVeVgArfRmSsISeUJgvCR3zI0a0"
@@ -14,6 +14,14 @@ func (t Toolchain) newXZ() pkg.Artifact {
pkg.TarBzip2, pkg.TarBzip2,
), nil, (*MakeHelper)(nil), ), nil, (*MakeHelper)(nil),
Diffutils, 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" import "hakurei.app/internal/pkg"
func (t Toolchain) newZlib() pkg.Artifact { func (t Toolchain) newZlib() (pkg.Artifact, string) {
const ( const (
version = "1.3.1" version = "1.3.1"
checksum = "E-eIpNzE8oJ5DsqH4UuA_0GDKuQF5csqI8ooDx2w7Vx-woJ2mb-YtSbEyIMN44mH" checksum = "E-eIpNzE8oJ5DsqH4UuA_0GDKuQF5csqI8ooDx2w7Vx-woJ2mb-YtSbEyIMN44mH"
@@ -20,6 +20,14 @@ func (t Toolchain) newZlib() pkg.Artifact {
Host: `""`, Host: `""`,
Build: `""`, 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" import "hakurei.app/internal/pkg"
func (t Toolchain) newZstd() pkg.Artifact { func (t Toolchain) newZstd() (pkg.Artifact, string) {
const ( const (
version = "1.5.7" version = "1.5.7"
checksum = "4XhfR7DwVkwo1R-TmYDAJOcx9YXv9WSFhcFUe3hWEAMmdMLPhFaznCqYIA19_xxV" checksum = "4XhfR7DwVkwo1R-TmYDAJOcx9YXv9WSFhcFUe3hWEAMmdMLPhFaznCqYIA19_xxV"
@@ -18,6 +18,14 @@ func (t Toolchain) newZstd() pkg.Artifact {
{"CMAKE_BUILD_TYPE", "Release"}, {"CMAKE_BUILD_TYPE", "Release"},
{"CMAKE_INSTALL_LIBDIR", "lib"}, {"CMAKE_INSTALL_LIBDIR", "lib"},
}, },
}) }), version
}
func init() {
artifactsM[Zstd] = Metadata{
f: Toolchain.newZstd,
Name: "zstd",
Description: "a fast compression algorithm",
Website: "https://facebook.github.io/zstd/",
}
} }
func init() { artifactsF[Zstd] = Toolchain.newZstd }