diff --git a/cmd/mbf/main.go b/cmd/mbf/main.go index 43ae72c..2697492 100644 --- a/cmd/mbf/main.go +++ b/cmd/mbf/main.go @@ -170,6 +170,8 @@ func main() { p = rosa.KernelHeaders case "libexpat": p = rosa.Libexpat + case "libxml2": + p = rosa.Libxml2 case "libffi": p = rosa.Libffi case "m4": diff --git a/internal/rosa/all.go b/internal/rosa/all.go index 76d4c3b..330d25a 100644 --- a/internal/rosa/all.go +++ b/internal/rosa/all.go @@ -22,6 +22,7 @@ const ( KernelHeaders Libexpat Libffi + Libxml2 M4 Make Meson diff --git a/internal/rosa/libxml2.go b/internal/rosa/libxml2.go new file mode 100644 index 0000000..d2654a2 --- /dev/null +++ b/internal/rosa/libxml2.go @@ -0,0 +1,34 @@ +package rosa + +import ( + "strings" + + "hakurei.app/internal/pkg" +) + +func (t Toolchain) newLibxml2() pkg.Artifact { + const ( + version = "2.15.1" + checksum = "pYzAR3cNrEHezhEMirgiq7jbboLzwMj5GD7SQp0jhSIMdgoU4G9oU9Gxun3zzUIU" + ) + return t.New("libxml2-"+version, []pkg.Artifact{ + t.Load(Make), + }, nil, nil, ` +cd /usr/src/ +tar xf libxml2.tar.xz +mv libxml2-`+version+` libxml2 + +cd "$(mktemp -d)" +/usr/src/libxml2/configure \ + --prefix=/system \ + --build="${ROSA_TRIPLE}" +make "-j$(nproc)" check +make DESTDIR=/work install +`, pkg.Path(AbsUsrSrc.Append("libxml2.tar.xz"), false, pkg.NewHTTPGet( + nil, "https://download.gnome.org/sources/libxml2/"+ + strings.Join(strings.Split(version, ".")[:2], ".")+ + "/libxml2-"+version+".tar.xz", + mustDecode(checksum), + ))) +} +func init() { artifactsF[Libxml2] = Toolchain.newLibxml2 }