From 126ac0a5650a9f1349cd5be61e153ef974536f07 Mon Sep 17 00:00:00 2001 From: tron Date: Tue, 6 Aug 2013 15:57:07 +0000 Subject: Pullup ticket #4203 - requested by bouyer mail/dovecot2: bug fix patch Revisions pulled up: - mail/dovecot2/Makefile 1.48 - mail/dovecot2/distinfo 1.37 - mail/dovecot2/patches/patch-src_plugins_quota_quota-fs.c 1.4 - mail/dovecot2/patches/patch-src_plugins_quota_quota-fs.h 1.4 --- Module Name: pkgsrc Committed By: bouyer Date: Mon Aug 5 23:12:42 UTC 2013 Modified Files: pkgsrc/mail/dovecot2: Makefile distinfo Added Files: pkgsrc/mail/dovecot2/patches: patch-src_plugins_quota_quota-fs.c patch-src_plugins_quota_quota-fs.h Log Message: Fix (again) NetBSD libquota support. --- mail/dovecot2/Makefile | 3 +- mail/dovecot2/distinfo | 4 +- .../patches/patch-src_plugins_quota_quota-fs.c | 56 ++++++++++++++++++++++ .../patches/patch-src_plugins_quota_quota-fs.h | 16 +++++++ 4 files changed, 77 insertions(+), 2 deletions(-) create mode 100644 mail/dovecot2/patches/patch-src_plugins_quota_quota-fs.c create mode 100644 mail/dovecot2/patches/patch-src_plugins_quota_quota-fs.h diff --git a/mail/dovecot2/Makefile b/mail/dovecot2/Makefile index 98c82ce1c0e..a8e5630210e 100644 --- a/mail/dovecot2/Makefile +++ b/mail/dovecot2/Makefile @@ -1,8 +1,9 @@ -# $NetBSD: Makefile,v 1.45 2013/05/23 19:45:50 adam Exp $ +# $NetBSD: Makefile,v 1.45.2.1 2013/08/06 15:57:07 tron Exp $ DISTNAME= dovecot-2.2.2 CATEGORIES= mail MASTER_SITES= http://www.dovecot.org/releases/2.2/ +PKGREVISION= 1 MAINTAINER= adam@NetBSD.org HOMEPAGE= http://www.dovecot.org/ diff --git a/mail/dovecot2/distinfo b/mail/dovecot2/distinfo index 0ae3967a4b6..5e1c5d8ef77 100644 --- a/mail/dovecot2/distinfo +++ b/mail/dovecot2/distinfo @@ -1,4 +1,4 @@ -$NetBSD: distinfo,v 1.35 2013/05/23 19:45:50 adam Exp $ +$NetBSD: distinfo,v 1.35.2.1 2013/08/06 15:57:07 tron Exp $ SHA1 (dovecot-2.2.2.tar.gz) = c095b0a8e25d730b854f0ace37544ad203db0891 RMD160 (dovecot-2.2.2.tar.gz) = ada7c9c12949e1150a4a4bbe7bea257e296f13ca @@ -9,3 +9,5 @@ SHA1 (patch-ac) = dc5db4870b14bf2424f0c957f5cf7f1a289fefe6 SHA1 (patch-ae) = 51d8cb998cc2ded8bfc767710e465b752c50e656 SHA1 (patch-af) = c066e94dd6593d16eec3e66f5f4d26f021918498 SHA1 (patch-aj) = 9e7970d29d11c097b9588ad16611f6d0e48235c2 +SHA1 (patch-src_plugins_quota_quota-fs.c) = aa4865214cab4cbde1e04dc578ee394f97103185 +SHA1 (patch-src_plugins_quota_quota-fs.h) = 068b5f418f1354233805e2f7230b95e7a9c407b4 diff --git a/mail/dovecot2/patches/patch-src_plugins_quota_quota-fs.c b/mail/dovecot2/patches/patch-src_plugins_quota_quota-fs.c new file mode 100644 index 00000000000..08a9d259570 --- /dev/null +++ b/mail/dovecot2/patches/patch-src_plugins_quota_quota-fs.c @@ -0,0 +1,56 @@ +$NetBSD: patch-src_plugins_quota_quota-fs.c,v 1.3.2.1 2013/08/06 15:57:07 tron Exp $ + +fix support for NetBSD's libquota + +--- src/plugins/quota/quota-fs.c.orig 2013-02-26 09:42:04.000000000 +0100 ++++ src/plugins/quota/quota-fs.c 2013-08-06 01:00:32.000000000 +0200 +@@ -672,34 +672,38 @@ + { + struct quotakey qk; + struct quotaval qv; ++ struct quotahandle *qh; ++ int ret; + +- if (root->qh == NULL) { +- if ((root->qh = quota_open(root->mount->mount_path)) == NULL) { +- i_error("cannot open quota for %s: %m", +- root->mount->mount_path); +- fs_quota_root_disable(root, group); +- return 0; +- } +- } ++ if ((qh = quota_open(root->mount->mount_path)) == NULL) { ++ i_error("cannot open quota for %s: %m", ++ root->mount->mount_path); ++ fs_quota_root_disable(root, group); ++ return 0; ++ } + + qk.qk_idtype = group ? QUOTA_IDTYPE_GROUP : QUOTA_IDTYPE_USER; + qk.qk_id = group ? root->gid : root->uid; + qk.qk_objtype = bytes ? QUOTA_OBJTYPE_BLOCKS : QUOTA_OBJTYPE_FILES; + +- if (quota_get(root->qh, &qk, &qv) != 0) { ++ if (quota_get(qh, &qk, &qv) != 0) { + if (errno == ESRCH) { + fs_quota_root_disable(root, group); + return 0; + } + i_error("quotactl(Q_GETQUOTA, %s) failed: %m", + root->mount->mount_path); +- return -1; ++ ret = -1; ++ goto end; + } + + *value_r = qv.qv_usage * DEV_BSIZE; + *limit_r = qv.qv_softlimit * DEV_BSIZE; + +- return 1; ++ ret = 1; ++end: ++ quota_close(qh); ++ return ret; + } + #endif + diff --git a/mail/dovecot2/patches/patch-src_plugins_quota_quota-fs.h b/mail/dovecot2/patches/patch-src_plugins_quota_quota-fs.h new file mode 100644 index 00000000000..d50facd9bea --- /dev/null +++ b/mail/dovecot2/patches/patch-src_plugins_quota_quota-fs.h @@ -0,0 +1,16 @@ +$NetBSD: patch-src_plugins_quota_quota-fs.h,v 1.3.2.1 2013/08/06 15:57:07 tron Exp $ + +fix support for NetBSD's libquota + +--- src/plugins/quota/quota-fs.h.orig 2013-08-06 00:53:34.000000000 +0200 ++++ src/plugins/quota/quota-fs.h 2013-08-06 00:54:29.000000000 +0200 +@@ -7,7 +7,8 @@ + #endif + + #ifdef HAVE_QUOTA_OPEN +-# include /* NetBSD with libquota */ ++/* absolute path to avoid confusion with ./quota.h */ ++# include "/usr/include/quota.h" /* NetBSD with libquota */ + #endif + + #ifdef HAVE_SYS_QUOTA_H -- cgit v1.2.3