All checks were successful
Test / Create distribution (push) Successful in 1m20s
Test / Sandbox (push) Successful in 3m12s
Test / Hakurei (push) Successful in 4m28s
Test / ShareFS (push) Successful in 4m29s
Test / Sandbox (race detector) (push) Successful in 5m42s
Test / Hakurei (race detector) (push) Successful in 6m51s
Test / Flake checks (push) Successful in 1m26s
Will be gradually replaced with a native implementation. Signed-off-by: Ophestra <cat@gensokyo.uk>
110 lines
2.3 KiB
Go
110 lines
2.3 KiB
Go
package rosa
|
|
|
|
import "hakurei.app/internal/pkg"
|
|
|
|
func (t Toolchain) newConnman() (pkg.Artifact, string) {
|
|
const (
|
|
version = "2.0"
|
|
checksum = "MhVTdJOhndnZn2SWd8URKo_Pj7Zvc14tntEbrVOf9L3yVWJvpb3v3Q6104tWJgtW"
|
|
)
|
|
return t.NewPackage("connman", version, pkg.NewHTTPGetTar(
|
|
nil, "https://git.kernel.org/pub/scm/network/connman/connman.git/"+
|
|
"snapshot/connman-"+version+".tar.gz",
|
|
mustDecode(checksum),
|
|
pkg.TarGzip,
|
|
), &PackageAttr{
|
|
Patches: []KV{
|
|
{"alpine-musl-res", `musl does not implement res_ninit
|
|
|
|
--- a/gweb/gresolv.c
|
|
+++ b/gweb/gresolv.c
|
|
@@ -877,8 +877,6 @@
|
|
resolv->index = index;
|
|
resolv->nameserver_list = NULL;
|
|
|
|
- res_ninit(&resolv->res);
|
|
-
|
|
return resolv;
|
|
}
|
|
|
|
@@ -918,8 +916,6 @@
|
|
|
|
flush_nameservers(resolv);
|
|
|
|
- res_nclose(&resolv->res);
|
|
-
|
|
g_free(resolv);
|
|
}
|
|
|
|
@@ -1022,24 +1018,19 @@
|
|
debug(resolv, "hostname %s", hostname);
|
|
|
|
if (!resolv->nameserver_list) {
|
|
- int i;
|
|
-
|
|
- for (i = 0; i < resolv->res.nscount; i++) {
|
|
- char buf[100];
|
|
- int family = resolv->res.nsaddr_list[i].sin_family;
|
|
- void *sa_addr = &resolv->res.nsaddr_list[i].sin_addr;
|
|
-
|
|
- if (family != AF_INET &&
|
|
- resolv->res._u._ext.nsaddrs[i]) {
|
|
- family = AF_INET6;
|
|
- sa_addr = &resolv->res._u._ext.nsaddrs[i]->sin6_addr;
|
|
+ FILE *f = fopen("/etc/resolv.conf", "r");
|
|
+ if (f) {
|
|
+ char line[256], *s;
|
|
+ int i;
|
|
+ while (fgets(line, sizeof(line), f)) {
|
|
+ if (strncmp(line, "nameserver", 10) || !isspace(line[10]))
|
|
+ continue;
|
|
+ for (s = &line[11]; isspace(s[0]); s++);
|
|
+ for (i = 0; s[i] && !isspace(s[i]); i++);
|
|
+ s[i] = 0;
|
|
+ g_resolv_add_nameserver(resolv, s, 53, 0);
|
|
}
|
|
-
|
|
- if (family != AF_INET && family != AF_INET6)
|
|
- continue;
|
|
-
|
|
- if (inet_ntop(family, sa_addr, buf, sizeof(buf)))
|
|
- g_resolv_add_nameserver(resolv, buf, 53, 0);
|
|
+ fclose(f);
|
|
}
|
|
|
|
if (!resolv->nameserver_list)
|
|
`},
|
|
},
|
|
}, &MakeHelper{
|
|
Generate: "./bootstrap",
|
|
},
|
|
Automake,
|
|
Libtool,
|
|
PkgConfig,
|
|
|
|
DBus,
|
|
IPTables,
|
|
GnuTLS,
|
|
Readline,
|
|
KernelHeaders,
|
|
), version
|
|
}
|
|
func init() {
|
|
artifactsM[Connman] = Metadata{
|
|
f: Toolchain.newConnman,
|
|
|
|
Name: "connman",
|
|
Description: "a daemon for managing Internet connections",
|
|
Website: "https://git.kernel.org/pub/scm/network/connman/connman.git/",
|
|
|
|
Dependencies: P{
|
|
DBus,
|
|
IPTables,
|
|
GnuTLS,
|
|
Readline,
|
|
},
|
|
|
|
ID: 337,
|
|
}
|
|
}
|