aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/rosa/package/connman
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2026-05-19 22:26:40 +0900
committerOphestra <cat@gensokyo.uk>2026-05-19 22:26:40 +0900
commit1c6f30379e0b21dad7f8da21e9c7736c1fa72997 (patch)
tree5d24065c75a14a360d3ba09903b2525a737519d5 /internal/rosa/package/connman
parent009a4e0d583d14ebe328473df6468424587087a7 (diff)
internal/rosa/package: migrate bzip2, curl, connman
Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/rosa/package/connman')
-rw-r--r--internal/rosa/package/connman/alpine-musl-res.patch59
-rw-r--r--internal/rosa/package/connman/package.az37
2 files changed, 96 insertions, 0 deletions
diff --git a/internal/rosa/package/connman/alpine-musl-res.patch b/internal/rosa/package/connman/alpine-musl-res.patch
new file mode 100644
index 00000000..3786b86c
--- /dev/null
+++ b/internal/rosa/package/connman/alpine-musl-res.patch
@@ -0,0 +1,59 @@
+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)
diff --git a/internal/rosa/package/connman/package.az b/internal/rosa/package/connman/package.az
new file mode 100644
index 00000000..2bddeb83
--- /dev/null
+++ b/internal/rosa/package/connman/package.az
@@ -0,0 +1,37 @@
+package connman {
+ description = "a daemon for managing Internet connections";
+ website = "https://git.kernel.org/pub/scm/network/connman/connman.git";
+ anitya = 337;
+
+ version* = "2.0";
+ source = remoteTar {
+ url = "https://git.kernel.org/pub/scm/network/connman/connman.git/"+
+ "snapshot/connman-"+version+".tar.gz";
+ checksum = "MhVTdJOhndnZn2SWd8URKo_Pj7Zvc14tntEbrVOf9L3yVWJvpb3v3Q6104tWJgtW";
+ compress = gzip;
+ };
+ patches = [ "alpine-musl-res.patch" ];
+
+ exec = make {
+ generate = "./bootstrap";
+ };
+
+ inputs = [
+ automake,
+ libtool,
+ pkg-config,
+
+ dbus,
+ iptables,
+ gnutls,
+ readline,
+ kernel-headers,
+ ];
+
+ runtime = [
+ dbus,
+ iptables,
+ gnutls,
+ readline,
+ ];
+}