package rosa

import "hakurei.app/internal/pkg"

func (t Toolchain) newAttr() (pkg.Artifact, string) {
	const (
		version  = "2.5.2"
		checksum = "YWEphrz6vg1sUMmHHVr1CRo53pFXRhq_pjN-AlG8UgwZK1y6m7zuDhxqJhD0SV0l"
	)
	return t.NewPackage("attr", version, newTar(
		"https://download.savannah.nongnu.org/releases/attr/"+
			"attr-"+version+".tar.gz",
		checksum,
		pkg.TarGzip,
	), &PackageAttr{
		Patches: []KV{
			{"libgen-basename", `From 8a80d895dfd779373363c3a4b62ecce5a549efb2 Mon Sep 17 00:00:00 2001
From: "Haelwenn (lanodan) Monnier" <contact@hacktivis.me>
Date: Sat, 30 Mar 2024 10:17:10 +0100
Subject: tools/attr.c: Add missing libgen.h include for basename(3)

Fixes compilation issue with musl and modern C99 compilers.

See: https://bugs.gentoo.org/926294
---
 tools/attr.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/tools/attr.c b/tools/attr.c
index f12e4af..6a3c1e9 100644
--- a/tools/attr.c
+++ b/tools/attr.c
@@ -28,6 +28,7 @@
 #include <errno.h>
 #include <string.h>
 #include <locale.h>
+#include <libgen.h>
 
 #include <attr/attributes.h>
 
-- 
cgit v1.1`},

			{"musl-errno", `diff --git a/test/attr.test b/test/attr.test
index 6ce2f9b..e9bde92 100644
--- a/test/attr.test
+++ b/test/attr.test
@@ -11,7 +11,7 @@ Try various valid and invalid names
 
 	$ touch f
 	$ setfattr -n user -v value f
-	> setfattr: f: Operation not supported
+	> setfattr: f: Not supported
 	
 	$ setfattr -n user. -v value f
 	> setfattr: f: Invalid argument
`},
		},

		ScriptEarly: `
ln -s ../../system/bin/perl /usr/bin
`,
	}, (*MakeHelper)(nil),
		Perl,
	), version
}
func init() {
	artifactsM[Attr] = Metadata{
		f: Toolchain.newAttr,

		Name:        "attr",
		Description: "Commands for Manipulating Filesystem Extended Attributes",
		Website:     "https://savannah.nongnu.org/projects/attr/",

		ID: 137,
	}
}

func (t Toolchain) newACL() (pkg.Artifact, string) {
	const (
		version  = "2.3.2"
		checksum = "-fY5nwH4K8ZHBCRXrzLdguPkqjKI6WIiGu4dBtrZ1o0t6AIU73w8wwJz_UyjIS0P"
	)
	return t.NewPackage("acl", version, newTar(
		"https://download.savannah.nongnu.org/releases/acl/"+
			"acl-"+version+".tar.gz",
		checksum,
		pkg.TarGzip,
	), nil, &MakeHelper{
		// makes assumptions about uid_map/gid_map
		SkipCheck: true,
	},
		Attr,
	), version
}
func init() {
	artifactsM[ACL] = Metadata{
		f: Toolchain.newACL,

		Name:        "acl",
		Description: "Commands for Manipulating POSIX Access Control Lists",
		Website:     "https://savannah.nongnu.org/projects/acl/",

		Dependencies: P{
			Attr,
		},

		ID: 16,
	}
}
