aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2026-05-08 23:16:33 +0900
committerOphestra <cat@gensokyo.uk>2026-05-08 23:16:33 +0900
commit70a38bd3b0d187612444f0f4169ba3672040eb46 (patch)
tree16eda545e5db0507fef387347631fb36bcc0c703 /internal
parent533b15da89837685c3f2d263e81668f92e4c17ef (diff)
internal/rosa: libarchive artifact
Required by mesa, also a cleaner implementation than GNU. Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal')
-rw-r--r--internal/rosa/all.go1
-rw-r--r--internal/rosa/libarchive.go100
2 files changed, 101 insertions, 0 deletions
diff --git a/internal/rosa/all.go b/internal/rosa/all.go
index 4966db49..71175094 100644
--- a/internal/rosa/all.go
+++ b/internal/rosa/all.go
@@ -80,6 +80,7 @@ const (
LibXrandr
LibXrender
LibXxf86vm
+ Libarchive
Libbsd
Libcap
Libdrm
diff --git a/internal/rosa/libarchive.go b/internal/rosa/libarchive.go
new file mode 100644
index 00000000..b584aaa3
--- /dev/null
+++ b/internal/rosa/libarchive.go
@@ -0,0 +1,100 @@
+package rosa
+
+import "hakurei.app/internal/pkg"
+
+func (t Toolchain) newLibarchive() (pkg.Artifact, string) {
+ const (
+ version = "3.8.7"
+ checksum = "CUJK4MDQmZmATClgQBH2Wt-7Ts4iiSUlg1J_TVb6-5IK3rVUgVLIMc5k-bnWB9w3"
+ )
+ return t.NewPackage("libarchive", version, newFromGitHub(
+ "libarchive/libarchive",
+ "v"+version, checksum,
+ ), &PackageAttr{
+ Paths: []pkg.ExecPath{
+ pkg.Path(AbsUsrSrc.Append(
+ "CTestCustom.cmake",
+ ), false, pkg.NewFile("CTestCustom.cmake", []byte(`
+list(APPEND CTEST_CUSTOM_TESTS_IGNORE
+ "libarchive_test_archive_string_conversion_fail_c"
+ "libarchive_test_archive_string_conversion_fail_latin1"
+ "libarchive_test_archive_string_update_utf8_koi8"
+ "libarchive_test_gnutar_filename_encoding_KOI8R_UTF8"
+ "libarchive_test_gnutar_filename_encoding_KOI8R_CP866"
+ "libarchive_test_gnutar_filename_encoding_CP1251_UTF8"
+ "libarchive_test_gnutar_filename_encoding_Russian_Russia"
+ "libarchive_test_gnutar_filename_encoding_EUCJP_UTF8"
+ "libarchive_test_gnutar_filename_encoding_EUCJP_CP932"
+ "libarchive_test_gnutar_filename_encoding_CP932_UTF8"
+ "libarchive_test_pax_filename_encoding_KOI8R"
+ "libarchive_test_pax_filename_encoding_CP1251"
+ "libarchive_test_pax_filename_encoding_EUCJP"
+ "libarchive_test_pax_filename_encoding_CP932"
+ "libarchive_test_read_format_cpio_filename_UTF8_eucJP"
+ "libarchive_test_read_format_cpio_filename_CP866_KOI8R"
+ "libarchive_test_read_format_cpio_filename_KOI8R_CP866"
+ "libarchive_test_read_format_cpio_filename_UTF8_KOI8R"
+ "libarchive_test_read_format_cpio_filename_UTF8_CP866"
+ "libarchive_test_read_format_cpio_filename_eucJP_CP932"
+ "libarchive_test_read_format_cpio_filename_UTF8_CP932"
+ "libarchive_test_read_format_cpio_filename_CP866_CP1251"
+ "libarchive_test_read_format_cpio_filename_CP866_CP1251_win"
+ "libarchive_test_read_format_cpio_filename_KOI8R_CP1251"
+ "libarchive_test_read_format_cpio_filename_UTF8_CP1251"
+ "libarchive_test_read_format_gtar_filename_CP866_KOI8R"
+ "libarchive_test_read_format_gtar_filename_KOI8R_CP866"
+ "libarchive_test_read_format_gtar_filename_eucJP_CP932"
+ "libarchive_test_read_format_gtar_filename_CP866_CP1251"
+ "libarchive_test_read_format_gtar_filename_CP866_CP1251_win"
+ "libarchive_test_read_format_gtar_filename_KOI8R_CP1251"
+ "libarchive_test_read_format_rar_unicode_CP932"
+ "libarchive_test_read_format_zip_filename_CP932_eucJP"
+ "libarchive_test_read_format_zip_filename_UTF8_eucJP"
+ "libarchive_test_read_format_zip_filename_CP866_KOI8R"
+ "libarchive_test_read_format_zip_filename_KOI8R_CP866"
+ "libarchive_test_read_format_zip_filename_UTF8_KOI8R"
+ "libarchive_test_read_format_zip_filename_UTF8_CP866"
+ "libarchive_test_read_format_zip_filename_CP932_CP932"
+ "libarchive_test_read_format_zip_filename_UTF8_CP932"
+ "libarchive_test_read_format_zip_filename_CP866_CP1251"
+ "libarchive_test_read_format_zip_filename_CP866_CP1251_win"
+ "libarchive_test_read_format_zip_filename_KOI8R_CP1251"
+ "libarchive_test_read_format_zip_filename_UTF8_CP1251"
+ "libarchive_test_ustar_filename_encoding_KOI8R_UTF8"
+ "libarchive_test_ustar_filename_encoding_KOI8R_CP866"
+ "libarchive_test_ustar_filename_encoding_CP1251_UTF8"
+ "libarchive_test_ustar_filename_encoding_Russian_Russia"
+ "libarchive_test_ustar_filename_encoding_EUCJP_UTF8"
+ "libarchive_test_ustar_filename_encoding_EUCJP_CP932"
+ "libarchive_test_ustar_filename_encoding_CP932_UTF8"
+ "libarchive_test_zip_filename_encoding_KOI8R"
+ "libarchive_test_zip_filename_encoding_ru_RU_CP1251"
+ "libarchive_test_zip_filename_encoding_Russian_Russia"
+ "libarchive_test_zip_filename_encoding_EUCJP"
+ "libarchive_test_zip_filename_encoding_CP932"
+ "libarchive_test_read_format_cab_filename"
+ "libarchive_test_read_format_lha_filename"
+ "libarchive_test_read_format_tar_filename"
+ "libarchive_test_read_format_ustar_filename"
+ "libarchive_test_read_append_wrong_filter"
+)
+`))),
+ },
+
+ Writable: true,
+ ScriptEarly: `
+install -Dv /usr/src/CTestCustom.cmake /cure/
+`,
+ }, (*CMakeHelper)(nil)), version
+}
+func init() {
+ artifactsM[Libarchive] = Metadata{
+ f: Toolchain.newLibarchive,
+
+ Name: "libarchive",
+ Description: "multi-format archive and compression library",
+ Website: "https://www.libarchive.org/",
+
+ ID: 1558,
+ }
+}