diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..1a74594
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+SOURCES/quota-4.04.tar.gz
diff --git a/.quota.metadata b/.quota.metadata
new file mode 100644
index 0000000..470ffcd
--- /dev/null
+++ b/.quota.metadata
@@ -0,0 +1 @@
+38e6cc7538d504891a8454bbdabef058bd1adc11 SOURCES/quota-4.04.tar.gz
diff --git a/SOURCES/quota-4.03-Validate-upper-bound-of-RPC-port.patch b/SOURCES/quota-4.03-Validate-upper-bound-of-RPC-port.patch
new file mode 100644
index 0000000..aa0d12b
--- /dev/null
+++ b/SOURCES/quota-4.03-Validate-upper-bound-of-RPC-port.patch
@@ -0,0 +1,29 @@
+From c9a2a6fea0668579f5fb8d77cb219f51d104581f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
+Date: Wed, 6 Jan 2016 17:58:22 +0100
+Subject: [PATCH] Validate upper bound of RPC port
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ rquota_svc.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/rquota_svc.c b/rquota_svc.c
+index 338b70f..93472e0 100644
+--- a/rquota_svc.c
++++ b/rquota_svc.c
+@@ -142,7 +142,7 @@ static void parse_options(int argc, char **argv)
+ 				break;
+ 			case 'p': 
+ 				port = strtol(optarg, &endptr, 0);
+-				if (*endptr || port <= 0) {
++				if (*endptr || port <= 0 || port > 0xffff) {
+ 					errstr(_("Illegal port number: %s\n"), optarg);
+ 					show_help();
+ 					exit(1);
+-- 
+2.5.0
+
diff --git a/SOURCES/quota-4.04-Add-TIRPC_CFLAGS-globally-to-CFLAGS-for-RPC-support-.patch b/SOURCES/quota-4.04-Add-TIRPC_CFLAGS-globally-to-CFLAGS-for-RPC-support-.patch
new file mode 100644
index 0000000..5f63cde
--- /dev/null
+++ b/SOURCES/quota-4.04-Add-TIRPC_CFLAGS-globally-to-CFLAGS-for-RPC-support-.patch
@@ -0,0 +1,43 @@
+From bbb8819fc0f6ed379a05d635a61bcf9c8986079f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20K=2E=20H=C3=BCttel?= <dilfridge@gentoo.org>
+Date: Sat, 16 Sep 2017 13:09:43 +0200
+Subject: [PATCH] Add $(TIRPC_CFLAGS) globally to CFLAGS for RPC support,
+ needed for libc 2.26
+
+---
+ Makefile.am | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 8d80bee..278290a 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -51,6 +51,8 @@ EXTRA_DIST = \
+ noinst_LIBRARIES = libquota.a
+ 
+ if WITH_RPC
++CFLAGS += $(TIRPC_CFLAGS)
++
+ rpcsvcdir = $(includedir)/rpcsvc
+ rpcsvc_DATA = \
+ 	rquota.h \
+@@ -100,8 +102,6 @@ libquota_a_SOURCES = \
+ 	mntopt.h \
+ 	pot.c \
+ 	pot.h
+-libquota_a_CFLAGS = \
+-	$(TIRPC_CFLAGS)
+ libquota_a_LIBADD = \
+ 	$(RPCLIBS)
+ 
+@@ -235,7 +235,6 @@ rpc_rquotad_SOURCES = \
+ 	rquota_server.c \
+ 	rquota_svc.c \
+ 	svc_socket.c
+-rpc_rquotad_CFLAGS = $(TIRPC_CFLAGS)
+ rpc_rquotad_LDADD = \
+ 	libquota.a \
+ 	$(WRAP_LIBS) \
+-- 
+2.14.1
+
diff --git a/SOURCES/quota-4.04-Install-rquota-3-only-if-RPC-is-enabled.patch b/SOURCES/quota-4.04-Install-rquota-3-only-if-RPC-is-enabled.patch
new file mode 100644
index 0000000..a35bf5f
--- /dev/null
+++ b/SOURCES/quota-4.04-Install-rquota-3-only-if-RPC-is-enabled.patch
@@ -0,0 +1,44 @@
+From b5ed9878d60bf2c6764ce8e1de4f69e64c4bdfaf Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
+Date: Wed, 6 Sep 2017 16:25:09 +0200
+Subject: [PATCH] Install rquota(3) only if RPC is enabled
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+rquote(3) documents rpcsvc header files. Thus it should be installed
+only if the the header files are installed and that is only if RPC
+configure feature is enabled.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ Makefile.am | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 8d80bee..9b852d2 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -27,7 +27,6 @@ man_MANS = \
+ 	quota.1 \
+ 	quot.8 \
+ 	repquota.8 \
+-	rquota.3 \
+ 	setquota.8 \
+ 	warnquota.conf.5 \
+ 	warnquota.8 \
+@@ -69,7 +68,10 @@ librpcclient_a_CFLAGS = -Wno-unused
+ RPCLIBS = librpcclient.a
+ BUILT_SOURCES = rquota.h rquota.c rquota_clnt.c
+ CLEANFILES = rquota.c rquota.h rquota_clnt.c
+-man_MANS += rpc.rquotad.8
++man_MANS += \
++	rpc.rquotad.8 \
++	rquota.3
++
+ endif
+ 
+ libquota_a_SOURCES = \
+-- 
+2.13.5
+
diff --git a/SOURCES/quota-4.04-Listen-on-a-TCP-socket.patch b/SOURCES/quota-4.04-Listen-on-a-TCP-socket.patch
new file mode 100644
index 0000000..cf1bd4a
--- /dev/null
+++ b/SOURCES/quota-4.04-Listen-on-a-TCP-socket.patch
@@ -0,0 +1,77 @@
+From 31ecd29b3b3f51145fd78f63087c10e9fcadf999 Mon Sep 17 00:00:00 2001
+From: Steve Dickson <steved@redhat.com>
+Date: Tue, 22 May 2018 12:41:59 +0200
+Subject: [PATCH] Listen on a TCP socket
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+rpc.rquotad spins in libtirpc's rendezvous_request() on accepting TCP
+connections because the polled TCP socket is not listening:
+
+poll([{fd=4, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}, {fd=5,
+  events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}, {fd=6,
+  events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}, {fd=7,
+  events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}], 4, -1) = 2 ([{fd=5,
+  revents=POLLHUP}, {fd=7, revents=POLLHUP}])
+accept(5, 0x7ffe61698700, [128])        = -1 EINVAL (Invalid argument)
+accept(7, 0x7ffe61698700, [128])        = -1 EINVAL (Invalid argument)
+
+The polled descriptors are:
+
+rpc.rquot 21981 root    4u  IPv4 80449159      0t0      UDP *:rquotad
+rpc.rquot 21981 root    5u  sock      0,9      0t0 80449162 protocol: TCP
+rpc.rquot 21981 root    6u  IPv6 80449165      0t0      UDP *:rquotad
+rpc.rquot 21981 root    7u  sock      0,9      0t0 80449168 protocol: TCPv6
+
+That results into a high CPU usage just after staring rpc.rquotad
+process.
+
+This patch adds a listen() call to svc_create_sock()
+routine which is needed with libtirpc version of svc_tli_create()
+as well as a needed IPv6 setsockopt().
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ svc_socket.c | 18 ++++++++++++++++++
+ 1 file changed, 18 insertions(+)
+
+diff --git a/svc_socket.c b/svc_socket.c
+index 8a44604..d2e3abf 100644
+--- a/svc_socket.c
++++ b/svc_socket.c
+@@ -118,6 +118,15 @@ static int svc_create_sock(struct addrinfo *ai)
+ 		return -1;
+ 	}
+ 
++	if (ai->ai_family == AF_INET6) {
++		if (setsockopt(fd, IPPROTO_IPV6, IPV6_V6ONLY,
++				&optval, sizeof(optval)) < 0) {
++			errstr(_("Cannot set IPv6 socket options: %s\n"), strerror(errno));
++			close(fd);
++			return -1;
++		}
++	}
++
+ 	if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof(optval)) < 0) {
+ 		errstr(_("Cannot set socket options: %s\n"), strerror(errno));
+ 		close(fd);
+@@ -129,6 +138,15 @@ static int svc_create_sock(struct addrinfo *ai)
+ 		close(fd);
+ 		return -1;
+ 	}
++
++	if (ai->ai_protocol == IPPROTO_TCP) {
++		if (listen(fd, SOMAXCONN) < 0) {
++			errstr(_("Cannot listen to address: %s\n"), strerror(errno));
++			close(fd);
++			return -1;
++		}
++	}
++
+ 	return fd;
+ }
+ 
+-- 
+2.14.3
+
diff --git a/SOURCES/quota-4.04-convertquota-Fix-a-file-descriptor-leak-in-convert_e.patch b/SOURCES/quota-4.04-convertquota-Fix-a-file-descriptor-leak-in-convert_e.patch
new file mode 100644
index 0000000..e8f7ba0
--- /dev/null
+++ b/SOURCES/quota-4.04-convertquota-Fix-a-file-descriptor-leak-in-convert_e.patch
@@ -0,0 +1,29 @@
+From 78403029375dbfe809b5b1034301dc687a94397f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
+Date: Thu, 23 Aug 2018 11:09:10 +0200
+Subject: [PATCH 1/3] convertquota: Fix a file descriptor leak in
+ convert_endian()
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ convertquota.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/convertquota.c b/convertquota.c
+index d913e05..6c8a553 100644
+--- a/convertquota.c
++++ b/convertquota.c
+@@ -363,6 +363,7 @@ static int convert_endian(int type, struct mount_entry *mnt)
+ 	}
+ 	ret = endian_scan_structures(ofd, type);
+ 	end_io(qn);
++	close(ofd);
+ 	if (ret < 0)
+ 		return ret;
+ 	
+-- 
+2.14.4
+
diff --git a/SOURCES/quota-4.04-quota-1-Distinguish-between-none-quota-limits-and-no.patch b/SOURCES/quota-4.04-quota-1-Distinguish-between-none-quota-limits-and-no.patch
new file mode 100644
index 0000000..ca1c68e
--- /dev/null
+++ b/SOURCES/quota-4.04-quota-1-Distinguish-between-none-quota-limits-and-no.patch
@@ -0,0 +1,72 @@
+From bd36c3cf438ac4fd44b6779714ad0a44453d41b5 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
+Date: Mon, 16 Jul 2018 11:22:53 +0200
+Subject: [PATCH] quota(1): Distinguish between none quota limits and no
+ allocated resources
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+If a user does not occupies any space or inodes on a file system but
+quota limits are set, quota(1) tool still reports "none":
+
+  # quota -u test
+  Disk quotas for user test (uid 500): none
+
+That's because the tool skips printing details for file systems
+without any used resources but uses the shares the message with file
+system without any quota limits.
+
+This patch makes the distinction and changes "none" message into "no
+quota limits set" and "no limited resources used" respectively.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ quota.c | 15 ++++++++++-----
+ 1 file changed, 10 insertions(+), 5 deletions(-)
+
+diff --git a/quota.c b/quota.c
+index 15c2a53..0303c7d 100644
+--- a/quota.c
++++ b/quota.c
+@@ -188,7 +188,7 @@ static int showquotas(int type, qid_t id, int mntcnt, char **mnt)
+ 	char timebuf[MAXTIMELEN];
+ 	char name[MAXNAMELEN];
+ 	struct quota_handle **handles;
+-	int lines = 0, bover, iover, over;
++	int lines = 0, bover, iover, over, unlimited;
+ 	time_t now;
+ 
+ 	time(&now);
+@@ -204,11 +204,16 @@ static int showquotas(int type, qid_t id, int mntcnt, char **mnt)
+ 		goto out_handles;
+ 	}
+ 	over = 0;
++	unlimited = 1;
+ 	for (q = qlist; q; q = q->dq_next) {
+ 		bover = iover = 0;
+-		if (!(flags & FL_VERBOSE) && !q->dq_dqb.dqb_isoftlimit && !q->dq_dqb.dqb_ihardlimit
+-		    && !q->dq_dqb.dqb_bsoftlimit && !q->dq_dqb.dqb_bhardlimit)
+-			continue;
++		if (!q->dq_dqb.dqb_isoftlimit && !q->dq_dqb.dqb_ihardlimit
++		    && !q->dq_dqb.dqb_bsoftlimit && !q->dq_dqb.dqb_bhardlimit) {
++			if (!(flags & FL_VERBOSE))
++				continue;
++		} else {
++			unlimited = 0;
++		}
+ 		msgi = NULL;
+ 		if (q->dq_dqb.dqb_ihardlimit && q->dq_dqb.dqb_curinodes >= q->dq_dqb.dqb_ihardlimit) {
+ 			msgi = _("File limit reached on");
+@@ -300,7 +305,7 @@ static int showquotas(int type, qid_t id, int mntcnt, char **mnt)
+ 		}
+ 	}
+ 	if (!(flags & FL_QUIET) && !lines && qlist)
+-		heading(type, id, name, _("none"));
++		heading(type, id, name, unlimited ? _("none") : _("no limited resources used"));
+ 	freeprivs(qlist);
+ out_handles:
+ 	dispose_handle_list(handles);
+-- 
+2.14.4
+
diff --git a/SOURCES/quota-4.04-quotacheck-Avoid-question-in-non-interactive-mode.patch b/SOURCES/quota-4.04-quotacheck-Avoid-question-in-non-interactive-mode.patch
new file mode 100644
index 0000000..3ad605d
--- /dev/null
+++ b/SOURCES/quota-4.04-quotacheck-Avoid-question-in-non-interactive-mode.patch
@@ -0,0 +1,36 @@
+From 4179911dc38af1b6499704a7f7fb710a40c95bdb Mon Sep 17 00:00:00 2001
+From: Jan Kara <jack@suse.cz>
+Date: Mon, 5 Feb 2018 15:39:12 +0100
+Subject: [PATCH] quotacheck: Avoid question in non-interactive mode
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+A question when quota file version is incorrect is asked even if
+quotacheck is run in non-interactive mode. Avoid asking the question in
+that case and fail the check instead.
+
+Reproted-by: Christoph Biedl <debian.axhn@manchmal.in-ulm.de>
+Signed-off-by: Jan Kara <jack@suse.cz>
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ quotacheck_v2.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/quotacheck_v2.c b/quotacheck_v2.c
+index 4cc8558..86fbf42 100644
+--- a/quotacheck_v2.c
++++ b/quotacheck_v2.c
+@@ -363,7 +363,8 @@ static int check_header(char *filename, int fd, int type, int version)
+ 			 "specified on command line (%d). Quota file header "
+ 			 "may be corrupted.\n"),
+ 		       le32toh(head.dqh_version), version);
+-		if (!ask_yn(_("Continue checking assuming version from command line?"), 1))
++		if (!(flags & FL_INTERACTIVE) ||
++		    !ask_yn(_("Continue checking assuming version from command line?"), 1))
+ 			return -1;
+ 		detected_versions[type] = version;
+ 	} else
+-- 
+2.13.6
+
diff --git a/SOURCES/quota-4.04-quotacheck-Fail-check-if-quota-file-magic-is-invalid.patch b/SOURCES/quota-4.04-quotacheck-Fail-check-if-quota-file-magic-is-invalid.patch
new file mode 100644
index 0000000..8d99cec
--- /dev/null
+++ b/SOURCES/quota-4.04-quotacheck-Fail-check-if-quota-file-magic-is-invalid.patch
@@ -0,0 +1,35 @@
+From b9525abadba082073e20e54ee7ad2423fc1ae6a8 Mon Sep 17 00:00:00 2001
+From: Jan Kara <jack@suse.cz>
+Date: Mon, 5 Feb 2018 16:27:59 +0100
+Subject: [PATCH] quotacheck: Fail check if quota file magic is invalid
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Currently quotacheck will just continue if quotafile magic is invalid.
+Instead ask whether we should continue assuming quota format passed from
+the command line.
+
+Signed-off-by: Jan Kara <jack@suse.cz>
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ quotacheck_v2.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/quotacheck_v2.c b/quotacheck_v2.c
+index 86fbf42..465765b 100644
+--- a/quotacheck_v2.c
++++ b/quotacheck_v2.c
+@@ -357,6 +357,9 @@ static int check_header(char *filename, int fd, int type, int version)
+ 	    le32toh(head.dqh_version) > known_versions[type]) {
+ 		errstr(_("WARNING - Quota file %s has corrupted headers\n"),
+ 			filename);
++		if (!(flags & FL_INTERACTIVE) ||
++		    !ask_yn(_("Continue checking assuming format from command line?"), 0))
++			return -1;
+ 	}
+ 	if (le32toh(head.dqh_version) != version) {
+ 		errstr(_("Quota file format version %d does not match the one "
+-- 
+2.13.6
+
diff --git a/SOURCES/quota-4.04-quotacheck-Report-error-when-caching-of-quota-file-f.patch b/SOURCES/quota-4.04-quotacheck-Report-error-when-caching-of-quota-file-f.patch
new file mode 100644
index 0000000..cc363db
--- /dev/null
+++ b/SOURCES/quota-4.04-quotacheck-Report-error-when-caching-of-quota-file-f.patch
@@ -0,0 +1,88 @@
+From 7b6dfd6390476ec7b811c76e4e2653db2994cad4 Mon Sep 17 00:00:00 2001
+From: Jan Kara <jack@suse.cz>
+Date: Mon, 5 Feb 2018 15:54:54 +0100
+Subject: [PATCH] quotacheck: Report error when caching of quota file fails
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Currently quotacheck returns with zero exit code even though caching of
+quota file fails. Fix it to return with non-zero exit code in that case
+as expected.
+
+Reported-by: Christoph Biedl <debian.axhn@manchmal.in-ulm.de
+Signed-off-by: Jan Kara <jack@suse.cz>
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ quotacheck.c | 29 ++++++++++++++++++++++-------
+ 1 file changed, 22 insertions(+), 7 deletions(-)
+
+diff --git a/quotacheck.c b/quotacheck.c
+index 9d7940b..b1302b6 100644
+--- a/quotacheck.c
++++ b/quotacheck.c
+@@ -924,6 +924,7 @@ static int check_dir(struct mount_entry *mnt)
+ 	struct stat st;
+ 	int remounted = 0;
+ 	int failed = 0;
++	int ret;
+ 
+ 	if (lstat(mnt->me_dir, &st) < 0)
+ 		die(2, _("Cannot stat mountpoint %s: %s\n"), mnt->me_dir, strerror(errno));
+@@ -939,14 +940,22 @@ static int check_dir(struct mount_entry *mnt)
+ 	 */
+ 	if (cfmt == QF_XFS)
+ 		goto start_scan;
+-	if (ucheck)
+-		if (process_file(mnt, USRQUOTA) < 0)
++	if (ucheck) {
++		ret = process_file(mnt, USRQUOTA);
++		if (ret < 0) {
++			failed |= ret;
+ 			ucheck = 0;
+-	if (gcheck)
+-		if (process_file(mnt, GRPQUOTA) < 0)
++		}
++	}
++	if (gcheck) {
++		ret = process_file(mnt, GRPQUOTA);
++		if (ret < 0) {
++			failed |= ret;
+ 			gcheck = 0;
++		}
++	}
+ 	if (!ucheck && !gcheck)	/* Nothing to check? */
+-		return 0;
++		return failed;
+ 	if (!(flags & FL_NOREMOUNT)) {
+ 		/* Now we try to remount fs read-only to prevent races when scanning filesystem */
+ 		if (mount
+@@ -978,8 +987,11 @@ start_scan:
+ 	    !strcmp(mnt->me_type, MNTTYPE_EXT3) ||
+ 	    !strcmp(mnt->me_type, MNTTYPE_NEXT3) ||
+ 	    !strcmp(mnt->me_type, MNTTYPE_EXT4)) {
+-		if ((failed = ext2_direct_scan(mnt->me_devname)) < 0)
++		ret = ext2_direct_scan(mnt->me_devname);
++		if (ret < 0) {
++			failed |= ret;
+ 			goto out;
++		}
+ 	}
+ 	else {
+ #else
+@@ -987,8 +999,11 @@ start_scan:
+ #endif
+ 		if (flags & FL_VERYVERBOSE)
+ 			putchar('\n');
+-		if ((failed = scan_dir(mnt->me_dir)) < 0)
++		ret = scan_dir(mnt->me_dir);
++		if (ret < 0) {
++			failed |= ret;
+ 			goto out;
++		}
+ 	}
+ 	dirs_done++;
+ 	if (flags & FL_VERBOSE || flags & FL_DEBUG)
+-- 
+2.13.6
+
diff --git a/SOURCES/quota-4.04-quotackeck-Fix-a-directory-descriptor-leak-in-scan_d.patch b/SOURCES/quota-4.04-quotackeck-Fix-a-directory-descriptor-leak-in-scan_d.patch
new file mode 100644
index 0000000..341ce6c
--- /dev/null
+++ b/SOURCES/quota-4.04-quotackeck-Fix-a-directory-descriptor-leak-in-scan_d.patch
@@ -0,0 +1,28 @@
+From 0f255ef2570478a855361937445a57a168c8629d Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
+Date: Thu, 23 Aug 2018 11:23:43 +0200
+Subject: [PATCH 2/3] quotackeck: Fix a directory descriptor leak in scan_dir()
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ quotacheck.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/quotacheck.c b/quotacheck.c
+index fd01dfc..2cdf475 100644
+--- a/quotacheck.c
++++ b/quotacheck.c
+@@ -538,6 +538,7 @@ static int scan_dir(const char *pathname)
+ 		if ((lstat(de->d_name, &st)) == -1) {
+ 			errstr(_("lstat: Cannot stat `%s/%s': %s\nGuess you'd better run fsck first !\nexiting...\n"),
+ 				pathname, de->d_name, strerror(errno));
++			closedir(dp);
+ 			goto out;
+ 		}
+ 
+-- 
+2.14.4
+
diff --git a/SOURCES/quota-4.04-repquota-Fix-output-when-user-2-exists.patch b/SOURCES/quota-4.04-repquota-Fix-output-when-user-2-exists.patch
new file mode 100644
index 0000000..285c5d1
--- /dev/null
+++ b/SOURCES/quota-4.04-repquota-Fix-output-when-user-2-exists.patch
@@ -0,0 +1,59 @@
+From 1806ee01060d363beac01fda28c613ab27dbc4df Mon Sep 17 00:00:00 2001
+From: Jan Kara <jack@suse.cz>
+Date: Wed, 10 Jan 2018 10:18:43 +0100
+Subject: [PATCH] repquota: Fix output when user -2 exists
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Vladimit Meshkov reported that when user -2 exists and user namespaces
+are enabled in the kernel, repquota(8) fails to output anything. He also
+analyzed this is because in such case repquota(8) tries to query info
+for user -1 which is invalid ID, gets error from the kernel, and bails
+out.
+
+Fix the problem by stopping iteration over IDs when we reach ID -1.
+
+Reported-by: Vladimir Meshkov <ubob74@gmail.com>
+Signed-off-by: Jan Kara <jack@suse.cz>
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ quotaio_generic.c | 5 +++++
+ quotaio_xfs.c     | 5 +++++
+ 2 files changed, 10 insertions(+)
+
+diff --git a/quotaio_generic.c b/quotaio_generic.c
+index 025d712..5b23955 100644
+--- a/quotaio_generic.c
++++ b/quotaio_generic.c
+@@ -204,6 +204,11 @@ int vfs_scan_dquots(struct quota_handle *h,
+ 		if (ret < 0)
+ 			break;
+ 		id = kdqblk.dqb_id + 1;
++		/* id -1 is invalid and the last one... */
++		if (id == -1) {
++			errno = ENOENT;
++			break;
++		}
+ 	}
+ 	free(dquot);
+ 
+diff --git a/quotaio_xfs.c b/quotaio_xfs.c
+index 1374cf4..56daf89 100644
+--- a/quotaio_xfs.c
++++ b/quotaio_xfs.c
+@@ -219,6 +219,11 @@ static int xfs_kernel_scan_dquots(struct quota_handle *h,
+ 		if (ret < 0)
+ 			break;
+ 		id = xdqblk.d_id + 1;
++		/* id -1 is invalid and the last one... */
++		if (id == -1) {
++			errno = ENOENT;
++			break;
++		}
+ 	}
+ 	free(dquot);
+ 
+-- 
+2.13.6
+
diff --git a/SOURCES/quota-4.04-rpc-Fix-wrong-limit-for-space-usage.patch b/SOURCES/quota-4.04-rpc-Fix-wrong-limit-for-space-usage.patch
new file mode 100644
index 0000000..5d4ed11
--- /dev/null
+++ b/SOURCES/quota-4.04-rpc-Fix-wrong-limit-for-space-usage.patch
@@ -0,0 +1,35 @@
+From d7694c952073bf2ebb852014d9f979b5e3e7c018 Mon Sep 17 00:00:00 2001
+From: Jan Kara <jack@suse.cz>
+Date: Mon, 28 May 2018 18:08:24 +0200
+Subject: [PATCH] rpc: Fix wrong limit for space usage
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Limit of maximum allowable space usage for RPC transfer was wrongly set
+to ~4GB instead of ~4TB due to overflow in constant initialization. Fix
+it.
+
+Signed-off-by: Jan Kara <jack@suse.cz>
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ quotaio_rpc.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/quotaio_rpc.c b/quotaio_rpc.c
+index 6f25144..edc1e9f 100644
+--- a/quotaio_rpc.c
++++ b/quotaio_rpc.c
+@@ -33,7 +33,8 @@ static int rpc_init_io(struct quota_handle *h)
+ #ifdef RPC
+ 	h->qh_info.dqi_max_b_limit = ~(uint32_t)0;
+ 	h->qh_info.dqi_max_i_limit = ~(uint32_t)0;
+-	h->qh_info.dqi_max_b_usage = (~(uint32_t)0) << QUOTABLOCK_BITS;
++	h->qh_info.dqi_max_b_usage = ((uint64_t)(~(uint32_t)0))
++							 << QUOTABLOCK_BITS;
+ 	h->qh_info.dqi_max_i_usage = ~(uint32_t)0;
+ 	return 0;
+ #else
+-- 
+2.14.3
+
diff --git a/SOURCES/quota-4.04-warnquota-Check-snprintf-for-overflows.patch b/SOURCES/quota-4.04-warnquota-Check-snprintf-for-overflows.patch
new file mode 100644
index 0000000..e59c687
--- /dev/null
+++ b/SOURCES/quota-4.04-warnquota-Check-snprintf-for-overflows.patch
@@ -0,0 +1,76 @@
+From eeef53917864600e0f5ac42ce5c3d884967012a1 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
+Date: Mon, 5 Feb 2018 10:31:47 +0100
+Subject: [PATCH 1/2] warnquota: Check snprintf() for overflows
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+GCC 8 with GNU libc 2.27 prerelease warns:
+
+gcc -DHAVE_CONFIG_H -I.     -g -O2 -Wall -fPIC -I/usr/include/tirpc  -c -o warnquota.o warnquota.c
+warnquota.c: In function ‘lookup_user’:
+warnquota.c:415:29: warning: ‘%s’ directive output may be truncated writing up to 2047 bytes into a region of size 255 [-Wformat-truncation=]
+  snprintf(searchbuf, 256, "(%s=%s)", config->ldap_search_attr, user);
+                             ^~
+warnquota.c:415:2: note: ‘snprintf’ output 4 or more bytes (assuming 2051) into a destination of size 256
+  snprintf(searchbuf, 256, "(%s=%s)", config->ldap_search_attr, user);
+  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+warnquota.c: In function ‘warn_quota’:
+warnquota.c:896:51: warning: ‘%s’ directive output may be truncated writing up to 2047 bytes into a region of size 2041 [-Wformat-truncation=]
+    snprintf(config->ldap_uri, CNF_BUFFER, "ldap://%s:%d", config->ldap_host, config->ldap_port);
+                                                   ^~      ~~~~~~~~~~~~~~~~~
+warnquota.c:896:4: note: ‘snprintf’ output between 10 and 2067 bytes into a destination of size 2048
+    snprintf(config->ldap_uri, CNF_BUFFER, "ldap://%s:%d", config->ldap_host, config->ldap_port);
+    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+This is patch fixes it by catching the cases when snprintf() truncates and
+reporting an error.
+
+Perfect fix would fall back into dynamically allocated buffers but
+I think that would make these corner case too complicated provided
+nobody had yet complained about them.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ warnquota.c | 17 +++++++++++++++--
+ 1 file changed, 15 insertions(+), 2 deletions(-)
+
+diff --git a/warnquota.c b/warnquota.c
+index 073c45e..bc11055 100644
+--- a/warnquota.c
++++ b/warnquota.c
+@@ -412,7 +412,13 @@ static char *lookup_user(struct configparams *config, char *user)
+ 	}
+ 
+ 	/* search for the offender_name in ldap */
+-	snprintf(searchbuf, 256, "(%s=%s)", config->ldap_search_attr, user);
++	if (256 <= snprintf(searchbuf, 256, "(%s=%s)", config->ldap_search_attr,
++		    user)) {
++		errstr(_("Could not format LDAP search filter for %s user and "
++			"%s search attribute due to excessive length.\n"),
++			user, config->ldap_search_attr);
++		return NULL;
++	}
+ 	ret = ldap_search_ext_s(ldapconn,
+ 		config->ldap_basedn, LDAP_SCOPE_SUBTREE,
+ 		searchbuf, NULL, 0, NULL, NULL, NULL,
+@@ -893,7 +899,14 @@ cc_parse_err:
+ 	if (config->use_ldap_mail)
+ 	{
+ 		if (!config->ldap_uri[0]) {
+-			snprintf(config->ldap_uri, CNF_BUFFER, "ldap://%s:%d", config->ldap_host, config->ldap_port);
++			if (CNF_BUFFER <= snprintf(config->ldap_uri, CNF_BUFFER,
++				    "ldap://%s:%d", config->ldap_host,
++				    config->ldap_port)) {
++				errstr(_("Could not format LDAP URI because "
++					    "it's longer than %d bytes.\n"),
++					    CNF_BUFFER);
++				return -1;
++			}
+ 			errstr(_("LDAP library version >= 2.3 detected. Please use LDAP_URI instead of hostname and port.\nGenerated URI %s\n"), config->ldap_uri);
+ 		}
+ 	}
+-- 
+2.13.6
+
diff --git a/SOURCES/quota-4.04-warnquota-Fix-comparing-user-name-to-non-null-termin.patch b/SOURCES/quota-4.04-warnquota-Fix-comparing-user-name-to-non-null-termin.patch
new file mode 100644
index 0000000..27b22ef
--- /dev/null
+++ b/SOURCES/quota-4.04-warnquota-Fix-comparing-user-name-to-non-null-termin.patch
@@ -0,0 +1,74 @@
+From 59b280ebe22eceaf4250cb3b776674619a4d4ece Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
+Date: Mon, 5 Feb 2018 11:07:41 +0100
+Subject: [PATCH] warnquota: Fix comparing user name to non-null-terminated
+ utmp.ut_user
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+GCC 8 with GNU libc 2.27 warns:
+
+gcc -DHAVE_CONFIG_H -I.    -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include  -I/usr/include/libnl3  -g -O2 -Wall -fPIC -I/usr/include/tirpc  -c -o quota_nld-quota_nld.o `test -f 'quota_nld.c' || echo './'`quota_nld.c
+quota_nld.c: In function ‘write_console_warning’:
+quota_nld.c:273:7: warning: ‘strcmp’ argument 2 declared attribute ‘nonstring’ [-Wstringop-overflow=]
+   if (strcmp(user, uent->ut_user))
+       ^~~~~~~~~~~~~~~~~~~~~~~~~~~
+In file included from /usr/include/utmp.h:29,
+                 from quota_nld.c:23:
+/usr/include/bits/utmp.h:65:8: note: argument ‘ut_user’ declared here
+   char ut_user[UT_NAMESIZE]
+        ^~~~~~~
+
+This is because ut_user value misses the terminating null byte if it
+fits exactly into ut_user array, as document in utmp(5):
+
+    String fields are terminated by a null byte ('\0') if they are
+    shorter than  the size of the field.
+
+Recent GCC and glibc recevied compile-time checks and annotations
+(__attribute_nonstring_) that catches these mistakes.
+
+This patch fixes it by using strncmp(3) and by ignoring user names
+that does not fit into utmp log format. It's better not to warn than
+spamming unrelated user.
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+Signed-off-by: Jan Kara <jack@suse.cz>
+---
+ quota_nld.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/quota_nld.c b/quota_nld.c
+index ea541e0..8559f25 100644
+--- a/quota_nld.c
++++ b/quota_nld.c
+@@ -262,6 +262,8 @@ static void write_console_warning(struct quota_warning *warn)
+ 	    warn->warntype == QUOTA_NL_BSOFTBELOW) && !(flags & FL_PRINTBELOW))
+ 		return;
+ 	uid2user(warn->caused_id, user);
++	if (strlen(user) > UT_NAMESIZE)
++		goto skip_utmp;
+ 	strcpy(dev, "/dev/");
+ 
+ 	setutent();
+@@ -270,7 +272,7 @@ static void write_console_warning(struct quota_warning *warn)
+ 		if (uent->ut_type != USER_PROCESS)
+ 			continue;
+ 		/* Entry for a different user? */
+-		if (strcmp(user, uent->ut_user))
++		if (strncmp(user, uent->ut_user, UT_NAMESIZE))
+ 			continue;
+ 		sstrncpy(dev+5, uent->ut_line, PATH_MAX-5);
+ 		if (stat(dev, &st) < 0)
+@@ -281,6 +283,7 @@ static void write_console_warning(struct quota_warning *warn)
+ 		}
+ 	}
+ 	if (!max_atime) {
++skip_utmp:
+ 		/*
+ 		 * This can happen quite easily so don't spam syslog with
+ 		 * the error
+-- 
+2.13.6
+
diff --git a/SOURCES/quota-4.04-warnquota-configuration-tunes.patch b/SOURCES/quota-4.04-warnquota-configuration-tunes.patch
new file mode 100644
index 0000000..9030e2e
--- /dev/null
+++ b/SOURCES/quota-4.04-warnquota-configuration-tunes.patch
@@ -0,0 +1,76 @@
+From 67a0dbf6434552e720b0d311597553b3a76f779e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
+Date: Tue, 23 Aug 2011 13:45:15 +0200
+Subject: [PATCH] warnquota configuration tunes
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Rest of changes (378a64006bb1e818e84a1c77808563b802b028fa) not
+accepted by upstream (we had root@... addresses and more enterprise
+wordings usually there).
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ warnquota.c    |  2 +-
+ warnquota.conf | 17 ++++++++---------
+ 2 files changed, 9 insertions(+), 10 deletions(-)
+
+diff --git a/warnquota.c b/warnquota.c
+index 0d911e4..2c8e084 100644
+--- a/warnquota.c
++++ b/warnquota.c
+@@ -837,7 +837,7 @@ cc_parse_err:
+ 			}
+ #ifdef USE_LDAP_MAIL_LOOKUP
+ 			else if (!strcmp(var, "LDAP_MAIL")) {
+-				if(strcasecmp(value, "true") == 0) 
++				if(strncasecmp(value, "true", 4) == 0)
+ 					config->use_ldap_mail = 1;
+ 				else
+ 					config->use_ldap_mail = 0;
+diff --git a/warnquota.conf b/warnquota.conf
+index b06f81f..7e00947 100644
+--- a/warnquota.conf
++++ b/warnquota.conf
+@@ -4,17 +4,16 @@
+ # and even blank lines
+ 
+ # values can be quoted:
+-#MAIL_CMD 	= "/usr/my/sendmail/instead/sendmail -t"
+-MAIL_CMD 	= "/bin/echo"
+-FROM 		= "bas@example.com"
++MAIL_CMD 	= "/usr/sbin/sendmail -t"
++FROM 		= "root@example.com"
+ # but they don't have to be:
+-SUBJECT 	= Hey, user, clean up your account!
+-CC_TO 		= "sysadm@example.com"
++SUBJECT 	= NOTE: You are exceeding your allocated disk space limits
++CC_TO 		= "root@example.com"
+ # If you set this variable CC will be used only when user has less than
+ # specified grace time left (examples of possible times: 5 seconds, 1 minute,
+ # 12 hours, 5 days)
+ # CC_BEFORE = 2 days
+-SUPPORT 	= "support@example.com"
++SUPPORT 	= "root@example.com"
+ PHONE 		= "(123) 456-1111 or (222) 333-4444"
+ # Text in the beginning of the mail (if not specified, default text is used)
+ # This way text can be split to more lines
+@@ -22,11 +21,11 @@ PHONE 		= "(123) 456-1111 or (222) 333-4444"
+ # The expressions %i, %h, %d, and %% are substituted for user/group name,
+ # host name, domain name, and '%' respectively. For backward compatibility
+ # %s behaves as %i but is deprecated.
+-MESSAGE         = Hello user %i, I've noticed you use too much space\
+- on my disk in %h.%d.|Delete your files on the following filesystems:|
++MESSAGE         = Your disk usage has exceeded the agreed limits\
++ on this server|Please delete any unnecessary files on following filesystems:|
+ # Text in the end of the mail (if not specified, default text using SUPPORT and PHONE
+ # is created)
+-SIGNATURE	= See you!|			Your admin of %h|
++SIGNATURE	= root@example.com
+ # Following text is used for mails about group exceeding quotas
+ GROUP_MESSAGE	= Hello,|\
+ your group %i is using too much disk space at %h.|\
+-- 
+2.13.5
+
diff --git a/SOURCES/quota-4.04-xqmstats-Fix-a-file-descriptor-leak-in-main.patch b/SOURCES/quota-4.04-xqmstats-Fix-a-file-descriptor-leak-in-main.patch
new file mode 100644
index 0000000..797fc3f
--- /dev/null
+++ b/SOURCES/quota-4.04-xqmstats-Fix-a-file-descriptor-leak-in-main.patch
@@ -0,0 +1,28 @@
+From 869f514310b72169a294baa37f5a90a291f719f3 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
+Date: Thu, 23 Aug 2018 11:51:47 +0200
+Subject: [PATCH 3/3] xqmstats: Fix a file descriptor leak in main()
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+---
+ xqmstats.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/xqmstats.c b/xqmstats.c
+index cdac4a6..59b1d66 100644
+--- a/xqmstats.c
++++ b/xqmstats.c
+@@ -35,6 +35,7 @@ int main(int argc, char **argv)
+ 	if ((stats = fopen(XQMSTATS, "r")) == NULL) {
+ 		if ((stats = fopen(STATFILE, "r")) == NULL) {
+ 			errstr(_("The running kernel does not support XFS\n"));
++			fclose(xqm);
+ 			return 1;
+ 		}
+ 	}
+-- 
+2.14.4
+
diff --git a/SOURCES/quota_nld.service b/SOURCES/quota_nld.service
new file mode 100644
index 0000000..d069003
--- /dev/null
+++ b/SOURCES/quota_nld.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Disk quota netlink message daemon
+After=syslog.target
+
+[Service]
+Type=forking
+EnvironmentFile=-/etc/sysconfig/quota_nld
+ExecStart=/usr/sbin/quota_nld $QUOTA_NLD_OPTS
+PIDFile=/var/run/quota_nld.pid
+
+[Install]
+WantedBy=multi-user.target
diff --git a/SOURCES/quota_nld.sysconfig b/SOURCES/quota_nld.sysconfig
new file mode 100644
index 0000000..51df5be
--- /dev/null
+++ b/SOURCES/quota_nld.sysconfig
@@ -0,0 +1,5 @@
+# Arguments to pass to quota_nld daemon.
+# -b, --print-below  Inform about falling usage bellow limits too
+# -C, --no-console   Do not print messages on last user's terminal
+# -D, --no-dbus      Do not forward messages to D-Bus
+QUOTA_NLD_OPTS=""
diff --git a/SOURCES/rpc-rquotad.service b/SOURCES/rpc-rquotad.service
new file mode 100644
index 0000000..f9c794e
--- /dev/null
+++ b/SOURCES/rpc-rquotad.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=Remote quota server
+Documentation=man:rpc.rquotad(8)
+Requires=rpcbind.service
+PartOf=rpcbind.service
+After=rpcbind.service
+
+[Service]
+Type=forking
+EnvironmentFile=-/etc/sysconfig/rpc-rquotad
+ExecStart=/usr/sbin/rpc.rquotad $RPCRQUOTADOPTS
+
+[Install]
+WantedBy=multi-user.target
+WantedBy=nfs-server.service
diff --git a/SOURCES/rpc-rquotad.sysconfig b/SOURCES/rpc-rquotad.sysconfig
new file mode 100644
index 0000000..4c67c13
--- /dev/null
+++ b/SOURCES/rpc-rquotad.sysconfig
@@ -0,0 +1,8 @@
+# Optionas to pass to rpc.rquotad daemon. See rpc.rquotad(8) manual page for
+# more details.
+# -I, --autofs          Ignore autofs mount points
+# -p port, --port port  Listen on alternative port
+# -s, --no-setquota     Don't allow setting quotas with RPC (default)
+# -S, --setquota        Allow setting quotas with RPC
+# -x path, --xtab path  Use alternative NFSD export table
+RPCRQUOTADOPTS=""
diff --git a/SPECS/quota.spec b/SPECS/quota.spec
new file mode 100644
index 0000000..04eb36b
--- /dev/null
+++ b/SPECS/quota.spec
@@ -0,0 +1,972 @@
+# Use netlink to monitor quota usage and warn interactive users
+%bcond_without quota_enables_netlink
+# Enable getting quotas over remotely
+%bcond_without quota_enables_rpc
+# Allow setting quota remotely
+%bcond_without quota_enables_rpcsetquota
+# Disable TCP Wrappers guard in RPC quota daemon
+%bcond_with quota_enables_tcpwrappers
+
+Name:       quota
+Epoch:      1
+Version:    4.04
+Release:    10%{?dist}
+Summary:    System administration tools for monitoring users' disk usage
+# quota_nld.c, quotaio_xfs.h:       GPLv2
+# bylabel.c copied from util-linux: GPLv2+
+# doc/quotas.ms, quotaops.c, quot.c, quotaon.c, edquota.c, quot.h, quota.c,
+# quotaio_v1.c:                     BSD
+# COPYING:                          GPLv2 text and license declaration
+## Only in quota-rpc and quota-nls binary package
+# svc_socket.c copied from glibc:   LGPLv2+
+## Only in quota-nls binary package
+# po/cs.po:                         GPLv2+
+## Not involved in the binary package
+# aclocal.m4:                       FSFULLR and (GPLv2+ with exception)
+# ar-lib:                           GPLv2 with exception
+# depcomp:                          GPLv2+ with exception
+# config.guess:                     GPLv3+ with exception
+# config.rpath:                     GPLv2+ with exception
+# config.sub:                       GPLv3+ with exception
+# configure:                        FSFUL
+# install-sh:                       MIT
+# m4/gettext.m4:                    GPL with exception
+# m4/iconv.m4:                      GPL with exception
+# m4/lib-ld.m4:                     GPL with exception
+# m4/lib-link.m4:                   GPL with exception
+# m4/lib-prefix.m4:                 GPL with exception
+# m4/nls.m4:                        GPL with exception
+# m4/po.m4:                         GPL with exception
+# m4/progtest.m4:                   GPL with exception
+# Makefile.in:                      FSFULLR
+# missing:                          GPLv2+ with exception
+# mkinstalldirs:                    Public Domain
+License: BSD and GPLv2 and GPLv2+
+URL: http://sourceforge.net/projects/linuxquota/
+Source0: http://downloads.sourceforge.net/linuxquota/%{name}-%{version}.tar.gz
+Source1: quota_nld.service
+Source2: quota_nld.sysconfig
+Source3: rpc-rquotad.service
+Source4: rpc-rquotad.sysconfig
+# Not accepted changes (378a64006bb1e818e84a1c77808563b802b028fa)
+Patch0: quota-4.04-warnquota-configuration-tunes.patch
+Patch1: quota-4.03-Validate-upper-bound-of-RPC-port.patch
+# Install rquotad(3) only if RPC is enabled,
+# <https://sourceforge.net/p/linuxquota/patches/45/>, in upstream after 4.04
+Patch2: quota-4.04-Install-rquota-3-only-if-RPC-is-enabled.patch
+# Pass TIRPC header files location to all RPC compilation units,
+# <https://sourceforge.net/p/linuxquota/patches/46/>, in upstream after 4.04
+Patch3: quota-4.04-Add-TIRPC_CFLAGS-globally-to-CFLAGS-for-RPC-support-.patch
+# Do not iterate over negative UIDs in repquota,
+# <https://sourceforge.net/p/linuxquota/patches/47/>, in upstream after 4.04
+Patch4: quota-4.04-repquota-Fix-output-when-user-2-exists.patch
+# Fix snprintf overflows in warnquota,
+# <https://sourceforge.net/p/linuxquota/patches/48/>, in upstream after 4.04
+Patch5: quota-4.04-warnquota-Check-snprintf-for-overflows.patch
+# Fix user name search in utmp log,
+# <https://sourceforge.net/p/linuxquota/patches/48/>, in upstream after 4.04
+Patch6: quota-4.04-warnquota-Fix-comparing-user-name-to-non-null-termin.patch
+# Avoid questions in quotacheck non-interactive mode, in upstream after 4.04
+Patch7: quota-4.04-quotacheck-Avoid-question-in-non-interactive-mode.patch
+# Report an error when quotacheck fails to cache quota files,
+# in upstream after 4.04
+Patch8: quota-4.04-quotacheck-Report-error-when-caching-of-quota-file-f.patch
+# Report an error if quota file magic is invalid, in upstream after 4.04
+Patch9: quota-4.04-quotacheck-Fail-check-if-quota-file-magic-is-invalid.patch
+# Fix busy loop in rpc.rquotad, bug #1575956,
+# <https://sourceforge.net/p/linuxquota/feature-requests/16/>
+Patch10: quota-4.04-Listen-on-a-TCP-socket.patch
+# Fix current block usage limit in RPC client, in upstream after 4.04,
+# <https://sourceforge.net/p/linuxquota/bugs/127/>
+Patch11: quota-4.04-rpc-Fix-wrong-limit-for-space-usage.patch
+# Distinguish between none quota limits and no allocated resources in quota(1)
+# tool output, proposed to upstream,
+# <https://sourceforge.net/p/linuxquota/bugs/128/>
+Patch12: quota-4.04-quota-1-Distinguish-between-none-quota-limits-and-no.patch
+# Fix a descriptor leak, bug #1602674, proposed to upstream,
+# <https://sourceforge.net/p/linuxquota/bugs/129/>
+Patch13: quota-4.04-convertquota-Fix-a-file-descriptor-leak-in-convert_e.patch
+# Fix a descriptor leak, bug #1602674, proposed to upstream,
+# <https://sourceforge.net/p/linuxquota/bugs/129/>
+Patch14: quota-4.04-quotackeck-Fix-a-directory-descriptor-leak-in-scan_d.patch
+# Fix a descriptor leak, bug #1602674, proposed to upstream,
+# <https://sourceforge.net/p/linuxquota/bugs/129/>
+Patch15: quota-4.04-xqmstats-Fix-a-file-descriptor-leak-in-main.patch
+BuildRequires:  autoconf
+BuildRequires:  automake
+BuildRequires:  bash
+BuildRequires:  coreutils
+BuildRequires:  e2fsprogs-devel
+BuildRequires:  gcc
+BuildRequires:  gettext-devel
+BuildRequires:  make
+BuildRequires:  openldap-devel
+%if %{with quota_enables_netlink}
+BuildRequires:  pkgconfig(dbus-1)
+BuildRequires:  pkgconfig(libnl-3.0) >= 3.1
+BuildRequires:  pkgconfig(libnl-genl-3.0)
+%endif
+%if %{with quota_enables_rpc}
+BuildRequires:  rpcgen
+BuildRequires:  pkgconfig(libtirpc)
+BuildRequires:  systemd
+%if %{with quota_enables_tcpwrappers}
+BuildRequires:  tcp_wrappers-devel
+%endif
+%endif
+Requires:       quota-nls = %{epoch}:%{version}-%{release}
+Conflicts:      kernel < 2.4
+
+%description
+The quota package contains system administration tools for monitoring
+and limiting user and or group disk usage per file system.
+
+
+%if %{with quota_enables_netlink}
+%package nld
+Summary:    quota_nld daemon
+Requires:   quota-nls = %{epoch}:%{version}-%{release}
+Requires(post):     systemd
+Requires(preun):    systemd
+Requires(postun):   systemd
+
+%description nld
+Daemon that listens on netlink socket and processes received quota warnings.
+Note, that you have to enable the kernel support for sending quota messages
+over netlink (in Filesystems->Quota menu). The daemon supports forwarding
+warning messages to the system D-Bus (so that desktop manager can display
+a dialog) and writing them to the terminal user has last accessed.
+%endif
+
+
+%if %{with quota_enables_rpc}
+%package rpc
+Summary:    RPC quota daemon
+License:    BSD and LGPLv2+ and GPLv2 and GPLv2+
+Requires:   quota-nls = %{epoch}:%{version}-%{release}
+Requires:   rpcbind
+%if %{with quota_enables_tcpwrappers}
+Requires:   tcp_wrappers
+%endif
+Requires(post):     systemd
+Requires(preun):    systemd
+Requires(postun):   systemd
+Conflicts:  quota < 1:4.02-3
+
+%description rpc
+The RPC daemon allows to query and set disk quotas over network. If you run
+the daemon on NFS server, you could use quota tools to manage the quotas from
+NFS client.
+%endif
+
+
+%package warnquota
+Summary:    Send e-mail to users over quota
+Requires:   quota-nls = %{epoch}:%{version}-%{release}
+
+%description warnquota
+Utility that checks disk quota for each local file system and mails a warning
+message to those users who have reached their soft limit.  It is typically run
+via cron(8).
+
+
+%package nls
+Summary:    Gettext catalogs for disk quota tools
+License:    BSD and LGPLv2+ and GPLv2 and GPLv2+
+BuildArch:  noarch
+
+%description nls
+Disk quota tools messages translated into different natural languages.
+
+
+%if %{with quota_enables_rpc}
+%package devel
+Summary:    Development files for quota RPC
+License:    GPLv2
+# Do not run-require main package, the header files define RPC API to be
+# implemented by the developer, not an API for an existing quota library.
+
+%description devel
+This package contains development header files for implementing disk quotas
+on remote machines.
+%endif
+
+
+%package doc
+Summary:    Additional documentation for disk quotas
+Requires:   quota =  %{epoch}:%{version}-%{release}
+BuildArch:  noarch
+AutoReq:    0
+
+%description doc
+This package contains additional documentation for disk quotas concept in
+Linux/UNIX environment.
+
+
+%prep
+%setup -q
+%patch0 -p1
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
+%patch6 -p1
+%patch7 -p1
+%patch8 -p1
+%patch9 -p1
+%patch10 -p1
+%patch11 -p1
+%patch12 -p1
+%patch13 -p1
+%patch14 -p1
+%patch15 -p1
+# Regenerate build scripts
+autoreconf -f -i
+
+%build
+%global _hardened_build 1
+%configure \
+    --enable-bsd-behaviour \
+    --enable-ext2direct=yes \
+    --enable-ldapmail=yes \
+%if %{with quota_enables_tcpwrappers}
+    --enable-libwrap=yes \
+%else
+    --disable-libwrap \
+%endif
+%if %{with quota_enables_netlink}
+    --enable-netlink=yes \
+%else
+    --disable-netlink \
+%endif
+    --enable-nls \
+    --disable-rpath \
+%if %{with quota_enables_rpc}
+    --enable-rpc=yes \
+%else
+    --disable-rpc \
+%endif
+%if %{with quota_enables_rpcsetquota}
+    --enable-rpcsetquota=yes \
+%else
+    --disable-rpcsetquota \
+%endif
+    --disable-silent-rules \
+    --disable-xfs-roothack
+make
+
+
+%install
+make install DESTDIR=%{buildroot}
+rm -rf $RPM_BUILD_ROOT%{_docdir}/%{name}
+
+%if %{with quota_enables_netlink}
+install -p -m644 -D %{SOURCE1} $RPM_BUILD_ROOT%{_unitdir}/quota_nld.service
+install -p -m644 -D %{SOURCE2} \
+    $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/quota_nld
+%endif
+%if %{with quota_enables_rpc}
+install -p -m644 -D %{SOURCE3} $RPM_BUILD_ROOT%{_unitdir}/rpc-rquotad.service
+install -p -m644 -D %{SOURCE4} \
+    $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/rpc-rquotad
+%endif
+
+%find_lang %{name}
+
+
+%check
+make check
+
+
+%if %{with quota_enables_netlink}
+%post nld
+%systemd_post quota_nld.service
+
+%preun nld
+%systemd_preun quota_nld.service
+
+%postun nld
+%systemd_postun_with_restart quota_nld.service
+%endif
+
+
+%if %{with quota_enables_rpc}
+%post rpc
+%systemd_post rpc-rquotad.service
+
+%preun rpc
+%systemd_preun rpc-rquotad.service
+
+%postun rpc
+%systemd_postun_with_restart rpc-rquotad.service
+%endif
+
+
+%files
+%{_bindir}/*
+%{_sbindir}/*
+%exclude %{_sbindir}/quota_nld
+%if %{with quota_enables_rpc}
+%exclude %{_sbindir}/rpc.rquotad
+%endif
+%exclude %{_sbindir}/warnquota
+%{_mandir}/man1/*
+%{_mandir}/man8/*
+%exclude %{_mandir}/man8/quota_nld.8*
+%if %{with quota_enables_rpc}
+%exclude %{_mandir}/man8/rpc.rquotad.8*
+%endif
+%exclude %{_mandir}/man8/warnquota.8*
+%doc Changelog
+
+%if %{with quota_enables_netlink}
+%files nld
+%config(noreplace) %{_sysconfdir}/sysconfig/quota_nld
+%{_unitdir}/quota_nld.service
+%{_sbindir}/quota_nld
+%{_mandir}/man8/quota_nld.8*
+%doc Changelog
+%endif
+
+%if %{with quota_enables_rpc}
+%files rpc
+%config(noreplace) %{_sysconfdir}/sysconfig/rpc-rquotad
+%{_unitdir}/rpc-rquotad.service
+%{_sbindir}/rpc.rquotad
+%{_mandir}/man8/rpc.rquotad.8*
+%doc Changelog
+%endif
+
+%files warnquota
+%config(noreplace) %{_sysconfdir}/quotagrpadmins
+%config(noreplace) %{_sysconfdir}/quotatab
+%config(noreplace) %{_sysconfdir}/warnquota.conf
+%{_sbindir}/warnquota
+%{_mandir}/man5/*
+%{_mandir}/man8/warnquota.8*
+%doc Changelog README.ldap-support README.mailserver
+
+%files nls -f %{name}.lang
+# All the other packages require quota-nls, COPYING here is enough.
+%license COPYING
+%doc Changelog
+
+%if %{with quota_enables_rpc}
+%files devel
+%license COPYING
+%dir %{_includedir}/rpcsvc
+%{_includedir}/rpcsvc/*
+%{_mandir}/man3/*
+%endif
+
+%files doc
+%doc doc/* ldap-scripts
+
+
+%changelog
+* Thu Aug 23 2018 Petr Pisar <ppisar@redhat.com> - 1:4.04-10
+- Fix file descriptor leaks in error code paths (bug #1602674)
+
+* Tue Jul 24 2018 Petr Pisar <ppisar@redhat.com> - 1:4.04-9
+- Distinguish between none quota limits and no allocated resources in quota(1)
+  tool output
+
+* Sat Jul 14 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.04-8
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
+
+* Wed May 30 2018 Petr Pisar <ppisar@redhat.com> - 1:4.04-7
+- Fix current block usage limit in RPC client
+
+* Tue May 22 2018 Petr Pisar <ppisar@redhat.com> - 1:4.04-6
+- Fix busy loop in rpc.rquotad (bug #1575956)
+
+* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.04-5
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
+
+* Mon Feb 05 2018 Petr Pisar <ppisar@redhat.com> - 1:4.04-4
+- Avoid questions in quotacheck non-interactive mode
+- Report an error when quotacheck fails to cache quota files
+- Report an error if quota file magic is invalid
+
+* Mon Feb 05 2018 Petr Pisar <ppisar@redhat.com> - 1:4.04-3
+- rpcgen tool split from glibc-common package
+- Pass TIRPC header files location to all RPC compilation units
+- Do not iterate over negative UIDs in repquota
+- Fix mistakes in warnquota reported by GCC 8
+
+* Thu Nov 30 2017 Petr Pisar <ppisar@redhat.com> - 1:4.04-2
+- Disable TCP wrappers (bug #1518778)
+
+* Wed Sep 06 2017 Petr Pisar <ppisar@redhat.com> - 1:4.04-1
+- 4.04 bump
+
+* Mon Aug 28 2017 Petr Pisar <ppisar@redhat.com> - 1:4.03-12
+- Fix memory leaks when running quotacheck on ext file systems (bug #1483543)
+
+* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.03-11
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
+
+* Thu Jul 27 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.03-10
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
+
+* Tue Jul 04 2017 Petr Pisar <ppisar@redhat.com> - 1:4.03-9
+- Fix disabling features at build time
+- Fix a race between checking for and opening a directory to be scanned
+- Fix an undefined behavior on parsing yes-no answer
+- Check for setuid and setgid calls failure in edquota tool
+- Check for failures when reading edquota input
+- Check for failures when duplicating a file handle
+
+* Sat Feb 11 2017 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.03-8
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
+
+* Thu Nov 10 2016 Petr Pisar <ppisar@redhat.com> - 1:4.03-7
+- Fix checking a block read error (upstream bug #123)
+- Use direct scanning also for ext4
+
+* Fri Jun 10 2016 Petr Pisar <ppisar@redhat.com> - 1:4.03-6
+- Correct repquota indentation for file systems with hiden quota files
+- Remove unnecessary quota dependency from quota-devel package
+- Break licenses down to each package
+
+* Thu Mar 10 2016 Petr Pisar <ppisar@redhat.com> - 1:4.03-5
+- Start rpc-rquotad.service when starting nfs-server.service
+
+* Thu Mar 03 2016 Petr Pisar <ppisar@redhat.com> - 1:4.03-4
+- Declare quota-rpc requires rpcbind because of the rpc.rquotad daemon
+
+* Mon Feb 22 2016 Petr Pisar <ppisar@redhat.com> - 1:4.03-3
+- Query kernel for next quota on XFS or file system with hidden quota files
+  (bug #1306195)
+
+* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 1:4.03-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
+
+* Wed Jan 06 2016 Petr Pisar <ppisar@redhat.com> - 1:4.03-1
+- 4.03 bump
+- Work around Autoconf bug not to link ldap library to everything
+  (bug #1296455)
+
+* Thu Jun 18 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:4.02-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
+
+* Thu Apr 02 2015 Petr Pisar <ppisar@redhat.com> - 1:4.02-3
+- Move rpc.rquotad daemon into quota-rpc sub-package
+
+* Thu Apr 02 2015 Petr Pisar <ppisar@redhat.com> - 1:4.02-2
+- Add rpc-rquotad.service file which was known as nfs-rquotad.service
+  in nfs-utils (bug #1206260)
+
+* Wed Nov 26 2014 Petr Pisar <ppisar@redhat.com> - 1:4.02-1
+- 4.02 bump
+
+* Sun Aug 17 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:4.01-14
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
+
+* Sun Jun 08 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:4.01-13
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
+
+* Wed Mar 05 2014 Petr Pisar <ppisar@redhat.com> - 1:4.01-12
+- Prevent from grace period overflow in RPC transport (bug #1072769)
+
+* Wed Oct 16 2013 Petr Pisar <ppisar@redhat.com> - 1:4.01-11
+- Move /sbin/* files under /usr (bug #983179)
+- Harden executables due to rpc.rquotad and quota_nld daemons (bug #983179)
+- Document quotagrpadmins(5), quotatab(5), warnquota.conf(5), rcp.rquota(8)
+  (bug #983179)
+
+* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:4.01-10
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
+
+* Thu Jun 13 2013 Petr Pisar <ppisar@redhat.com> - 1:4.01-9
+- Close FILE handles on error too
+
+* Wed Jun 12 2013 Petr Pisar <ppisar@redhat.com> - 1:4.01-8
+- Allow to set limits using multiplicative units
+
+* Mon May 27 2013 Petr Pisar <ppisar@redhat.com> - 1:4.01-7
+- Add LGPLv2+ and GPLv2 to license declaration
+- Correct changelog dates
+- Package additional LDAP scripts as a documentation
+- Package XFS-specific tools
+
+* Mon May 20 2013 Petr Pisar <ppisar@redhat.com> - 1:4.01-6
+- Remove code for migration from systemv-style init script
+- Drop useless dependency on initscripts (bug #964440)
+
+* Thu Mar 14 2013 Petr Pisar <ppisar@redhat.com> - 1:4.01-5
+- Add quotasync(1) manual page
+- Fix quota, repquota, and quotasync usage help
+
+* Tue Feb 05 2013 Petr Pisar <ppisar@redhat.com> - 1:4.01-4
+- Do not fiddle with quota files on XFS and GFS (bug #846296)
+- Make sure option -d at quotacheck provides at least as much information as
+  option -v (SF#3602777)
+
+* Mon Dec 03 2012 Petr Pisar <ppisar@redhat.com> - 1:4.01-3
+- Define charset in e-mails sent by warnquota (SF#3571589)
+
+* Tue Sep 25 2012 Petr Pisar <ppisar@redhat.com> - 1:4.01-2
+- Make group warning message more official
+
+* Fri Sep 07 2012 Petr Pisar <ppisar@redhat.com> - 1:4.01-1
+- 4.01 bump
+
+* Wed Aug 22 2012 Petr Pisar <ppisar@redhat.com> - 1:4.00-6
+- Modernize systemd scriptlets (bug #850288)
+
+* Sat Jul 21 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:4.00-5
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild
+
+* Tue Jul 03 2012 Petr Pisar <ppisar@redhat.com> - 1:4.00-4
+- Fix editting more users with edquota
+- Report all quotas on XFS (bug #837341)
+
+* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:4.00-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild
+
+* Thu Sep  1 2011 Petr Pisar <ppisar@redhat.com> - 1:4.00-2
+- Remove unneeded cryptographic library build-time dependencies
+- Fortify build-time configuration
+- Migrate quota_nld service from sysvinit to systemd
+- Document --print-below option in quota_nld service
+
+* Tue Aug 23 2011 Petr Pisar <ppisar@redhat.com> - 1:4.00-1
+- 4.00 bump
+- Remove unneeded LDAP linking patch
+- Prevent from stripping by configure option
+- Remove unneeded sed scripts on sources
+- Remove unneeded file removal
+
+* Thu Aug 18 2011 Petr Pisar <ppisar@redhat.com> - 1:4.00-0.17.pre1
+- Do not report missing utmp record to syslog (bug #731622)
+
+* Fri Jul 15 2011 Petr Pisar <ppisar@redhat.com> - 1:4.00-0.16.pre1
+- Report quotacheck failures by return code (bug #717982)
+- Improve quotacheck error message (bug #717982)
+
+* Thu May 12 2011 Petr Pisar <ppisar@redhat.com> - 1:4.00-0.15.pre1
+- Make dirname static to work with nss_db (bug #703567)
+- Clean spec file
+
+* Mon Apr 11 2011 Petr Pisar <ppisar@redhat.com> - 1:4.00-0.14.pre1
+- Initialize v2r1 ddquot padding in dump (bug #695409)
+- Do not pass NULL to XGETQSTAT quotactl()
+
+* Mon Mar 21 2011 Petr Pisar <ppisar@redhat.com> - 1:4.00-0.13.pre1
+- Fix repquota to get latest quota info header (bug #689458)
+
+* Fri Mar 11 2011 Petr Pisar <ppisar@redhat.com> - 1:4.00-0.12.pre1
+- Fix ddquot buffer leak
+
+* Thu Mar 10 2011 Petr Pisar <ppisar@redhat.com> - 1:4.00-0.11.pre1
+- Disable grace period/times remote setting
+
+* Mon Feb 28 2011 Petr Pisar <ppisar@redhat.com> - 1:4.00-0.10.pre1
+- Do not use real domains in warnquota example
+
+* Thu Feb 17 2011 Petr Pisar <ppisar@redhat.com> - 1:4.00-0.9.pre1
+- Explain meaning of the second column in repquota output
+- Make RPC handle properly host names with colons (i.e. IPv6 server host name)
+
+* Wed Feb 09 2011 Petr Pisar <ppisar@redhat.com> - 1:4.00-0.8.pre1
+- Initialize vfsold block and inode value boundries for new quota file
+  (bug #668688)
+
+* Tue Feb 08 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:4.00-0.7.pre1
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
+
+* Fri Feb 04 2011 Petr Pisar <ppisar@redhat.com> - 1:4.00-0.6.pre1
+- Store quota_nld PID into PID file (bug #634137)
+- Do not allow non-root to control quota_nld service (bug #634137)
+- Add quotasync tool (bug #596794)
+- Implement quotacheck for GFS2 (bug #596794)
+
+* Wed Feb 02 2011 Petr Pisar <ppisar@redhat.com> - 1:4.00-0.5.pre1
+- Correct manual pages
+
+* Tue Jan 11 2011 Petr Pisar <ppisar@redhat.com> - 1:4.00-0.4.pre1
+- Make RPC block factor dynamic (bug #667757)
+- Check whether set limits fit into the range supported by quota format
+  (bug #668688)
+- Check set limits fit into the range supported by RPC transport (bug #668691)
+
+* Mon Jan 10 2011 Petr Pisar <ppisar@redhat.com> - 1:4.00-0.3.pre1
+- Document --always-resolve option
+
+* Tue Dec 14 2010 Petr Pisar <ppisar@redhat.com> - 1:4.00-0.2.pre1
+- Comment example quotatab to silent warnquota
+
+* Tue Nov 16 2010 Petr Pisar <ppisar@redhat.com> - 1:4.00-0.1.pre1
+- 4.00-pre1 bump
+- Separate gettext catalogs becuase they are required by all binary sub-packages
+
+* Mon Nov 15 2010 Petr Pisar <ppisar@redhat.com> - 1:3.17-18
+- Break warnquota dependency on main package
+
+* Mon Nov 15 2010 Petr Pisar <ppisar@redhat.com> - 1:3.17-17
+- Convert Changelog to UTF-8
+
+* Mon Nov 15 2010 Petr Pisar <ppisar@redhat.com> - 1:3.17-16
+- Break dependecies on main package as there are none
+- Add plain text documentation to each sub-package
+- Package additional documentation into `doc' sub-package
+
+* Thu Nov 11 2010 Petr Pisar <ppisar@redhat.com> - 1:3.17-15
+- Add quota_nld daemon init script (bug #634169)
+- Sub-package quota_nld files to weak dependecies
+- Sub-package warnquota files to weak dependecies
+
+* Wed Oct 06 2010 Petr Pisar <ppisar@redhat.com> - 1:3.17-14
+- Remove quotactl(2) as it's part of `man-pages' package (bug #640590)
+
+* Tue May 11 2010 Petr Pisar <ppisar@redhat.com> 1:3.17-13
+- Add GFS2 support
+
+* Mon May 10 2010 Petr Pisar <ppisar@redhat.com> 1:3.17-12
+- Prevent corruptive read/write from/to NULL address in rpc.rquotad
+  (Resolves #528581, example in #532342)
+- Fix spelling in summary
+
+* Fri Mar 12 2010 Daniel Novotny <dnovotny@redhat.com> 1:3.17-11
+- the require from previous fix deleted altogether (it will
+  be resolved automatically)
+
+* Fri Mar 12 2010 Daniel Novotny <dnovotny@redhat.com> 1:3.17-10
+- Requires: e2fsprogs changed to e2fsprogs-libs (#570005)
+
+* Tue Feb 23 2010 Daniel Novotny <dnovotny@redhat.com> 1:3.17-9
+- fix #565124 - FTBFS quota-3.17-8.fc13: ImplicitDSOLinking
+
+* Tue Sep 29 2009 Ondrej Vasik <ovasik@redhat.com> 1:3.17-8
+- add buildrequires for quota_nld, enable-netlink to build
+  quota_nld (#526047)
+
+* Fri Sep 18 2009 Ondrej Vasik <ovasik@redhat.com> 1:3.17-7
+- Fix headers and structs in quotactl manpage(#524138)
+
+* Fri Aug 28 2009 Ondrej Vasik <ovasik@redhat.com> 1:3.17-6
+- symlink manpage for rpc.rquotad
+
+* Sun Jul 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:3.17-5
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
+
+* Fri Mar 13 2009 Ondrej Vasik <ovasik@redhat.com> 1:3.17-4
+- clarify statements about LDAP in warnquota conf
+  (related to #490106)
+- fix parsing issue in warnquota.c(#490125)
+- enable rpcsetquota by default(#159292, #469753)
+
+* Fri Mar 13 2009 Ondrej Vasik <ovasik@redhat.com> 1:3.17-3
+- add missing buildrequires needed to compile with
+  enable-ldapmail=try option with LDAP(#490106)
+
+* Wed Feb 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1:3.17-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
+
+* Tue Jan 13 2009 Ondrej Vasik <ovasik@redhat.com> 1:3.17-1
+- new upstream release, remove already applied patches
+
+* Mon Dec 08 2008 Ondrej Vasik <ovasik@redhat.com> 1:3.16-8
+- fix documentation inconsistency (now rpc(3) instead of
+  rpc(3N) in rquotad manpage) (#474836)
+
+* Fri Nov 14 2008 Ondrej Vasik <ovasik@redhat.com> 1:3.16-7
+- fix quotaoff --help output (was same as quotaon output)
+
+* Thu Oct 30 2008 Ondrej Vasik <ovasik@redhat.com> 1:3.16-6
+- fix implementation of ext4 support
+  (by Mingming Cao, #469127)
+
+* Wed Sep 10 2008 Ondrej Vasik <ovasik@redhat.com> 1:3.16-5
+- fix rpmlint warnings - absolute symlink and not using epoch
+  in version in changelog (#226353)
+- rquota headers and manpage now in devel subpackage
+
+* Wed Aug 27 2008 Ondrej Vasik <ovasik@redhat.com> 3.16-4
+- fix bug in warnquota which could result in bogus hostname
+  and domainname (upstream)
+- remove IMMUTABLE flag from quota file in quotacheck(upstream)
+
+* Tue Aug 05 2008 Ondrej Vasik <ovasik@redhat.com> 3.16-3
+- Add support for -h option (do not show invalid option
+  error) at edquota,setquota and quota (#457898)
+
+* Fri Jun 20 2008 Ondrej Vasik <ovasik@redhat.com> 3.16-2
+- upstream fix of some typos, string formats + 4TB+ fix
+  for repquota
+- some additional stripping removal
+- change default mode of binaries from 555 to 755
+  (strip error messages in build log)
+
+* Wed Apr 23 2008 Ondrej Vasik <ovasik@redhat.com> 3.16-1
+- own directory of rpcsvc headers(#442143)
+- new upstream release
+
+* Wed Mar 12 2008 Ondrej Vasik <ovasik@redhat.com> 3.15-6
+- added enable-ldapmail=try option(wonder how #133207
+  got closed by FC-4 without it or warnquota.conf change)
+- dropped with-ext2direct=no option - this option is 
+  invalid and original bug was fixed in 3.07
+
+* Thu Mar  6 2008 Ondrej Vasik <ovasik@redhat.com> 3.15-5
+- added symbolic link for quotaoff man page(#436110)
+- don't ship xqmstats.8 man page as we don't ship those
+  binaries(#436100)
+
+* Thu Feb 21 2008 Ondrej Vasik <ovasik@redhat.com> 3.15-4
+- added pointers to quota_nld and warnquota to some 
+  manpages(upstream, #83975)
+
+* Tue Feb 12 2008 Ondrej Vasik <ovasik@redhat.com> 3.15-3
+- allow to build with rpcsetquota enabled(disabled by
+  default, #159292)
+- rebuild for gcc43
+
+* Thu Jan 24 2008 Steve Dickson <SteveD@RedHat.com> 3.15-2
+- More review comments:
+    - BuiltPreReq to BuiltReq
+    - Removed '.' From Summary
+    - Added 'GPLv2+' to License Tag
+    - Condensed the _sysconfdir entries in to one line
+
+* Thu Jan 24 2008 Steve Dickson <SteveD@RedHat.com> 3.15-1
+- Upgraded to version 3.15 
+- Updated spec file per Merge Review (bz 226353)
+
+* Thu Feb 15 2007  Steve Dickson <SteveD@RedHat.com> 3.14-1
+- Upgraded to version 3.14 (bz# 213641)
+
+* Mon Dec  4 2006 Thomas Woerner <twoerner@redhat.com> 1:3.13-1.3
+- tcp_wrappers has a new devel and libs sub package, therefore changing build
+  requirement for tcp_wrappers to tcp_wrappers-devel
+
+* Wed Nov  1 2006 Steve Dickson <SteveD@RedHat.com> 1:3.13-1.2.3.2
+- Added range checking on -p flag (bz 205145)
+- Error message prints garbage characters (bz 201226)
+
+* Wed Jul 12 2006 Jesse Keating <jkeating@redhat.com> - 1:3.13-1.2.3.1
+- rebuild
+
+* Fri Jun 30 2006 Steve Dickson <steved@redhat.com> - 1:3.13-1.2.3
+- fix 192826 - quota config files should not be overwritten
+
+* Fri Feb 10 2006 Jesse Keating <jkeating@redhat.com> - 1:3.13-1.2.1
+- bump again for double-long bug on ppc(64)
+
+* Tue Feb 07 2006 Jesse Keating <jkeating@redhat.com> - 1:3.13-1.2
+- rebuilt for new gcc4.1 snapshot and glibc changes
+
+* Fri Dec 09 2005 Jesse Keating <jkeating@redhat.com>
+- rebuilt
+
+* Mon Oct 31 2005 Steve Dickson <steved@redhat.com> 3.13-1
+- Upgraded to version 3.13 (bz# 171245)
+
+* Thu Aug 18 2005 Florian La Roche <laroche@redhat.com>
+- change the "Requires: kernel" into a "Conflicts:"
+
+* Sun Sep 26 2004 Rik van Riel <riel@redhat.com> 3.12-5
+- add URL (bz# 131862)
+
+* Fri Sep 24 2004 Steve Dickson <SteveD@RedHat.com>
+- Fixed typos in warnquota.conf patch 
+  (bz# 82250 and bz# 83974)
+
+* Mon Sep 13 2004 Steve Dickson <SteveD@RedHat.com>
+- upgraded to 3.12
+
+* Tue Jun 15 2004 Elliot Lee <sopwith@redhat.com>
+- rebuilt
+
+* Fri Feb 13 2004 Elliot Lee <sopwith@redhat.com>
+- rebuilt
+
+* Tue Jan 27 2004 Florian La Roche <Florian.LaRoche@redhat.de>
+- add -pie support
+- update to 3.10
+
+* Sat Aug 16 2003  Steve Dickson <SteveD@RedHat.com>
+- upgraded to 3.0.9
+- added quota-3.09-root_sbindir.patch
+
+* Sun Aug 10 2003 Elliot Lee <sopwith@redhat.com> 3.06-11
+- Rebuild
+
+* Wed Jun 04 2003 Elliot Lee <sopwith@redhat.com>
+- rebuilt
+
+* Tue May 27 2003 Steve Dickson <SteveD@RedHat.com>
+- rebuilt for 7.3 errata
+
+* Tue Feb 25 2003 Elliot Lee <sopwith@redhat.com>
+- rebuilt
+
+* Sun Feb 23 2003 Tim Powers <timp@redhat.com>
+- add buildprereq on tcp_wrappers
+
+* Wed Jan 22 2003 Tim Powers <timp@redhat.com>
+- rebuilt
+
+* Mon Nov 18 2002 Tim Powers <timp@redhat.com>
+- rebuild on all arches
+
+
+* Fri Sep 6 2002 Philip Copeland <bryce@redhat.com> 3.06-5
+- added --with-ext2direct=no to fix #73244
+  without this users with UID's > 65535 will not
+  be able to exist on a quota enabled FS
+
+* Wed Aug 7 2002 Philip Copeland <bryce@redhat.com> 3.06-4
+- Man page change. #60108
+
+* Tue Aug 6 2002 Philip Copeland <bryce@redhat.com> 3.06-3
+- Bah, I'd dropped epoch from the spec file but seems
+  we need this if you want to upgrade as the epoch
+  number has precedence over the version/release
+  numbers.
+
+* Wed Jul 17 2002 Philip Copeland <bryce@redhat.com> 3.06-2
+- Lets stop the makefile from stripping the
+  binaries as thats rpms job (apparently)
+
+* Mon Jul 01 2002 Philip Copeland <bryce@redhat.com> 3.06-1
+- Ditched the 3.01-pre9 src base for 3.06
+  Rebuilt without any patchs
+
+============================================================
+
+* Fri Jun 21 2002 Tim Powers <timp@redhat.com>
+- automated rebuild
+
+* Thu May 23 2002 Tim Powers <timp@redhat.com>
+- automated rebuild
+
+* Mon Feb 25 2002 Elliot Lee <sopwith@redhat.com>
+- IfArch the badkernelinclude patch for ppc-only.
+- Update to 3.03
+
+* Wed Dec 12 2001 Guy Streeter <streeter@redhat.com>
+- Make #include of kernel header file work on non-x86
+
+* Wed Sep  5 2001 Preston Brown <pbrown@redhat.com>
+- require new initscripts
+
+* Thu Aug 30 2001 Preston Brown <pbrown@redhat.com>
+- fixed bug #52075 (problem with ext2 labels)
+- backup data files off by default in quotacheck, optional backup flag added
+- fix bug where giving a bad directory or device would cause 
+  quotaon/quotacheck to simulate "-a" behaviour
+- if a device name (i.e /dev/hda1) is passed, look up the corresponding mount
+  point
+
+* Wed Aug 29 2001 Preston Brown <pbrown@redhat.com>
+- return an error code in more cases in convertquota
+
+* Tue Aug 28 2001 Preston Brown <pbrown@redhat.com>
+- 3.01pre9
+
+* Fri Jul 20 2001 Preston Brown <pbrown@redhat.com>
+- more cleanups on 3.01pre8
+
+* Mon Jul  2 2001 Preston Brown <pbrown@redhat.com>
+- 3.01 version, everything has changed again. :(
+
+* Sun Jun 24 2001 Elliot Lee <sopwith@redhat.com>
+- Bump release + rebuild.
+
+* Fri Mar 30 2001 Preston Brown <pbrown@redhat.com>
+- use rpc.rquotad from here again (#33738)
+
+* Thu Mar 15 2001 Preston Brown <pbrown@redhat.com>
+- enable ALT_FORMAT for edquota
+
+* Tue Mar 13 2001 Preston Brown <pbrown@redhat.com>
+- I broke passing devices on the cmd line.  Fixed.
+
+* Fri Mar 09 2001 Preston Brown <pbrown@redhat.com>
+- quota 3.00 is required by recent kernel 2.4 changes
+- no warnquota included this time, not yet ported
+- quite a bit of work on quotacheck to make is backwards compatible
+- we will likely go back to "quota 2.00" as these projects merge...
+
+* Fri Feb 09 2001 Florian La Roche <Florian.LaRoche@redhat.de>
+- use "rm -f" instead of only "rm"
+
+* Wed Feb  7 2001 Preston Brown <pbrown@redhat.com>
+- fix quotacheck man page for -a option (#26380)
+
+* Thu Feb  1 2001 Preston Brown <pbrown@redhat.com>
+- 2.00 final, rolls in pretty much all our patches. :)
+- fix reporting of in use dquot entries from quotastats
+- change repquota man page to fix documentation of -v (#10330)
+- include warnquota.conf
+
+* Mon Nov 20 2000 Bill Nottingham <notting@redhat.com>
+- fix ia64 build
+
+* Mon Aug 21 2000 Jeff Johnson <jbj@redhat.com>
+- add LABEL=foo support (#16390).
+
+* Thu Jul 27 2000 Jeff Johnson <jbj@redhat.com>
+- remote NFS quotas with different blocksize converted incorrectly (#11932).
+
+* Wed Jul 12 2000 Prospector <bugzilla@redhat.com>
+- automatic rebuild
+
+* Thu Jun 15 2000 Jeff Johnson <jbj@redhat.com>
+- FHS packaging.
+
+* Wed May 10 2000 Jeff Johnson <jbj@redhat.com>
+- apply patch5 (H.J. Lu)
+
+* Wed Feb 02 2000 Cristian Gafton <gafton@redhat.com>
+- fix description
+- man pages are compressed
+
+* Tue Jan 18 2000 Preston Brown <pbrown@redhat.com>
+- quota 2.00 series
+- removed unnecessary patches
+
+* Thu Aug  5 1999 Jeff Johnson <jbj@redhat.com>
+- fix man page FUD (#4369).
+
+* Thu May 13 1999 Peter Hanecak <hanecak@megaloman.sk>
+- changes to allow non-root users to build too (Makefile patch, %%attr)
+
+* Tue Apr 13 1999 Jeff Johnson <jbj@redhat.com>
+- fix for sparc64 quotas (#2147)
+
+* Sun Mar 21 1999 Cristian Gafton <gafton@redhat.com> 
+- auto rebuild in the new build environment (release 5)
+
+* Mon Dec 28 1998 Cristian Gafton <gafton@redhat.com>
+- don't install rpc.rquotad - we will use the one from the knfsd package
+  instead
+
+* Thu Dec 17 1998 Jeff Johnson <jbj@redhat.com>
+- merge ultrapenguin 1.1.9 changes.
+
+* Thu May 07 1998 Prospector System <bugs@redhat.com>
+- translations modified for de, fr, tr
+
+* Thu Apr 30 1998 Cristian Gafton <gafton@redhat.com>
+- removed patch for mntent
+
+* Fri Mar 27 1998 Jakub Jelinek <jj@ultra.linux.cz>
+- updated to quota 1.66
+
+* Tue Jan 13 1998 Erik Troan <ewt@redhat.com>
+- builds rquotad
+- installs rpc.rquotad.8 symlink
+
+* Mon Oct 20 1997 Erik Troan <ewt@redhat.com>
+- removed /usr/include/rpcsvc/* from filelist
+- uses a buildroot and %%attr
+
+* Thu Jun 19 1997 Erik Troan <ewt@redhat.com>
+- built against glibc
+
+* Tue Mar 25 1997 Erik Troan <ewt@redhat.com>
+- Moved /usr/sbin/quota to /usr/bin/quota