From patchwork Fri Mar 29 17:25:27 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Fabrice Fontaine X-Patchwork-Id: 1069983 Return-Path: X-Original-To: incoming-buildroot@patchwork.ozlabs.org Delivered-To: patchwork-incoming-buildroot@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=busybox.net (client-ip=140.211.166.137; helo=fraxinus.osuosl.org; envelope-from=buildroot-bounces@busybox.net; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="bimnDFDu"; dkim-atps=neutral Received: from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 44W7tS2wtTz9sPh for ; Sat, 30 Mar 2019 04:25:51 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id 2FC1D860C2; Fri, 29 Mar 2019 17:25:49 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id vv_Cdaqk2fSK; Fri, 29 Mar 2019 17:25:46 +0000 (UTC) Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34]) by fraxinus.osuosl.org (Postfix) with ESMTP id 9FCD586099; Fri, 29 Mar 2019 17:25:46 +0000 (UTC) X-Original-To: buildroot@lists.busybox.net Delivered-To: buildroot@osuosl.org Received: from hemlock.osuosl.org (smtp2.osuosl.org [140.211.166.133]) by ash.osuosl.org (Postfix) with ESMTP id 67A501BF337 for ; Fri, 29 Mar 2019 17:25:45 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by hemlock.osuosl.org (Postfix) with ESMTP id 635EE87E40 for ; Fri, 29 Mar 2019 17:25:45 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from hemlock.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id MGRIw-Ik2roU for ; Fri, 29 Mar 2019 17:25:44 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.7.6 Received: from mail-wm1-f67.google.com (mail-wm1-f67.google.com [209.85.128.67]) by hemlock.osuosl.org (Postfix) with ESMTPS id DB38787E3B for ; Fri, 29 Mar 2019 17:25:43 +0000 (UTC) Received: by mail-wm1-f67.google.com with SMTP id c1so2154565wml.4 for ; Fri, 29 Mar 2019 10:25:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=vayWXcLQjlxYEx+s0jgLsf/wpw9l4wywoya7Q2AwvqQ=; b=bimnDFDuWz8rVunUpVcC55kLHJ43Wa+SR83HQ+MzGv/cCi0t8v8lL971bKsBB/OX+H evgKiEutjvrVMxFV/zuFZ+TSPTzVNEL7KxEWrmX4yUFN2GNrot83dtN4rytGZgZtltNE P21AYJ/pzjkFwC5XzVWJlHh5N4RXoSQ82DTfyd4bZ6DbsPdFi7SN1u+QrGfY9Wa3Tbzi 7eQ2MoCunzs8MyWmk4o247Y2ZVNWVsfRZq1XfJdYlEE804rDO+F/LY92dJ9baCJ8Jfec i+28eurpkcPtL5Qcne6Pz8KPSAP0rlfRVI3wRYj1QR2e7HchiQ4KUpCHC54/lWSk1YcC gQwQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=vayWXcLQjlxYEx+s0jgLsf/wpw9l4wywoya7Q2AwvqQ=; b=sKpJQghGWc6L78e5VHQoJ4XlphWFdaQfF619li4q+D7Oz3xLgDuV6XXmC1BpK3Ho4B omMMChyyxVinjb6bxgpXSjRAicw60z1B35HnDwswocSFWXTY2gOlYMdxvxZwppIzt4G0 hRznMTzOhjgt5cEwMd2o12qumHMa85ByOciykxLtHTRdiy1x08AZYfzPosBFNL2lpPRH gJQ1YSt0wWONOeQU4RvCUkGi44538CosNI/Dy8lsMZQytcyYlL9BZmR1WjDYTK3e2Pfm heD5CUQbiiAOVxV4PIZp+gXI1NdudcgWt/0cdiD5qsx2PMrVbUqAQx2RYV7er02lnr9i V94Q== X-Gm-Message-State: APjAAAU3hkalwEMB8m0Muwt2iuzqM4H/goLcLfvVHJoXOLiDgzaQxgvk jghUzcAwpZtDeg/qolyo01JK3xX0 X-Google-Smtp-Source: APXvYqyd4SBXAg/OLz0WonP97IzisOmQxJMm8Zo3NSdZyWygTR1VTkS61PRnCKmYNpu6NXAae9eCiw== X-Received: by 2002:a1c:a749:: with SMTP id q70mr4136265wme.151.1553880341887; Fri, 29 Mar 2019 10:25:41 -0700 (PDT) Received: from kali.home (lfbn-ren-1-314-196.w2-10.abo.wanadoo.fr. [2.10.15.196]) by smtp.gmail.com with ESMTPSA id j11sm3453132wrw.85.2019.03.29.10.25.40 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 29 Mar 2019 10:25:41 -0700 (PDT) From: Fabrice Fontaine To: buildroot@buildroot.org Date: Fri, 29 Mar 2019 18:25:27 +0100 Message-Id: <20190329172528.22787-1-fontaine.fabrice@gmail.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Subject: [Buildroot] [PATCH 1/2] package/quota: bump to version 4.05 X-BeenThere: buildroot@busybox.net X-Mailman-Version: 2.1.29 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Jarkko Sakkinen , Thomas Petazzoni , Fabrice Fontaine , Khem Raj Errors-To: buildroot-bounces@busybox.net Sender: "buildroot" - Add COPYING and its hash to license files - Drop all patches (not needed anymore or already in version) - Drop autoreconf - Drop --disable-strip-binaries (not available anymore) - Drop all "hacks" as package now use pkg-config and automake Signed-off-by: Fabrice Fontaine --- package/quota/0001-tools-getrpcbynumber.patch | 42 ---- package/quota/0002-fix-static-linking.patch | 55 ----- .../quota/0003-remove-non-posix-types.patch | 200 ------------------ package/quota/0004-import-sys-cdefs.patch | 18 -- package/quota/0005-include-fcntl.patch | 20 -- package/quota/quota.hash | 10 +- package/quota/quota.mk | 25 +-- 7 files changed, 11 insertions(+), 359 deletions(-) delete mode 100644 package/quota/0001-tools-getrpcbynumber.patch delete mode 100644 package/quota/0002-fix-static-linking.patch delete mode 100644 package/quota/0003-remove-non-posix-types.patch delete mode 100644 package/quota/0004-import-sys-cdefs.patch delete mode 100644 package/quota/0005-include-fcntl.patch diff --git a/package/quota/0001-tools-getrpcbynumber.patch b/package/quota/0001-tools-getrpcbynumber.patch deleted file mode 100644 index 899db914f0..0000000000 --- a/package/quota/0001-tools-getrpcbynumber.patch +++ /dev/null @@ -1,42 +0,0 @@ -allow usage of getrpcbynumber() instead of getrpcbynumber_r() - -libtirpc does not implement the reentrant function getrpcbynumber_r(), -so allow quota to use the non-reentrant version getrpcbynumber(). This -should not be a problem as quota tools are not multi-threaded. - -Signed-off-by: Thomas Petazzoni - -Index: b/configure.in -=================================================================== ---- a/configure.in -+++ b/configure.in -@@ -182,6 +182,12 @@ - AC_C_CONST - AC_C_INLINE - -+AC_CHECK_FUNCS([getrpcbynumber getrpcbynumber_r]) -+ -+if test "$ac_cv_func_getrpcbynumber_r" != "yes" -a "$ac_cv_func_getrpcbynumber" != "yes"; then -+ AC_MSG_ERROR([Neither getrpcbynumber_r nor getrpcbynumber are available]) -+fi -+ - AC_ARG_ENABLE(rpc, - [ --enable-rpc=[yes/no] Enable RPC support [default=yes].], - , -Index: b/svc_socket.c -=================================================================== ---- a/svc_socket.c -+++ b/svc_socket.c -@@ -55,7 +55,12 @@ - addr.sin_family = AF_INET; - - if (!port) { -+#if HAVE_GETRPCBYNUMBER_R - ret = getrpcbynumber_r(number, &rpcbuf, rpcdata, sizeof(rpcdata), &rpcp); -+#else -+ rpcp = getrpcbynumber(number); -+ ret = 0; -+#endif - if (ret == 0 && rpcp != NULL) { - /* First try name */ - ret = getservbyname_r(rpcp->r_name, proto, &servbuf, servdata, diff --git a/package/quota/0002-fix-static-linking.patch b/package/quota/0002-fix-static-linking.patch deleted file mode 100644 index fd73f64eb6..0000000000 --- a/package/quota/0002-fix-static-linking.patch +++ /dev/null @@ -1,55 +0,0 @@ -Use $(LIBS) properly - -This patch makes sure the quota build system uses $(LIBS) where -appropriate, so that it can be used to link with additional libraries, -which is needed when linking statically. - -Signed-off-by: Thomas Petazzoni - -Index: b/Makefile.in -=================================================================== ---- a/Makefile.in -+++ b/Makefile.in -@@ -105,30 +105,40 @@ - -$(INSTALL) -m $(DEF_MAN_MODE) *.8 $(ROOTDIR)$(mandir)/man8 - - quotaon: quotaon.o quotaon_xfs.o $(LIBOBJS) -+ $(CC) $(LDFLAGS) -o $@ $^ $(LIBS) - - quotacheck: quotacheck.o quotacheck_v1.o quotacheck_v2.o quotaops.o $(LIBOBJS) -- $(CC) $(LDFLAGS) -o $@ $^ $(EXT2LIBS) -+ $(CC) $(LDFLAGS) -o $@ $^ $(EXT2LIBS) $(LIBS) - - quota: quota.o quotaops.o $(LIBOBJS) -+ $(CC) $(LDFLAGS) -o $@ $^ $(LIBS) - - quotasync: quotasync.o $(LIBOBJS) -+ $(CC) $(LDFLAGS) -o $@ $^ $(LIBS) - - quot: quot.o $(LIBOBJS) -+ $(CC) $(LDFLAGS) -o $@ $^ $(LIBS) - - repquota: repquota.o $(LIBOBJS) -+ $(CC) $(LDFLAGS) -o $@ $^ $(LIBS) - - warnquota: warnquota.o $(LIBOBJS) -- $(CC) $(LDFLAGS) -o $@ $^ $(LDAPLIBS) -+ $(CC) $(LDFLAGS) -o $@ $^ $(LDAPLIBS) $(LIBS) - - quotastats: quotastats.o common.o pot.o -+ $(CC) $(LDFLAGS) -o $@ $^ $(LIBS) - - xqmstats: xqmstats.o common.o pot.o -+ $(CC) $(LDFLAGS) -o $@ $^ $(LIBS) - - edquota: edquota.o quotaops.o $(LIBOBJS) -+ $(CC) $(LDFLAGS) -o $@ $^ $(LIBS) - - setquota: setquota.o quotaops.o $(LIBOBJS) -+ $(CC) $(LDFLAGS) -o $@ $^ $(LIBS) - - convertquota: convertquota.o $(LIBOBJS) -+ $(CC) $(LDFLAGS) -o $@ $^ $(LIBS) - - rpc.rquotad: rquota_server.o rquota_svc.o svc_socket.o $(LIBOBJS) - $(CC) $(LDFLAGS) -o $@ $^ $(LIBS) diff --git a/package/quota/0003-remove-non-posix-types.patch b/package/quota/0003-remove-non-posix-types.patch deleted file mode 100644 index 869c85f23e..0000000000 --- a/package/quota/0003-remove-non-posix-types.patch +++ /dev/null @@ -1,200 +0,0 @@ -Use proper C99 integer types - -Upstream-Status: Pending - -Signed-off-by: Khem Raj -[Thomas: borrowed from OpenEmbedded.] -Signed-off-by: Thomas Petazzoni - -Index: quota-tools/bylabel.c -=================================================================== ---- quota-tools.orig/bylabel.c -+++ quota-tools/bylabel.c -@@ -20,6 +20,7 @@ - #include - #include - #include -+#include - - #include "bylabel.h" - #include "common.h" -@@ -37,32 +38,32 @@ static struct uuidCache_s { - - #define EXT2_SUPER_MAGIC 0xEF53 - struct ext2_super_block { -- u_char s_dummy1[56]; -- u_char s_magic[2]; -- u_char s_dummy2[46]; -- u_char s_uuid[16]; -- u_char s_volume_name[16]; -+ uint8_t s_dummy1[56]; -+ uint8_t s_magic[2]; -+ uint8_t s_dummy2[46]; -+ uint8_t s_uuid[16]; -+ uint8_t s_volume_name[16]; - }; - --#define ext2magic(s) ((uint) s.s_magic[0] + (((uint) s.s_magic[1]) << 8)) -+#define ext2magic(s) ((uint32_t) s.s_magic[0] + (((uint32_t) s.s_magic[1]) << 8)) - - #define XFS_SUPER_MAGIC "XFSB" - #define XFS_SUPER_MAGIC2 "BSFX" - struct xfs_super_block { -- u_char s_magic[4]; -- u_char s_dummy[28]; -- u_char s_uuid[16]; -- u_char s_dummy2[60]; -- u_char s_fsname[12]; -+ uint8_t s_magic[4]; -+ uint8_t s_dummy[28]; -+ uint8_t s_uuid[16]; -+ uint8_t s_dummy2[60]; -+ uint8_t s_fsname[12]; - }; - - #define REISER_SUPER_MAGIC "ReIsEr2Fs" - struct reiserfs_super_block { -- u_char s_dummy1[52]; -- u_char s_magic[10]; -- u_char s_dummy2[22]; -- u_char s_uuid[16]; -- u_char s_volume_name[16]; -+ uint8_t s_dummy1[52]; -+ uint8_t s_magic[10]; -+ uint8_t s_dummy2[22]; -+ uint8_t s_uuid[16]; -+ uint8_t s_volume_name[16]; - }; - - static inline unsigned short swapped(unsigned short a) -@@ -222,7 +223,7 @@ static char *get_spec_by_x(int n, const - return NULL; - } - --static u_char fromhex(char c) -+static uint8_t fromhex(char c) - { - if (isdigit(c)) - return (c - '0'); -@@ -234,7 +235,7 @@ static u_char fromhex(char c) - - static char *get_spec_by_uuid(const char *s) - { -- u_char uuid[16]; -+ uint8_t uuid[16]; - int i; - - if (strlen(s) != 36 || s[8] != '-' || s[13] != '-' || s[18] != '-' || s[23] != '-') -Index: quota-tools/quot.c -=================================================================== ---- quota-tools.orig/quot.c -+++ quota-tools/quot.c -@@ -47,6 +47,7 @@ - #include - #include - #include -+#include - - #include "pot.h" - #include "quot.h" -@@ -56,8 +57,8 @@ - #include "quotasys.h" - - #define TSIZE 500 --static __uint64_t sizes[TSIZE]; --static __uint64_t overflow; -+static uint64_t sizes[TSIZE]; -+static uint64_t overflow; - - static int aflag; - static int cflag; -@@ -72,7 +73,7 @@ static time_t now; - char *progname; - - static void mounttable(void); --static char *idname(__uint32_t, int); -+static char *idname(uint32_t, int); - static void report(const char *, const char *, int); - static void creport(const char *, const char *); - -@@ -173,7 +174,7 @@ static int qcmp(du_t * p1, du_t * p2) - static void creport(const char *file, const char *fsdir) - { - int i; -- __uint64_t t = 0; -+ uint64_t t = 0; - - printf(_("%s (%s):\n"), file, fsdir); - for (i = 0; i < TSIZE - 1; i++) -@@ -219,7 +220,7 @@ static void report(const char *file, con - } - } - --static idcache_t *getnextent(int type, __uint32_t id, int byid) -+static idcache_t *getnextent(int type, uint32_t id, int byid) - { - struct passwd *pw; - struct group *gr; -@@ -240,7 +241,7 @@ static idcache_t *getnextent(int type, _ - return &idc; - } - --static char *idname(__uint32_t id, int type) -+static char *idname(uint32_t id, int type) - { - idcache_t *ncp, *idp; - static idcache_t nc[2][NID]; -@@ -286,8 +287,8 @@ static void acctXFS(xfs_bstat_t *p) - { - register du_t *dp; - du_t **hp; -- __uint64_t size; -- __uint32_t i, id; -+ uint64_t size; -+ uint32_t i, id; - - if ((p->bs_mode & S_IFMT) == 0) - return; -Index: quota-tools/quot.h -=================================================================== ---- quota-tools.orig/quot.h -+++ quota-tools/quot.h -@@ -35,18 +35,18 @@ - #define SEC24HR (60*60*24) /* seconds per day */ - - typedef struct { -- __uint32_t id; -+ uint32_t id; - char name[UT_NAMESIZE + 1]; - } idcache_t; - - typedef struct du { - struct du *next; -- __uint64_t blocks; -- __uint64_t blocks30; -- __uint64_t blocks60; -- __uint64_t blocks90; -- __uint64_t nfiles; -- __uint32_t id; -+ uint64_t blocks; -+ uint64_t blocks30; -+ uint64_t blocks60; -+ uint64_t blocks90; -+ uint64_t nfiles; -+ uint32_t id; - } du_t; - - #define NDU 60000 -Index: quota-tools/rquota_server.c -=================================================================== ---- quota-tools.orig/rquota_server.c -+++ quota-tools/rquota_server.c -@@ -60,7 +60,7 @@ extern char nfs_pseudoroot[PATH_MAX]; - */ - extern struct authunix_parms *unix_cred; - --int in_group(gid_t * gids, u_int len, gid_t gid) -+int in_group(gid_t * gids, uint32_t len, gid_t gid) - { - gid_t *gidsp = gids + len; - diff --git a/package/quota/0004-import-sys-cdefs.patch b/package/quota/0004-import-sys-cdefs.patch deleted file mode 100644 index 9acd1fe4f9..0000000000 --- a/package/quota/0004-import-sys-cdefs.patch +++ /dev/null @@ -1,18 +0,0 @@ -Add missing include - -quota.h uses the __P definition, so it must include . - -Signed-off-by: Thomas Petazzoni - -Index: b/quota.h -=================================================================== ---- a/quota.h -+++ b/quota.h -@@ -2,6 +2,7 @@ - #define GUARD_QUOTA_H - - #include -+#include - - typedef u_int32_t qid_t; /* Type in which we store ids in memory */ - typedef int64_t qsize_t; /* Type in which we store size limitations */ diff --git a/package/quota/0005-include-fcntl.patch b/package/quota/0005-include-fcntl.patch deleted file mode 100644 index fe7ea98831..0000000000 --- a/package/quota/0005-include-fcntl.patch +++ /dev/null @@ -1,20 +0,0 @@ -Include to get loff_t definition - -Fixes the following build issue with musl: - -dqblk_v2.h:32:2: error: unknown type name ‘loff_t’ - -Signed-off-by: Thomas Petazzoni - -Index: b/dqblk_v2.h -=================================================================== ---- a/dqblk_v2.h -+++ b/dqblk_v2.h -@@ -8,6 +8,7 @@ - #define GUARD_DQBLK_V2_H - - #include -+#include - #include "quota_tree.h" - - #define Q_V2_GETQUOTA 0x0D00 /* Get limits and usage */ diff --git a/package/quota/quota.hash b/package/quota/quota.hash index 5e49693646..dc58b2842c 100644 --- a/package/quota/quota.hash +++ b/package/quota/quota.hash @@ -1,3 +1,7 @@ -# From http://sourceforge.net/projects/linuxquota/files/quota-tools/4.01/ (click on info button) -md5 5c2c31e321d2e1322ce12d69ae5c66d6 quota-4.01.tar.gz -sha1 64d2ab8b039cfea1aa4bd9e77e8c373488a7f0bf quota-4.01.tar.gz +# From http://sourceforge.net/projects/linuxquota/files/quota-tools/4.05/ (click on info button) +md5 1c1dbd2cd3d680ccac661239b067e147 quota-4.05.tar.gz +sha1 d23711f3b204e0a86b8378c32545c95fb149168d quota-4.05.tar.gz + +# Locally calculated +sha256 ef3b5b5d1014ed1344b46c1826145e20cbef8db967b522403c9a060761cf7ab9 quota-4.05.tar.gz +sha256 35b2d9797b83bce16076da9c3273f264f50b8d02f492ee32cd4c51ba6897bceb COPYING diff --git a/package/quota/quota.mk b/package/quota/quota.mk index 38e18a60c2..46ef243ecc 100644 --- a/package/quota/quota.mk +++ b/package/quota/quota.mk @@ -4,41 +4,24 @@ # ################################################################################ -QUOTA_VERSION = 4.01 +QUOTA_VERSION = 4.05 QUOTA_SITE = http://downloads.sourceforge.net/project/linuxquota/quota-tools/$(QUOTA_VERSION) QUOTA_DEPENDENCIES = $(TARGET_NLS_DEPENDENCIES) host-nfs-utils -QUOTA_AUTORECONF = YES QUOTA_LICENSE = GPL-2.0+ -QUOTA_CONF_OPTS = --disable-strip-binaries +QUOTA_LICENSE_FILES = COPYING QUOTA_LIBS = $(TARGET_NLS_LIBS) -QUOTA_CFLAGS = $(TARGET_CFLAGS) - ifeq ($(BR2_PACKAGE_E2FSPROGS),y) -QUOTA_DEPENDENCIES += e2fsprogs +QUOTA_DEPENDENCIES += host-pkgconf e2fsprogs QUOTA_CONF_OPTS += --enable-ext2direct -# quote does not use pkg-config to find e2fsprogs, so it does not know it -# may require -pthreads in case of static build -ifeq ($(BR2_STATIC_LIBS)$(BR2_TOOLCHAIN_HAS_THREADS),yy) -QUOTA_LIBS += -pthread -endif else QUOTA_CONF_OPTS += --disable-ext2direct endif ifeq ($(BR2_PACKAGE_LIBTIRPC),y) QUOTA_DEPENDENCIES += libtirpc host-pkgconf -QUOTA_CFLAGS += `$(PKG_CONFIG_HOST_BINARY) --cflags libtirpc` -QUOTA_LIBS += `$(PKG_CONFIG_HOST_BINARY) --libs libtirpc` endif -QUOTA_MAKE_OPTS = $(TARGET_CONFIGURE_OPTS) CFLAGS="$(QUOTA_CFLAGS) -D_GNU_SOURCE" LIBS="$(QUOTA_LIBS)" -QUOTA_CONF_ENV = \ - CFLAGS="$(QUOTA_CFLAGS) -D_GNU_SOURCE" LIBS="$(QUOTA_LIBS)" - -# Package uses autoconf but not automake. -QUOTA_INSTALL_TARGET_OPTS = \ - ROOTDIR=$(TARGET_DIR) \ - install +QUOTA_CONF_ENV = LIBS="$(QUOTA_LIBS)" $(eval $(autotools-package))