public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
To: git-commits@fedoraproject.org
Subject: [rpms/calls] f44: Upstream release 50~rc0 (fedora#2443557)
Date: Sun, 31 May 2026 18:20:24 GMT	[thread overview]
Message-ID: <178025162462.1.6114903181736162405.rpms-calls-825ff7a5115c@fedoraproject.org> (raw)

A new commit has been pushed.

Repo   : rpms/calls
Branch : f44
Commit : 825ff7a5115ca1976b3e588234ce1665012d8e4b
Author : Tomi Lähteenmäki <lihis@lihis.net>
Date   : 2026-02-28T19:47:45+02:00
Stats  : +15/-366 in 4 file(s)
URL    : https://src.fedoraproject.org/rpms/calls/c/825ff7a5115ca1976b3e588234ce1665012d8e4b?branch=f44

Log:
Upstream release 50~rc0 (fedora#2443557)

---
diff --git a/.gitignore b/.gitignore
index 5c8bea6..59f040f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -50,3 +50,5 @@
 /calls-v48.2.tar.gz
 /calls-v49.1.tar.gz
 /calls-v49.1.1.tar.gz
+/calls-v50_rc.0.tar.gz
+/libcall-ui-3a2044f8e7c45387954ed35d22c6b6309e6751d6.tar.gz

diff --git a/807.patch b/807.patch
deleted file mode 100644
index ab353a6..0000000
--- a/807.patch
+++ /dev/null
@@ -1,352 +0,0 @@
-From 009c1c05cd11c2ee3ab8e35f2f13463772ca9840 Mon Sep 17 00:00:00 2001
-From: Christian Glombek <c.glombek@cosa.systems>
-Date: Wed, 26 Nov 2025 08:11:02 +0100
-Subject: [PATCH 1/3] calls-network-watch: Fix buffer overflow in req_route
- functions
-
-Signed-off-by: Christian Glombek <c.glombek@cosa.systems>
----
- src/calls-network-watch.c | 81 ++++++++++++++++++---------------------
- 1 file changed, 37 insertions(+), 44 deletions(-)
-
-diff --git a/src/calls-network-watch.c b/src/calls-network-watch.c
-index 576d32c87..9d5ff2366 100644
---- a/src/calls-network-watch.c
-+++ b/src/calls-network-watch.c
-@@ -30,6 +30,10 @@
- 
- #include <arpa/inet.h>
- #include <linux/rtnetlink.h>
-+#include <errno.h>
-+#include <unistd.h>
-+#include <string.h>
-+#include <time.h>
- 
- /**
-  * SECTION:calls-network-watch
-@@ -89,69 +93,58 @@ static void initable_iface_init (GInitableIface *iface);
- G_DEFINE_TYPE_WITH_CODE (CallsNetworkWatch, calls_network_watch, G_TYPE_OBJECT,
-                          G_IMPLEMENT_INTERFACE (G_TYPE_INITABLE, initable_iface_init))
- 
--#define DUMMY_TARGET_V4 "1.2.3.4"
--#define DUMMY_TARGET_V6 "::1.2.3.4"
- 
- static gboolean
--req_route_v4 (CallsNetworkWatch *self)
-+req_route (CallsNetworkWatch *self, int family)
- {
--  int addr_len = 4;
--  int len = RTA_LENGTH (addr_len);
-+  struct in_addr dst4;
-+  struct in6_addr dst6;
-   struct rtattr *rta;
-+  size_t off, max;
-+  int addr_len, rta_len;
- 
-   g_assert (CALLS_IS_NETWORK_WATCH (self));
- 
--  self->req->n.nlmsg_len = NLMSG_LENGTH (sizeof (struct rtmsg));
--  self->req->n.nlmsg_flags = NLM_F_REQUEST;
--  self->req->n.nlmsg_type = RTM_GETROUTE;
--  self->req->r.rtm_family = AF_INET;
--
--
--  rta = ((struct rtattr *) (((void *) (&self->req->n)) +
--                            NLMSG_ALIGN (self->req->n.nlmsg_len)));
--  rta->rta_type = RTA_DST;
--  rta->rta_len = len;
--
--  /* use a dummy target destination */
--  if (inet_pton (AF_INET, DUMMY_TARGET_V4, RTA_DATA (rta)) != 1)
-+  if (family == AF_INET)
-+    addr_len = sizeof (struct in_addr);
-+  else if (family == AF_INET6)
-+    addr_len = sizeof (struct in6_addr);
-+  else
-     return FALSE;
- 
--  self->req->n.nlmsg_len = NLMSG_ALIGN (self->req->n.nlmsg_len) + RTA_ALIGN (len);
--
--  return TRUE;
--}
--
--
--static gboolean
--req_route_v6 (CallsNetworkWatch *self)
--{
--  int addr_len = 16;
--  int len = RTA_LENGTH (addr_len);
--  struct rtattr *rta;
--
--  g_assert (CALLS_IS_NETWORK_WATCH (self));
-+  rta_len = RTA_LENGTH (addr_len);
-+  max = sizeof (*self->req);
-+  off = NLMSG_ALIGN (self->req->n.nlmsg_len);
-+  if (off + rta_len > max) {
-+    g_warning ("%s req buffer is too small", family == AF_INET ? "ipv4" : "ipv6");
-+    return FALSE;
-+  }
- 
-   self->req->n.nlmsg_len = NLMSG_LENGTH (sizeof (struct rtmsg));
-   self->req->n.nlmsg_flags = NLM_F_REQUEST;
-   self->req->n.nlmsg_type = RTM_GETROUTE;
--  self->req->r.rtm_family = AF_INET6;
-+  self->req->r.rtm_family = family;
-+  self->req->r.rtm_dst_len = family == AF_INET ? 32 : 128;
-+
-+  /* dummy target destination for route query */
-+  if ((family == AF_INET && inet_pton (AF_INET, "1.2.3.4", &dst4) != 1) ||
-+      (family == AF_INET6 && inet_pton (AF_INET6, "::1.2.3.4", &dst6) != 1))
-+      return FALSE;
- 
--  rta = ((struct rtattr *) (((void *) (&self->req->n)) +
--                            NLMSG_ALIGN (self->req->n.nlmsg_len)));
-+  rta = (struct rtattr *) ((char *) self->req + off);
-   rta->rta_type = RTA_DST;
--  rta->rta_len = len;
-+  rta->rta_len = rta_len;
- 
--  /* use a dummy target destination */
--  if (inet_pton (AF_INET6, DUMMY_TARGET_V6, RTA_DATA (rta)) != 1)
--    return FALSE;
-+  if (family == AF_INET)
-+    memcpy (RTA_DATA (rta), &dst4, addr_len);
-+  else
-+    memcpy (RTA_DATA (rta), &dst6, addr_len);
- 
--  self->req->n.nlmsg_len = NLMSG_ALIGN (self->req->n.nlmsg_len) + RTA_ALIGN (len);
-+  self->req->n.nlmsg_len = off + RTA_ALIGN (rta->rta_len);
- 
-   return TRUE;
- }
- 
--#undef DUMMY_TARGET_V4
--#undef DUMMY_TARGET_V6
- 
- static gboolean
- talk_rtnl (CallsNetworkWatch *self)
-@@ -255,7 +248,7 @@ fetch_ipv4 (CallsNetworkWatch *self)
- {
-   g_assert (CALLS_IS_NETWORK_WATCH (self));
- 
--  if (!req_route_v4 (self))
-+  if (!req_route (self, AF_INET))
-     return FALSE;
- 
-   if (!talk_rtnl (self))
-@@ -269,7 +262,7 @@ fetch_ipv6 (CallsNetworkWatch *self)
- {
-   g_assert (CALLS_IS_NETWORK_WATCH (self));
- 
--  if (!req_route_v6 (self))
-+  if (!req_route (self, AF_INET6))
-     return FALSE;
- 
-   if (!talk_rtnl (self))
--- 
-GitLab
-
-
-From 9339fa7a5c7b42b4663f27cdbf07346cffb286e2 Mon Sep 17 00:00:00 2001
-From: Christian Glombek <c.glombek@cosa.systems>
-Date: Wed, 26 Nov 2025 08:13:33 +0100
-Subject: [PATCH 2/3] calls-network-watch: Fix hang in recvmsg in talk_rtnl
- function
-
-Signed-off-by: Christian Glombek <c.glombek@cosa.systems>
----
- src/calls-network-watch.c | 73 +++++++++++++++++++++++++--------------
- 1 file changed, 48 insertions(+), 25 deletions(-)
-
-diff --git a/src/calls-network-watch.c b/src/calls-network-watch.c
-index 9d5ff2366..3ba7facf6 100644
---- a/src/calls-network-watch.c
-+++ b/src/calls-network-watch.c
-@@ -149,33 +149,47 @@ req_route (CallsNetworkWatch *self, int family)
- static gboolean
- talk_rtnl (CallsNetworkWatch *self)
- {
--  struct iovec iov;
--  struct iovec riov;
--  struct sockaddr_nl nladdr = { .nl_family = AF_NETLINK };
--  struct msghdr msg = {
--    .msg_name = &nladdr,
--    .msg_namelen = sizeof (nladdr),
--    .msg_iov = &iov,
--    .msg_iovlen = 1,
--  };
--
-+  struct sockaddr_nl nladdr;
-+  struct iovec iov, riov;
-+  struct msghdr msg;
-   struct nlmsghdr *h;
-+  struct nlmsgerr *err;
-+  char *buf;
-   int status;
- 
-   g_assert (CALLS_IS_NETWORK_WATCH (self));
- 
--  iov.iov_base = (void *) &self->req->n;
-+  {
-+    struct timeval tv = { .tv_sec = 5, .tv_usec = 0 };
-+    if (setsockopt (self->fd, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof (tv)) < 0) {
-+      g_warning ("Could not set SO_RCVTIMEO: %m");
-+      return FALSE;
-+    }
-+  }
-+
-+  memset (&nladdr, 0, sizeof (nladdr));
-+  nladdr.nl_family = AF_NETLINK;
-+
-+  iov.iov_base = &self->req->n;
-   iov.iov_len = self->req->n.nlmsg_len;
-+
-+  memset (&msg, 0, sizeof (msg));
-+  msg.msg_name    = &nladdr;
-+  msg.msg_namelen = sizeof(nladdr);
-+  msg.msg_iov     = &iov;
-+  msg.msg_iovlen  = 1;
-+
-   self->req->n.nlmsg_seq = self->seq++;
- 
-   status = sendmsg (self->fd, &msg, 0);
-   if (status < 0) {
--    g_warning ("Could not send rtnetlink: %d", errno);
-+    g_warning ("Could not send rtnetlink: %m");
-     return FALSE;
-   }
- 
-   /* change msg to use response iov */
--  riov.iov_base = self->buf;
-+  buf = self->buf;
-+  riov.iov_base = buf;
-   riov.iov_len = sizeof (self->buf);
- 
-   msg.msg_iov = &riov;
-@@ -183,24 +197,33 @@ talk_rtnl (CallsNetworkWatch *self)
- 
-   status = recvmsg (self->fd, &msg, 0);
- 
--  if (status == -1) {
--    g_warning ("Could not receive rtnetlink: %d", errno);
-+  if (status < 0) {
-+    if (errno == EAGAIN || errno == EWOULDBLOCK)
-+      g_warning ("Timed out waiting for rtnetlink response");
-+    else
-+      g_warning ("Could not receive rtnetlink: %m");
-+
-     return FALSE;
-   }
- 
--  h = (struct nlmsghdr *) self->buf;
-+  h = (struct nlmsghdr *) buf;
-+
-   if (h->nlmsg_type == NLMSG_ERROR) {
--    /* TODO figure out why this fails and provide more information in the warning */
-+    err = NLMSG_DATA (h);
-+
-+    if (err->error == 0) {
-+      self->repeated_warning = FALSE;
-+      return TRUE;  /* SUCCESS! */
-+    }
-+
-     if (!self->repeated_warning)
--      g_warning ("Unexpected error response to netlink request while trying "
--                 "to fetch local IP address");
-+      g_warning ("Unexpected rtnetlink error: %s", strerror (-err->error));
- 
-     self->repeated_warning = TRUE;
-     return FALSE;
-   }
- 
-   self->repeated_warning = FALSE;
--
-   return TRUE;
- }
- 
-@@ -217,7 +240,7 @@ get_prefsrc (CallsNetworkWatch *self,
-   g_assert (CALLS_IS_NETWORK_WATCH (self));
- 
-   h = (struct nlmsghdr *) self->buf;
--  r = NLMSG_DATA (self->buf);
-+  r = NLMSG_DATA (h);
-   rta = RTM_RTA (r);
-   len = h->nlmsg_len - NLMSG_LENGTH (sizeof (*r));
- 
-@@ -232,13 +255,13 @@ get_prefsrc (CallsNetworkWatch *self,
-   if (!found)
-     return FALSE;
- 
--  if (family == AF_INET) {
-+  memset (self->tmp_addr, 0, sizeof (self->tmp_addr));
-+  if (family == AF_INET)
-     inet_ntop (AF_INET, RTA_DATA (rta), self->tmp_addr, INET_ADDRSTRLEN);
--  } else if (family == AF_INET6) {
-+  else if (family == AF_INET6)
-     inet_ntop (AF_INET6, RTA_DATA (rta), self->tmp_addr, INET6_ADDRSTRLEN);
--  } else {
-+  else
-     return FALSE;
--  }
- 
-   return TRUE;
- }
--- 
-GitLab
-
-
-From 9178816db0cd941126f731f2067b1273adba335b Mon Sep 17 00:00:00 2001
-From: Christian Glombek <c.glombek@cosa.systems>
-Date: Wed, 26 Nov 2025 08:15:46 +0100
-Subject: [PATCH 3/3] calls-network-watch: Init defaults for socket
-
-Signed-off-by: Christian Glombek <c.glombek@cosa.systems>
----
- src/calls-network-watch.c | 16 ++++++++++++----
- 1 file changed, 12 insertions(+), 4 deletions(-)
-
-diff --git a/src/calls-network-watch.c b/src/calls-network-watch.c
-index 3ba7facf6..325a96eba 100644
---- a/src/calls-network-watch.c
-+++ b/src/calls-network-watch.c
-@@ -411,25 +411,33 @@ calls_network_watch_initable_init (GInitable    *initable,
-                                    GCancellable *cancelable,
-                                    GError      **error)
- {
-+  struct sockaddr_nl addr;
-   CallsNetworkWatch *self = CALLS_NETWORK_WATCH (initable);
- 
-   self->fd = socket (AF_NETLINK, SOCK_RAW, NETLINK_ROUTE);
-   if (self->fd == -1 && error) {
--    int errsv = errno;
-     g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
--                 "Failed to create netlink socket: %d", errsv);
-+                 "Failed to create netlink socket: %m");
-     return FALSE;
-   }
- 
-+  memset (&addr, 0, sizeof (addr));
-+  addr.nl_family = AF_NETLINK;
-+  addr.nl_pid    = getpid();
-+  addr.nl_groups = 0; /* no notifications */
-+  if (bind (self->fd, (struct sockaddr *) &addr, sizeof (addr)) < 0) {
-+      g_warning ("Failed to bind netlink socket: %m");
-+  }
-+
-   if (fetch_ipv4 (self))
-     self->ipv4 = g_strdup (self->tmp_addr);
-   else
--    self->ipv4 = g_strdup ("127.0.0.1");
-+    self->ipv4 = NULL;
- 
-   if (fetch_ipv6 (self))
-     self->ipv6 = g_strdup (self->tmp_addr);
-   else
--    self->ipv6 = g_strdup ("::1");
-+    self->ipv6 = NULL;
- 
-   return TRUE;
- }
--- 
-GitLab
-

diff --git a/calls.spec b/calls.spec
index 2a2010e..de86577 100644
--- a/calls.spec
+++ b/calls.spec
@@ -1,16 +1,14 @@
-%global libcall_ui_commit f66056ace818ff19b507335634dd67138a92c77f
+%global libcall_ui_commit 3a2044f8e7c45387954ed35d22c6b6309e6751d6
 
 Name:       calls
-Version:    49.1.1
-Release:    7%{?dist}
+Version:    50~rc.0
+Release:    1%{?dist}
 Summary:    A phone dialer and call handler
 
 License:    GPL-3.0-or-later AND LGPL-2.1-or-later
 URL:        https://gitlab.gnome.org/GNOME/calls
-Source0:    https://gitlab.gnome.org/GNOME/calls/-/archive/v%{version}/%{name}-v%{version}.tar.gz
+Source0:    https://gitlab.gnome.org/GNOME/calls/-/archive/v%{version_no_tilde _}/%{name}-v%{version_no_tilde _}.tar.gz
 Source1:    https://gitlab.gnome.org/World/Phosh/libcall-ui/-/archive/%{libcall_ui_commit}/libcall-ui-%{libcall_ui_commit}.tar.gz
-# https://gitlab.gnome.org/GNOME/calls/-/merge_requests/807
-Patch0:     807.patch
 
 ExcludeArch:    %{ix86}
 
@@ -19,10 +17,9 @@ BuildRequires:  meson
 BuildRequires:  cmake
 BuildRequires:  gcc-c++
 BuildRequires:  dbus-daemon
-
 BuildRequires:  pkgconfig(libcallaudio-0.1)
-BuildRequires:  pkgconfig(gobject-2.0) >= 2.74
-BuildRequires:  pkgconfig(glib-2.0) >= 2.74
+BuildRequires:  pkgconfig(gobject-2.0) >= 2.76
+BuildRequires:  pkgconfig(glib-2.0) >= 2.76
 BuildRequires:  pkgconfig(gtk4) >= 4.12
 BuildRequires:  pkgconfig(libadwaita-1) >= 1.6
 BuildRequires:  pkgconfig(gsound)
@@ -33,17 +30,19 @@ BuildRequires:  pkgconfig(folks)
 BuildRequires:  pkgconfig(mm-glib)
 BuildRequires:  pkgconfig(libfeedback-0.0) >= 0.0.1
 BuildRequires:  pkgconfig(gstreamer-1.0)
+BuildRequires:  pkgconfig(gmobile) >= 0.3.0
 BuildRequires:  gstreamer1-plugins-good-gtk
 BuildRequires:  sofia-sip-glib-devel
 BuildRequires:  systemd-rpm-macros
-
 BuildRequires:  desktop-file-utils
 BuildRequires:  /usr/bin/xvfb-run
 BuildRequires:  /usr/bin/xauth
 BuildRequires:  libappstream-glib
 BuildRequires:  python3-docutils
+BuildRequires:  mobile-broadband-provider-info-devel
 
 Requires:  hicolor-icon-theme
+Requires:  mobile-broadband-provider-info
 
 Recommends: feedbackd
 
@@ -54,9 +53,9 @@ Provides: gnome-calls%{?_isa} = %{version}-%{release}
 A phone dialer and call handler.
 
 %prep
-%autosetup -a1 -p1 -n %{name}-v%{version}
+%autosetup -a1 -p1 -n %{name}-v%{version_no_tilde _}
 
-mv libcall-ui-%{libcall_ui_commit}/* subprojects/libcall-ui/
+mv libcall-ui-%{libcall_ui_commit} subprojects/libcall-ui
 
 %conf
 %meson

diff --git a/sources b/sources
index df4f6e0..0d7fc2d 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-SHA512 (calls-v49.1.1.tar.gz) = d779895dca462157160e0c5be594990f02382dda01439d30af1b904ca00bebca7ba552397517e587d4d4c06030f5080deb768788b76cdd28958113dbbb138411
-SHA512 (libcall-ui-f66056ace818ff19b507335634dd67138a92c77f.tar.gz) = 26e2ebd3332df4280accd13870e739dc7c2c39bd9df5a5a6eedd3818fa3478908318c280345e5b7e666e89dedb88841548328fa1daca9c510f5044e909da0bc1
+SHA512 (calls-v50_rc.0.tar.gz) = 106a54f0343533ae8cbbf99358867792505f0b0273e51f2f5cd96346e9d27942715b6a368b02f1517c5250c15f5551d2d3c9b6f1081ed4e599637858486f43e6
+SHA512 (libcall-ui-3a2044f8e7c45387954ed35d22c6b6309e6751d6.tar.gz) = 67dc19192b90c136a2fdc88d36bcaeb6f1ec2377bbffe32644cceef570054a65dfc2869b5433c28ea47e6c32a27e5610a90239f1f57584438460c32eee1b684b

                 reply	other threads:[~2026-05-31 18:20 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=178025162462.1.6114903181736162405.rpms-calls-825ff7a5115c@fedoraproject.org \
    --to=git-commits@fedoraproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox