internal/rosa: connman artifact
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
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>
This commit is contained in:
@@ -47,6 +47,7 @@ const (
|
|||||||
Bison
|
Bison
|
||||||
Bzip2
|
Bzip2
|
||||||
CMake
|
CMake
|
||||||
|
Connman
|
||||||
Coreutils
|
Coreutils
|
||||||
Curl
|
Curl
|
||||||
DBus
|
DBus
|
||||||
|
|||||||
109
internal/rosa/connman.go
Normal file
109
internal/rosa/connman.go
Normal file
@@ -0,0 +1,109 @@
|
|||||||
|
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,
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user