From 70a38bd3b0d187612444f0f4169ba3672040eb46 Mon Sep 17 00:00:00 2001 From: Ophestra Date: Fri, 8 May 2026 23:16:33 +0900 Subject: [PATCH] internal/rosa: libarchive artifact Required by mesa, also a cleaner implementation than GNU. Signed-off-by: Ophestra --- internal/rosa/all.go | 1 + internal/rosa/libarchive.go | 100 ++++++++++++++++++++++++++++++++++++ 2 files changed, 101 insertions(+) create mode 100644 internal/rosa/libarchive.go 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, + } +}