[packages/cyrus-imapd] fix build with new versions of libcap

atler atler at pld-linux.org
Thu Jul 2 11:12:52 CEST 2020


commit 61cd30f653f5f3ec689fe681ed50b4b5c27223ae
Author: Jan Palus <atler at pld-linux.org>
Date:   Thu Jul 2 10:52:39 2020 +0200

    fix build with new versions of libcap

 cyrus-imapd-libcap.patch | 63 ++++++++++++++++++++++++++++++++++++++++++++++++
 cyrus-imapd.spec         |  2 ++
 2 files changed, 65 insertions(+)
---
diff --git a/cyrus-imapd.spec b/cyrus-imapd.spec
index 05e04ff..1b015bb 100644
--- a/cyrus-imapd.spec
+++ b/cyrus-imapd.spec
@@ -39,6 +39,7 @@ Patch0:		%{name}-et.patch
 Patch1:		link.patch
 Patch2:		%{name}-clamav-0.101.patch
 Patch3:		%{name}-icu.patch
+Patch4:		%{name}-libcap.patch
 URL:		http://www.cyrusimap.org/
 BuildRequires:	autoconf >= 2.63
 BuildRequires:	automake
@@ -205,6 +206,7 @@ Perlowy interfejs do biblioteki cyrus-imapd.
 %patch1 -p1
 %patch2 -p1
 %patch3 -p1
+%patch4 -p1
 
 cp -p %{SOURCE1} %{SOURCE2} %{SOURCE4} %{SOURCE5} .
 
diff --git a/cyrus-imapd-libcap.patch b/cyrus-imapd-libcap.patch
new file mode 100644
index 0000000..43c7c59
--- /dev/null
+++ b/cyrus-imapd-libcap.patch
@@ -0,0 +1,63 @@
+From c3fb78f2e62be9761abd7bb39bb8be4a47b0cfd0 Mon Sep 17 00:00:00 2001
+From: Jakob Gahde <j5lx at fmail.co.uk>
+Date: Sat, 15 Feb 2020 17:18:16 +0100
+Subject: [PATCH] Add compatibility with recent versions of libcap
+
+---
+ lib/util.c      | 6 +++---
+ master/master.c | 4 ++--
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/lib/util.c b/lib/util.c
+index 50e809ed1..531cb94fa 100644
+--- a/lib/util.c
++++ b/lib/util.c
+@@ -666,7 +666,7 @@ EXPORTED int set_caps(int stage __attribute__((unused)),
+ }
+ #endif
+ 
+-static int cap_setuid(int uid, int is_master)
++static int cyrus_cap_setuid(int uid, int is_master)
+ {
+     int r;
+ 
+@@ -686,7 +686,7 @@ EXPORTED int become_cyrus(int is_master)
+     int result;
+     static uid_t uid = 0;
+ 
+-    if (uid) return cap_setuid(uid, is_master);
++    if (uid) return cyrus_cap_setuid(uid, is_master);
+ 
+     const char *cyrus = cyrus_user();
+     const char *mail = cyrus_group();
+@@ -732,7 +732,7 @@ EXPORTED int become_cyrus(int is_master)
+         return -1;
+     }
+ 
+-    result = cap_setuid(newuid, is_master);
++    result = cyrus_cap_setuid(newuid, is_master);
+ 
+     /* Only set static uid if successful, else future calls won't reset gid */
+     if (result == 0)
+diff --git a/master/master.c b/master/master.c
+index 354026a96..b65959884 100644
+--- a/master/master.c
++++ b/master/master.c
+@@ -297,7 +297,7 @@ static void get_statsock(int filedes[2])
+         fatalf(1, "unable to set close-on-exec: %m");
+ }
+ 
+-static int cap_bind(int socket, struct sockaddr *addr, socklen_t length)
++static int cyrus_cap_bind(int socket, struct sockaddr *addr, socklen_t length)
+ {
+     int r;
+ 
+@@ -663,7 +663,7 @@ static void service_create(struct service *s, int is_startup)
+ #endif
+ 
+         oldumask = umask((mode_t) 0); /* for linux */
+-        r = cap_bind(s->socket, res->ai_addr, res->ai_addrlen);
++        r = cyrus_cap_bind(s->socket, res->ai_addr, res->ai_addrlen);
+         umask(oldumask);
+         if (r < 0) {
+             int e = errno;
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/cyrus-imapd.git/commitdiff/1e80cade6a65537af5124c4d04d3b6bfb9faf389



More information about the pld-cvs-commit mailing list