quota: add quota package (#2995)
* quota: migrate from SPECS-EXTENDED to SPECS * quota: update to 4.06 (imported from F36) * quota: apply the unapplied patches F36 seems to have unapplied patches and this looks to be unintentional. Let's apply them. * quota: update signatures file * quota: Remove conflicts with older quota package We don't have an older quota package so this line is unnecessary * cgmanifest: Update quota entry with new 4.06 version * quota: use %autosetup macro Signed-off-by: Chris Co <chrco@microsoft.com>
This commit is contained in:
Родитель
6c097f283b
Коммит
cf695831b7
|
@ -1,106 +0,0 @@
|
|||
From b6bb53e1124e6b813fe4de5682b9d9a9f8a1fba8 Mon Sep 17 00:00:00 2001
|
||||
From: Jan Kara <jack@suse.cz>
|
||||
Date: Tue, 2 Apr 2019 16:54:49 +0200
|
||||
Subject: [PATCH] COPYING: Update mailing address
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Signed-off-by: Jan Kara <jack@suse.cz>
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
COPYING | 28 ++++++++++++++--------------
|
||||
1 file changed, 14 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/COPYING b/COPYING
|
||||
index 784e9cf..bb6a5e0 100644
|
||||
--- a/COPYING
|
||||
+++ b/COPYING
|
||||
@@ -1,16 +1,16 @@
|
||||
This package, the quota tools, are made available under the GNU Public License
|
||||
version 2.
|
||||
-----------------------------------------------------------------------
|
||||
+-----------------------------------------------------------------------
|
||||
|
||||
- GNU GENERAL PUBLIC LICENSE
|
||||
- Version 2, June 1991
|
||||
+ GNU GENERAL PUBLIC LICENSE
|
||||
+ Version 2, June 1991
|
||||
|
||||
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
|
||||
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
- Preamble
|
||||
+ Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
@@ -19,7 +19,7 @@ software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
-the GNU Library General Public License instead.) You can apply it to
|
||||
+the GNU Lesser General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
@@ -59,8 +59,8 @@ patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
-
|
||||
- GNU GENERAL PUBLIC LICENSE
|
||||
+
|
||||
+ GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
@@ -114,7 +114,7 @@ above, provided that you also meet all of these conditions:
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
-
|
||||
+
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
@@ -172,7 +172,7 @@ access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
-
|
||||
+
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
@@ -229,7 +229,7 @@ impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
-
|
||||
+
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
@@ -259,7 +259,7 @@ make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
- NO WARRANTY
|
||||
+ NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
@@ -281,4 +281,4 @@ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
- END OF TERMS AND CONDITIONS
|
||||
+ END OF TERMS AND CONDITIONS
|
||||
--
|
||||
2.20.1
|
||||
|
|
@ -1,53 +0,0 @@
|
|||
From 514cfb367e9c673c9c18b84a9c9c94ea84b91112 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
|
||||
Date: Fri, 21 Feb 2020 10:00:05 +0100
|
||||
Subject: [PATCH] Fix ignoring disabled quotas
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
"quota" command ignores file systems without enabled quotas. (In
|
||||
contrast to "quota -f".) This works for local file systems and it used
|
||||
to work for NFS file system until this commit:
|
||||
|
||||
commit 4cd287f3fa3838a31eb6636366f8ce26ee6e1425
|
||||
Author: Jan Kara <jack@suse.cz>
|
||||
Date: Tue May 28 10:52:49 2019 +0200
|
||||
|
||||
rpc: Clarify error message when cannot connect to rpc.rquotad
|
||||
|
||||
Currently when RPC rquota service is not registered, we report somewhat
|
||||
confusing "No such file of directory" error. For other errors when
|
||||
creating rquota request we report "Connection refused". There's no big
|
||||
difference for user between these errors and neither of them tells what
|
||||
really happened. So just unify handling of these errors and report more
|
||||
general error telling the user where the problem is.
|
||||
|
||||
that broke it. "quota" command now reports an error whenever at least
|
||||
one NFS-mounted file system has disabled the quotas. This renders the
|
||||
tool unusable.
|
||||
|
||||
This patch readds an exception for the ENOENT errno that was removed
|
||||
with the commit probably by a mistake.
|
||||
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
quotaops.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/quotaops.c b/quotaops.c
|
||||
index 1a8d7fe..0daa8ec 100644
|
||||
--- a/quotaops.c
|
||||
+++ b/quotaops.c
|
||||
@@ -127,7 +127,7 @@ struct dquot *getprivs(qid_t id, struct quota_handle **handles, int ignore_noquo
|
||||
char *estr;
|
||||
|
||||
/* If rpc.rquotad is not running, filesystem might be just without quotas... */
|
||||
- if (ignore_noquota && errno == ECONNREFUSED)
|
||||
+ if (ignore_noquota && (errno == ENOENT || errno == ECONNREFUSED))
|
||||
continue;
|
||||
|
||||
if (errno == ECONNREFUSED) {
|
||||
--
|
||||
2.21.1
|
||||
|
|
@ -1,74 +0,0 @@
|
|||
From bbcf9eedb2299ab55a0ae208e196eb2ca59ad97e Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
|
||||
Date: Thu, 30 May 2019 13:20:25 +0200
|
||||
Subject: [PATCH] Make a directory for quota_nld PID file configurable
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
While Filesystem Hierarchy Standard prescribes /var/run path for
|
||||
storing PID files, some (systemd-based) distributions uses /run.
|
||||
|
||||
This patch adds a --with-pid-dir=DIRECTORY option to the ./configure
|
||||
script. The option enables to change the path. Default one is
|
||||
/var/run as used to be until now.
|
||||
|
||||
(I did not use $localstatedir environment variable because Autoconf
|
||||
manual allows using "precious" variables only in a makefile.)
|
||||
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
configure.ac | 10 ++++++++++
|
||||
quota_nld.c | 4 ++--
|
||||
2 files changed, 12 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index b783568..3cb57c5 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -277,6 +277,15 @@ AS_IF([test "$with_proc_mounts" != "no"], [
|
||||
AC_DEFINE_UNQUOTED([ALT_MTAB], ["$with_proc_mounts"], [File with mounted filesystems])
|
||||
])
|
||||
|
||||
+AC_ARG_WITH([pid-dir],
|
||||
+ [AS_HELP_STRING([--with-pid-dir=DIRECTORY], [Create PID files in this directory instead of /var/run])],
|
||||
+ [with_pid_dir="$withval"]
|
||||
+)
|
||||
+AS_IF([test "X$with_pid_dir" == "X" -o "$with_pid_dir" == "yes" -o "$with_pid_dir" == "no"],[
|
||||
+ with_pid_dir="/var/run"
|
||||
+])
|
||||
+AC_DEFINE_UNQUOTED([PID_DIR], ["$with_pid_dir"], [Directory for PID files])
|
||||
+
|
||||
AC_DEFINE_UNQUOTED([COMPILE_OPTS], ["$COMPILE_OPTS"], [Configuration options])
|
||||
|
||||
AC_CONFIG_FILES([
|
||||
@@ -297,6 +306,7 @@ Build configuration:
|
||||
libwrap: ${build_libwrap}
|
||||
netlink: ${build_netlink}
|
||||
nls: ${enable_nls}
|
||||
+ pid-dir: ${with_pid_dir}
|
||||
proc-mounts: ${with_proc_mounts}
|
||||
rpc: ${build_rpc}
|
||||
rpcsetquota: ${enable_rpcsetquota}
|
||||
diff --git a/quota_nld.c b/quota_nld.c
|
||||
index ac24bdb..72d99a9 100644
|
||||
--- a/quota_nld.c
|
||||
+++ b/quota_nld.c
|
||||
@@ -403,12 +403,12 @@ static char *build_pid_file_name(void)
|
||||
errstr(_("Undefined program name.\n"));
|
||||
return NULL;
|
||||
}
|
||||
- pid_name = malloc(9 + strlen(progname) + 4 + 1);
|
||||
+ pid_name = malloc(strlen(PID_DIR) + 1 + strlen(progname) + 4 + 1);
|
||||
if (!pid_name) {
|
||||
errstr(_("Not enough memory to build PID file name.\n"));
|
||||
return NULL;
|
||||
}
|
||||
- sprintf(pid_name, "/var/run/%s.pid", progname);
|
||||
+ sprintf(pid_name, "%s/%s.pid", PID_DIR, progname);
|
||||
return pid_name;
|
||||
}
|
||||
|
||||
--
|
||||
2.20.1
|
||||
|
|
@ -1,112 +0,0 @@
|
|||
From a4b0af23e1e3761825e9d4ac075e3fcae8ab91cb Mon Sep 17 00:00:00 2001
|
||||
From: Jan Kara <jack@suse.cz>
|
||||
Date: Fri, 24 May 2019 12:03:27 +0200
|
||||
Subject: [PATCH 1/4] Make messages about failures for NFS consistent with
|
||||
local filesystems
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Currently, some types for failures when fetching quota information for
|
||||
NFS filesystem were silent (e.g. when rpc.rquotad was not running) while
|
||||
others were reporting error message (e.g. when rpc connection failed).
|
||||
There's no big difference in these for the user / administrator and also
|
||||
is inconsistent with how we deal with local filesystems - there we
|
||||
report error if the filesystem was explicitely specified on command line
|
||||
and silently ignore it for "scan all" operations.
|
||||
|
||||
So change error reporting for NFS to report errors about quota not being
|
||||
supported if and only if filesystem was explicitely specified on command
|
||||
line.
|
||||
|
||||
Signed-off-by: Jan Kara <jack@suse.cz>
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
edquota.c | 4 ++--
|
||||
quota.c | 2 +-
|
||||
quotaops.c | 2 +-
|
||||
setquota.c | 6 +++---
|
||||
4 files changed, 7 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/edquota.c b/edquota.c
|
||||
index 912f833..a77106c 100644
|
||||
--- a/edquota.c
|
||||
+++ b/edquota.c
|
||||
@@ -176,7 +176,7 @@ static void copy_prototype(int argc, char **argv, struct quota_handle **handles)
|
||||
protoprivs = getprivs(protoid, handles, 0);
|
||||
while (argc-- > 0) {
|
||||
id = name2id(*argv, quotatype, !!(flags & FL_NUMNAMES), NULL);
|
||||
- curprivs = getprivs(id, handles, 0);
|
||||
+ curprivs = getprivs(id, handles, !dirname);
|
||||
if (!curprivs)
|
||||
die(1, _("Cannot get quota information for user %s\n"), *argv);
|
||||
argv++;
|
||||
@@ -296,7 +296,7 @@ int main(int argc, char **argv)
|
||||
else {
|
||||
for (; argc > 0; argc--, argv++) {
|
||||
id = name2id(*argv, quotatype, !!(flags & FL_NUMNAMES), NULL);
|
||||
- curprivs = getprivs(id, handles, 0);
|
||||
+ curprivs = getprivs(id, handles, !dirname);
|
||||
if (!curprivs)
|
||||
die(1, _("Cannot get quota information for user %s.\n"), *argv);
|
||||
if (flags & FL_EDIT_TIMES) {
|
||||
diff --git a/quota.c b/quota.c
|
||||
index 8235013..be494e3 100644
|
||||
--- a/quota.c
|
||||
+++ b/quota.c
|
||||
@@ -168,7 +168,7 @@ static int showquotas(int type, qid_t id, int mntcnt, char **mnt)
|
||||
((flags & FL_NOAUTOFS) ? MS_NO_AUTOFS : 0)
|
||||
| ((flags & FL_LOCALONLY) ? MS_LOCALONLY : 0)
|
||||
| ((flags & FL_NFSALL) ? MS_NFS_ALL : 0));
|
||||
- qlist = getprivs(id, handles, !!(flags & FL_QUIETREFUSE));
|
||||
+ qlist = getprivs(id, handles, !mntcnt || (flags & FL_QUIETREFUSE));
|
||||
if (!qlist) {
|
||||
over = 1;
|
||||
goto out_handles;
|
||||
diff --git a/quotaops.c b/quotaops.c
|
||||
index 976e6b3..ad29fd9 100644
|
||||
--- a/quotaops.c
|
||||
+++ b/quotaops.c
|
||||
@@ -125,7 +125,7 @@ struct dquot *getprivs(qid_t id, struct quota_handle **handles, int quiet)
|
||||
|
||||
if (!(q = handles[i]->qh_ops->read_dquot(handles[i], id))) {
|
||||
/* If rpc.rquotad is not running filesystem might be just without quotas... */
|
||||
- if (errno != ENOENT && (errno != ECONNREFUSED || !quiet)) {
|
||||
+ if (!quiet || (errno != ENOENT && errno != ECONNREFUSED)) {
|
||||
int olderrno = errno;
|
||||
|
||||
id2name(id, handles[i]->qh_type, name);
|
||||
diff --git a/setquota.c b/setquota.c
|
||||
index bfd6682..08fdbfc 100644
|
||||
--- a/setquota.c
|
||||
+++ b/setquota.c
|
||||
@@ -314,7 +314,7 @@ static int setlimits(struct quota_handle **handles)
|
||||
struct dquot *q, *protoq, *protoprivs = NULL, *curprivs;
|
||||
int ret = 0;
|
||||
|
||||
- curprivs = getprivs(id, handles, 0);
|
||||
+ curprivs = getprivs(id, handles, !!(flags & FL_ALL));
|
||||
if (flags & FL_PROTO) {
|
||||
protoprivs = getprivs(protoid, handles, 0);
|
||||
for (q = curprivs, protoq = protoprivs; q && protoq; q = q->dq_next, protoq = protoq->dq_next) {
|
||||
@@ -435,7 +435,7 @@ static int batch_setlimits(struct quota_handle **handles)
|
||||
int ret = 0;
|
||||
|
||||
while (!read_entry(&id, &isoftlimit, &ihardlimit, &bsoftlimit, &bhardlimit)) {
|
||||
- curprivs = getprivs(id, handles, 0);
|
||||
+ curprivs = getprivs(id, handles, !!(flags & FL_ALL));
|
||||
for (q = curprivs; q; q = q->dq_next) {
|
||||
q->dq_dqb.dqb_bsoftlimit = bsoftlimit;
|
||||
q->dq_dqb.dqb_bhardlimit = bhardlimit;
|
||||
@@ -474,7 +474,7 @@ static int setindivgraces(struct quota_handle **handles)
|
||||
int ret = 0;
|
||||
struct dquot *q, *curprivs;
|
||||
|
||||
- curprivs = getprivs(id, handles, 0);
|
||||
+ curprivs = getprivs(id, handles, !!(flags & FL_ALL));
|
||||
for (q = curprivs; q; q = q->dq_next) {
|
||||
if (q->dq_dqb.dqb_bsoftlimit && toqb(q->dq_dqb.dqb_curspace) > q->dq_dqb.dqb_bsoftlimit)
|
||||
q->dq_dqb.dqb_btime = toset.dqb_btime;
|
||||
--
|
||||
2.20.1
|
||||
|
|
@ -1,73 +0,0 @@
|
|||
From 00d61f21bfa3ccf40826ce22de12cfeeab8a40a5 Mon Sep 17 00:00:00 2001
|
||||
From: "Dmitry V. Levin" <ldv@altlinux.org>
|
||||
Date: Mon, 1 Apr 2019 02:23:59 +0300
|
||||
Subject: [PATCH] Revert "configure.ac: fix pkg_check_modules calls"
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
CFLAGS and LIBS are variables that users are entitled to modify in order
|
||||
to compile the package, so do not tamper with CFLAGS and LIBS.
|
||||
|
||||
COM_ERR_CFLAGS, EXT2FS_CFLAGS, DBUS_CFLAGS, LIBNL3_CFLAGS, TIRPC_CFLAGS,
|
||||
COMM_ERR_LIBS, EXT2FS_LIBS, DBUS_LIBS, LIBNL3_LIBS, and TIRPC_LIBS
|
||||
should be used directly where appropriate and apparently they already
|
||||
are.
|
||||
|
||||
This reverts commit b54d97d677481287faa5d6b98c92f111141c1af3.
|
||||
|
||||
Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
|
||||
Signed-off-by: Jan Kara <jack@suse.cz>
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
configure.ac | 10 +++++-----
|
||||
1 file changed, 5 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index e8e6412..ff7b9df 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -104,13 +104,13 @@ AC_ARG_ENABLE([ext2direct],
|
||||
)
|
||||
AS_IF([test "x$enable_ext2direct" != "xno"], [
|
||||
build_ext2direct="yes"
|
||||
- PKG_CHECK_MODULES([COM_ERR],[com_err], [CFLAGS="$CFLAGS $COM_ERR_CFLAGS" LIBS="$LIBS $COMM_ERR_LIBS"], [
|
||||
+ PKG_CHECK_MODULES([COM_ERR],[com_err], [], [
|
||||
build_ext2direct="no"
|
||||
AS_IF([test "x$enable_ext2direct" = "xyes"], [
|
||||
AC_MSG_ERROR([Ext2direct requested but required com_err library not found])
|
||||
])
|
||||
])
|
||||
- PKG_CHECK_MODULES([EXT2FS],[ext2fs], [CFLAGS="$CFLAGS $EXT2FS_CFLAGS" LIBS="$LIBS $EXT2FS_LIBS"], [
|
||||
+ PKG_CHECK_MODULES([EXT2FS],[ext2fs], [], [
|
||||
build_ext2direct="no"
|
||||
AS_IF([test "x$enable_ext2direct" = "xyes"], [
|
||||
AC_MSG_ERROR([Ext2direct requested but required ext2fs library not found])
|
||||
@@ -138,13 +138,13 @@ AC_ARG_ENABLE([netlink],
|
||||
)
|
||||
AS_IF([test "x$enable_netlink" != "xno"], [
|
||||
build_netlink="yes"
|
||||
- PKG_CHECK_MODULES([DBUS], [dbus-1], [CFLAGS="$CFLAGS $DBUS_CFLAGS" LIBS="$LIBS $DBUS_LIBS"], [
|
||||
+ PKG_CHECK_MODULES([DBUS], [dbus-1], [], [
|
||||
build_netlink="no"
|
||||
AS_IF([test "x$enable_netlink" = "xyes"] , [
|
||||
AC_MSG_ERROR([Required dbus libraries for quota netlink daemon not found.])
|
||||
])
|
||||
])
|
||||
- PKG_CHECK_MODULES([LIBNL3], [libnl-3.0 >= 3.1 libnl-genl-3.0], [CFLAGS="$CFLAGS $LIBNL3_CFLAGS" LIBS="$LIBS $LIBNL3_LIBS"], [
|
||||
+ PKG_CHECK_MODULES([LIBNL3], [libnl-3.0 >= 3.1 libnl-genl-3.0], [], [
|
||||
build_netlink="no"
|
||||
AS_IF([test "x$enable_netlink" = "xyes"] , [
|
||||
AC_MSG_ERROR([Required libnl3 libraries for quota netlink daemon not found.])
|
||||
@@ -207,7 +207,7 @@ AS_IF([test x"$enable_rpc" != "xno"], [
|
||||
build_rpc="no"
|
||||
])
|
||||
|
||||
- PKG_CHECK_MODULES([TIRPC], [libtirpc], [CFLAGS="$CFLAGS $TIRPC_CFLAGS" LIBS="$LIBS $TIRPC_LIBS"], [
|
||||
+ PKG_CHECK_MODULES([TIRPC], [libtirpc], [], [
|
||||
AS_IF([test x"$enable_rpc" = "xyes"], [
|
||||
AC_MSG_ERROR([could not locate required libtirpc])
|
||||
], [
|
||||
--
|
||||
2.20.1
|
||||
|
|
@ -1,42 +0,0 @@
|
|||
From 61e57e73a6c63ad50825182ca80bc2a5fcb3e1e2 Mon Sep 17 00:00:00 2001
|
||||
From: Jan Kara <jack@suse.cz>
|
||||
Date: Tue, 30 Jul 2019 17:25:46 +0200
|
||||
Subject: [PATCH] quotacheck: Skip checking of filesystems with hidded quota
|
||||
files early
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Currently when filesystem tracks quotas in hidden quota files (but is
|
||||
also capable of tracking it in regular files), we scan the whole
|
||||
filesystem and only after that find out we cannot actually make use of
|
||||
newly created quota files. Just detect this case before scanning the fs
|
||||
and skip it.
|
||||
|
||||
Signed-off-by: Jan Kara <jack@suse.cz>
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
quotacheck.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/quotacheck.c b/quotacheck.c
|
||||
index 2cdf475..1311c10 100644
|
||||
--- a/quotacheck.c
|
||||
+++ b/quotacheck.c
|
||||
@@ -1181,11 +1181,11 @@ static int check_all(void)
|
||||
continue;
|
||||
}
|
||||
cfmt = fmt;
|
||||
- if (uwant && me_hasquota(mnt, USRQUOTA))
|
||||
+ if (uwant && me_hasquota(mnt, USRQUOTA) && mnt->me_qfmt[USRQUOTA] != QF_META)
|
||||
ucheck = 1;
|
||||
else
|
||||
ucheck = 0;
|
||||
- if (gwant && me_hasquota(mnt, GRPQUOTA))
|
||||
+ if (gwant && me_hasquota(mnt, GRPQUOTA) && mnt->me_qfmt[GRPQUOTA] != QF_META)
|
||||
gcheck = 1;
|
||||
else
|
||||
gcheck = 0;
|
||||
--
|
||||
2.21.0
|
||||
|
|
@ -1,68 +0,0 @@
|
|||
From 7942290a0a6230fcc56eae42bf436e6eeca88777 Mon Sep 17 00:00:00 2001
|
||||
From: Jan Kara <jack@suse.cz>
|
||||
Date: Fri, 24 May 2019 12:25:15 +0200
|
||||
Subject: [PATCH 3/4] quotaops: Do not leak dquot structures on failure
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Some error paths in getprivs() were not properly freeing already fetched
|
||||
structures. Free them properly in case of error.
|
||||
|
||||
Signed-off-by: Jan Kara <jack@suse.cz>
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
quotaops.c | 9 +++++----
|
||||
1 file changed, 5 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/quotaops.c b/quotaops.c
|
||||
index 3d65490..e067d29 100644
|
||||
--- a/quotaops.c
|
||||
+++ b/quotaops.c
|
||||
@@ -80,7 +80,7 @@ struct dquot *getprivs(qid_t id, struct quota_handle **handles, int ignore_noquo
|
||||
if (euid != id && euid != 0) {
|
||||
uid2user(id, name);
|
||||
errstr(_("%s (uid %d): Permission denied\n"), name, id);
|
||||
- return (struct dquot *)NULL;
|
||||
+ goto out_err;
|
||||
}
|
||||
break;
|
||||
case GRPQUOTA:
|
||||
@@ -92,7 +92,7 @@ struct dquot *getprivs(qid_t id, struct quota_handle **handles, int ignore_noquo
|
||||
if (!gidsetp) {
|
||||
gid2group(id, name);
|
||||
errstr(_("%s (gid %d): gid set allocation (%d): %s\n"), name, id, ngroups, strerror(errno));
|
||||
- return (struct dquot *)NULL;
|
||||
+ goto out_err;
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -103,7 +103,7 @@ struct dquot *getprivs(qid_t id, struct quota_handle **handles, int ignore_noquo
|
||||
free(gidsetp);
|
||||
gid2group(id, name);
|
||||
errstr(_("%s (gid %d): error while trying getgroups(): %s\n"), name, id, strerror(errno));
|
||||
- return (struct dquot *)NULL;
|
||||
+ goto out_err;
|
||||
}
|
||||
|
||||
for (j = 0; j < ngroups; j++)
|
||||
@@ -115,7 +115,7 @@ struct dquot *getprivs(qid_t id, struct quota_handle **handles, int ignore_noquo
|
||||
gid2group(id, name);
|
||||
errstr(_("%s (gid %d): Permission denied\n"),
|
||||
name, id);
|
||||
- return (struct dquot *)NULL;
|
||||
+ goto out_err;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
@@ -134,6 +134,7 @@ struct dquot *getprivs(qid_t id, struct quota_handle **handles, int ignore_noquo
|
||||
id2name(id, handles[i]->qh_type, name);
|
||||
errstr(_("error while getting quota from %s for %s (id %u): %s\n"),
|
||||
handles[i]->qh_quotadev, name, id, strerror(olderrno));
|
||||
+out_err:
|
||||
freeprivs(qhead);
|
||||
return NULL;
|
||||
}
|
||||
--
|
||||
2.20.1
|
||||
|
|
@ -1,61 +0,0 @@
|
|||
From e6decbfe6c44935584954ab01c8be2f5d02acf1b Mon Sep 17 00:00:00 2001
|
||||
From: Jan Kara <jack@suse.cz>
|
||||
Date: Fri, 24 May 2019 12:21:46 +0200
|
||||
Subject: [PATCH 2/4] quotaops: Do not return partial list from getprivs()
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
When we failed to get some dquots from NFS server, we just reported
|
||||
error, didn't include the dquot in the list built in getprivs() but
|
||||
otherwise continued operation. Fail getprivs() in case of error instead
|
||||
so that the failure propagates properly to the caller.
|
||||
|
||||
Signed-off-by: Jan Kara <jack@suse.cz>
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
quotaops.c | 19 +++++++++++--------
|
||||
1 file changed, 11 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/quotaops.c b/quotaops.c
|
||||
index ad29fd9..3d65490 100644
|
||||
--- a/quotaops.c
|
||||
+++ b/quotaops.c
|
||||
@@ -61,7 +61,7 @@ void update_grace_times(struct dquot *q)
|
||||
/*
|
||||
* Collect the requested quota information.
|
||||
*/
|
||||
-struct dquot *getprivs(qid_t id, struct quota_handle **handles, int quiet)
|
||||
+struct dquot *getprivs(qid_t id, struct quota_handle **handles, int ignore_noquota)
|
||||
{
|
||||
struct dquot *q, *qtail = NULL, *qhead = NULL;
|
||||
int i;
|
||||
@@ -124,15 +124,18 @@ struct dquot *getprivs(qid_t id, struct quota_handle **handles, int quiet)
|
||||
#endif
|
||||
|
||||
if (!(q = handles[i]->qh_ops->read_dquot(handles[i], id))) {
|
||||
+ int olderrno = errno;
|
||||
+
|
||||
/* If rpc.rquotad is not running filesystem might be just without quotas... */
|
||||
- if (!quiet || (errno != ENOENT && errno != ECONNREFUSED)) {
|
||||
- int olderrno = errno;
|
||||
+ if (ignore_noquota &&
|
||||
+ (errno == ENOENT || errno == ECONNREFUSED))
|
||||
+ continue;
|
||||
|
||||
- id2name(id, handles[i]->qh_type, name);
|
||||
- errstr(_("error while getting quota from %s for %s (id %u): %s\n"),
|
||||
- handles[i]->qh_quotadev, name, id, strerror(olderrno));
|
||||
- }
|
||||
- continue;
|
||||
+ id2name(id, handles[i]->qh_type, name);
|
||||
+ errstr(_("error while getting quota from %s for %s (id %u): %s\n"),
|
||||
+ handles[i]->qh_quotadev, name, id, strerror(olderrno));
|
||||
+ freeprivs(qhead);
|
||||
+ return NULL;
|
||||
}
|
||||
if (qhead == NULL)
|
||||
qhead = q;
|
||||
--
|
||||
2.20.1
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
From d9996b2b6b3cdcd41485804eabadbf576506c8fa Mon Sep 17 00:00:00 2001
|
||||
From: Jan Kara <jack@suse.cz>
|
||||
Date: Tue, 28 May 2019 16:39:22 +0200
|
||||
Subject: [PATCH] quotaops: Make error string translatable
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Add forgotten translation quotes to the error string.
|
||||
|
||||
Signed-off-by: Jan Kara <jack@suse.cz>
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
quotaops.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/quotaops.c b/quotaops.c
|
||||
index 16475e8..1a8d7fe 100644
|
||||
--- a/quotaops.c
|
||||
+++ b/quotaops.c
|
||||
@@ -131,7 +131,7 @@ struct dquot *getprivs(qid_t id, struct quota_handle **handles, int ignore_noquo
|
||||
continue;
|
||||
|
||||
if (errno == ECONNREFUSED) {
|
||||
- estr = "Cannot connect to RPC quota service";
|
||||
+ estr = _("Cannot connect to RPC quota service");
|
||||
} else {
|
||||
estr = strerror(errno);
|
||||
}
|
||||
--
|
||||
2.20.1
|
||||
|
|
@ -1,127 +0,0 @@
|
|||
From 4cd287f3fa3838a31eb6636366f8ce26ee6e1425 Mon Sep 17 00:00:00 2001
|
||||
From: Jan Kara <jack@suse.cz>
|
||||
Date: Tue, 28 May 2019 10:52:49 +0200
|
||||
Subject: [PATCH] rpc: Clarify error message when cannot connect to rpc.rquotad
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Currently when RPC rquota service is not registered, we report somewhat
|
||||
confusing "No such file of directory" error. For other errors when
|
||||
creating rquota request we report "Connection refused". There's no big
|
||||
difference for user between these errors and neither of them tells what
|
||||
really happened. So just unify handling of these errors and report more
|
||||
general error telling the user where the problem is.
|
||||
|
||||
Signed-off-by: Jan Kara <jack@suse.cz>
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
quotaops.c | 14 +++++++++-----
|
||||
rquota_client.c | 14 --------------
|
||||
2 files changed, 9 insertions(+), 19 deletions(-)
|
||||
|
||||
diff --git a/quotaops.c b/quotaops.c
|
||||
index e067d29..16475e8 100644
|
||||
--- a/quotaops.c
|
||||
+++ b/quotaops.c
|
||||
@@ -124,16 +124,20 @@ struct dquot *getprivs(qid_t id, struct quota_handle **handles, int ignore_noquo
|
||||
#endif
|
||||
|
||||
if (!(q = handles[i]->qh_ops->read_dquot(handles[i], id))) {
|
||||
- int olderrno = errno;
|
||||
+ char *estr;
|
||||
|
||||
- /* If rpc.rquotad is not running filesystem might be just without quotas... */
|
||||
- if (ignore_noquota &&
|
||||
- (errno == ENOENT || errno == ECONNREFUSED))
|
||||
+ /* If rpc.rquotad is not running, filesystem might be just without quotas... */
|
||||
+ if (ignore_noquota && errno == ECONNREFUSED)
|
||||
continue;
|
||||
|
||||
+ if (errno == ECONNREFUSED) {
|
||||
+ estr = "Cannot connect to RPC quota service";
|
||||
+ } else {
|
||||
+ estr = strerror(errno);
|
||||
+ }
|
||||
id2name(id, handles[i]->qh_type, name);
|
||||
errstr(_("error while getting quota from %s for %s (id %u): %s\n"),
|
||||
- handles[i]->qh_quotadev, name, id, strerror(olderrno));
|
||||
+ handles[i]->qh_quotadev, name, id, estr);
|
||||
out_err:
|
||||
freeprivs(qhead);
|
||||
return NULL;
|
||||
diff --git a/rquota_client.c b/rquota_client.c
|
||||
index a3a4ae3..7f8e821 100644
|
||||
--- a/rquota_client.c
|
||||
+++ b/rquota_client.c
|
||||
@@ -148,7 +148,6 @@ int rpc_rquota_get(struct dquot *dquot)
|
||||
} args;
|
||||
char *fsname_tmp, *host, *pathname;
|
||||
struct timeval timeout = { 2, 0 };
|
||||
- int rquotaprog_not_registered = 0;
|
||||
int ret;
|
||||
|
||||
/*
|
||||
@@ -210,8 +209,6 @@ int rpc_rquota_get(struct dquot *dquot)
|
||||
}
|
||||
else {
|
||||
result = NULL;
|
||||
- if (rpc_createerr.cf_stat == RPC_PROGNOTREGISTERED)
|
||||
- rquotaprog_not_registered = 1;
|
||||
}
|
||||
|
||||
if (result == NULL || !result->status) {
|
||||
@@ -251,16 +248,12 @@ int rpc_rquota_get(struct dquot *dquot)
|
||||
clnt_destroy(clnt);
|
||||
} else {
|
||||
result = NULL;
|
||||
- if (rpc_createerr.cf_stat == RPC_PROGNOTREGISTERED)
|
||||
- rquotaprog_not_registered = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
free(fsname_tmp);
|
||||
if (result)
|
||||
ret = result->status;
|
||||
- else if (rquotaprog_not_registered)
|
||||
- ret = Q_NOQUOTA;
|
||||
else
|
||||
ret = -1;
|
||||
return rquota_err(ret);
|
||||
@@ -280,7 +273,6 @@ int rpc_rquota_set(int qcmd, struct dquot *dquot)
|
||||
} args;
|
||||
char *fsname_tmp, *host, *pathname;
|
||||
struct timeval timeout = { 2, 0 };
|
||||
- int rquotaprog_not_registered = 0;
|
||||
int ret;
|
||||
|
||||
/* RPC limits values to 32b variables. Prevent value wrapping. */
|
||||
@@ -340,8 +332,6 @@ int rpc_rquota_set(int qcmd, struct dquot *dquot)
|
||||
}
|
||||
else {
|
||||
result = NULL;
|
||||
- if (rpc_createerr.cf_stat == RPC_PROGNOTREGISTERED)
|
||||
- rquotaprog_not_registered = 1;
|
||||
}
|
||||
|
||||
if (result == NULL || !result->status) {
|
||||
@@ -383,16 +373,12 @@ int rpc_rquota_set(int qcmd, struct dquot *dquot)
|
||||
clnt_destroy(clnt);
|
||||
} else {
|
||||
result = NULL;
|
||||
- if (rpc_createerr.cf_stat == RPC_PROGNOTREGISTERED)
|
||||
- rquotaprog_not_registered = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
free(fsname_tmp);
|
||||
if (result)
|
||||
ret = result->status;
|
||||
- else if (rquotaprog_not_registered)
|
||||
- ret = Q_NOQUOTA;
|
||||
else
|
||||
ret = -1;
|
||||
return rquota_err(ret);
|
||||
--
|
||||
2.20.1
|
||||
|
|
@ -1,73 +0,0 @@
|
|||
From daba90fb6d9b8c8f1361457bf2bea7b18f4e35ec Mon Sep 17 00:00:00 2001
|
||||
From: Jan Kara <jack@suse.cz>
|
||||
Date: Fri, 24 May 2019 12:53:32 +0200
|
||||
Subject: [PATCH 4/4] setquota: Report failure to obtain quota information
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
setquota currently silently ignored when it could not obtain quota
|
||||
information to update and just skipped updating for the filesystem. Make
|
||||
it report error and exit properly.
|
||||
|
||||
Signed-off-by: Jan Kara <jack@suse.cz>
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
setquota.c | 18 ++++++++++++++++++
|
||||
1 file changed, 18 insertions(+)
|
||||
|
||||
diff --git a/setquota.c b/setquota.c
|
||||
index 08fdbfc..993d920 100644
|
||||
--- a/setquota.c
|
||||
+++ b/setquota.c
|
||||
@@ -315,8 +315,17 @@ static int setlimits(struct quota_handle **handles)
|
||||
int ret = 0;
|
||||
|
||||
curprivs = getprivs(id, handles, !!(flags & FL_ALL));
|
||||
+ if (!curprivs) {
|
||||
+ errstr(_("Error getting quota information to update.\n"));
|
||||
+ return -1;
|
||||
+ }
|
||||
if (flags & FL_PROTO) {
|
||||
protoprivs = getprivs(protoid, handles, 0);
|
||||
+ if (!protoprivs) {
|
||||
+ errstr(_("Error getting prototype quota information.\n"));
|
||||
+ ret = -1;
|
||||
+ goto out;
|
||||
+ }
|
||||
for (q = curprivs, protoq = protoprivs; q && protoq; q = q->dq_next, protoq = protoq->dq_next) {
|
||||
q->dq_dqb.dqb_bsoftlimit = protoq->dq_dqb.dqb_bsoftlimit;
|
||||
q->dq_dqb.dqb_bhardlimit = protoq->dq_dqb.dqb_bhardlimit;
|
||||
@@ -337,6 +346,7 @@ static int setlimits(struct quota_handle **handles)
|
||||
}
|
||||
if (putprivs(curprivs, COMMIT_LIMITS) == -1)
|
||||
ret = -1;
|
||||
+out:
|
||||
freeprivs(curprivs);
|
||||
return ret;
|
||||
}
|
||||
@@ -436,6 +446,10 @@ static int batch_setlimits(struct quota_handle **handles)
|
||||
|
||||
while (!read_entry(&id, &isoftlimit, &ihardlimit, &bsoftlimit, &bhardlimit)) {
|
||||
curprivs = getprivs(id, handles, !!(flags & FL_ALL));
|
||||
+ if (!curprivs) {
|
||||
+ errstr(_("Error getting quota information to update.\n"));
|
||||
+ return -1;
|
||||
+ }
|
||||
for (q = curprivs; q; q = q->dq_next) {
|
||||
q->dq_dqb.dqb_bsoftlimit = bsoftlimit;
|
||||
q->dq_dqb.dqb_bhardlimit = bhardlimit;
|
||||
@@ -475,6 +489,10 @@ static int setindivgraces(struct quota_handle **handles)
|
||||
struct dquot *q, *curprivs;
|
||||
|
||||
curprivs = getprivs(id, handles, !!(flags & FL_ALL));
|
||||
+ if (!curprivs) {
|
||||
+ errstr(_("Error getting quota information to update.\n"));
|
||||
+ return -1;
|
||||
+ }
|
||||
for (q = curprivs; q; q = q->dq_next) {
|
||||
if (q->dq_dqb.dqb_bsoftlimit && toqb(q->dq_dqb.dqb_curspace) > q->dq_dqb.dqb_bsoftlimit)
|
||||
q->dq_dqb.dqb_btime = toset.dqb_btime;
|
||||
--
|
||||
2.20.1
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
From 662e9e93babc9be39bb2d6267ffe428703ca137e Mon Sep 17 00:00:00 2001
|
||||
From: Jan Kara <jack@suse.cz>
|
||||
Date: Thu, 12 Sep 2019 10:18:01 +0200
|
||||
Subject: [PATCH] warnquota: Clarify that CC_TO gets resolved through LDAP
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Clarify that CC_TO field from warnquota.conf gets resolved through LDAP
|
||||
lookup similarly to normal message recifient.
|
||||
|
||||
Signed-off-by: Jan Kara <jack@suse.cz>
|
||||
Petr Písař: Ported to Fedora 32.
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
warnquota.conf | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/warnquota.conf b/warnquota.conf
|
||||
index 7e00947..34bfe53 100644
|
||||
--- a/warnquota.conf
|
||||
+++ b/warnquota.conf
|
||||
@@ -8,6 +8,8 @@ MAIL_CMD = "/usr/sbin/sendmail -t"
|
||||
FROM = "root@example.com"
|
||||
# but they don't have to be:
|
||||
SUBJECT = NOTE: You are exceeding your allocated disk space limits
|
||||
+# Note that if LDAP is configured, the name in CC_TO gets looked up in LDAP
|
||||
+# to obtain email address similarly to email recipient address.
|
||||
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,
|
||||
--
|
||||
2.21.0
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
From 1ae10f8692981285ad52af9e9ae3e5f16201b187 Mon Sep 17 00:00:00 2001
|
||||
From: Jan Kara <jack@suse.cz>
|
||||
Date: Mon, 12 Aug 2019 16:31:31 +0200
|
||||
Subject: [PATCH] warnquota: Fix help text
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
The help text was wrongly saying that -v is equivalent to --version.
|
||||
It should be -V.
|
||||
|
||||
Signed-off-by: Jan Kara <jack@suse.cz>
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
warnquota.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/warnquota.c b/warnquota.c
|
||||
index 5158094..606b7cc 100644
|
||||
--- a/warnquota.c
|
||||
+++ b/warnquota.c
|
||||
@@ -1042,7 +1042,7 @@ static void usage(void)
|
||||
-q, --quota-tab=quotatab-file non-default quotatab\n\
|
||||
-a, --admins-file=admins-file non-default admins file\n\
|
||||
-h, --help display this help message and exit\n\
|
||||
--v, --version display version information and exit\n\n"));
|
||||
+-V, --version display version information and exit\n\n"));
|
||||
errstr(_("Bugs to %s\n"), PACKAGE_BUGREPORT);
|
||||
wc_exit(1);
|
||||
}
|
||||
--
|
||||
2.21.0
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
From a543b200cdd1e798383cc1070e51ad13ff424543 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
|
||||
Date: Tue, 5 Nov 2019 12:11:14 +0100
|
||||
Subject: [PATCH] warnquota: Free LDAP error message
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
ldap_get_option(3) documents that a pointer set by
|
||||
LDAP_OPT_DIAGNOSTIC_MESSAGE must be freed with ldap_memfree(3).
|
||||
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
warnquota.c | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/warnquota.c b/warnquota.c
|
||||
index d54b4c1..f6b42d5 100644
|
||||
--- a/warnquota.c
|
||||
+++ b/warnquota.c
|
||||
@@ -190,8 +190,11 @@ static void print_ldap_error(int err, char *prefix)
|
||||
sstrncat(outbuf, ": %s\n", LDAP_ERR_BUF_SIZE);
|
||||
errstr(outbuf, ldap_err2string(err));
|
||||
ldap_get_option(ldapconn, LDAP_OPT_DIAGNOSTIC_MESSAGE, (void *)&msg);
|
||||
- if (msg && strcmp(msg, ""))
|
||||
+ if (msg) {
|
||||
+ if (strcmp(msg, ""))
|
||||
errstr(_("Additional error info: %s\n"), msg);
|
||||
+ ldap_memfree(msg);
|
||||
+ }
|
||||
}
|
||||
|
||||
static int setup_ldap(struct configparams *config)
|
||||
--
|
||||
2.21.0
|
||||
|
|
@ -1,61 +0,0 @@
|
|||
From 50c3f30d610ed9979a1291422e8641e05f881212 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
|
||||
Date: Tue, 5 Nov 2019 14:20:46 +0100
|
||||
Subject: [PATCH] warnquota: Initialize all members of a configparams structure
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Running warnquota under valgrind reported many "Conditional jump or
|
||||
move depends on uninitialised value" mistakes because readconfigfile()
|
||||
did not initizalize ldap_bindpw member if some of the configuration
|
||||
options were missing from the configuration file.
|
||||
|
||||
This patch simply initializes all bytes of the configparams structure
|
||||
to 0 instead of settting each of the members explicitly.
|
||||
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
warnquota.c | 8 +-------
|
||||
1 file changed, 1 insertion(+), 7 deletions(-)
|
||||
|
||||
diff --git a/warnquota.c b/warnquota.c
|
||||
index f6b42d5..2882fee 100644
|
||||
--- a/warnquota.c
|
||||
+++ b/warnquota.c
|
||||
@@ -759,13 +759,13 @@ static int readconfigfile(const char *filename, struct configparams *config)
|
||||
char *locale;
|
||||
|
||||
/* set default values */
|
||||
+ memset(config, 0, sizeof(*config));
|
||||
sstrncpy(config->mail_cmd, MAIL_CMD, CNF_BUFFER);
|
||||
sstrncpy(config->from, FROM, CNF_BUFFER);
|
||||
sstrncpy(config->subject, SUBJECT, CNF_BUFFER);
|
||||
sstrncpy(config->cc_to, CC_TO, CNF_BUFFER);
|
||||
sstrncpy(config->support, SUPPORT, CNF_BUFFER);
|
||||
sstrncpy(config->phone, PHONE, CNF_BUFFER);
|
||||
- (config->charset)[0] = '\0';
|
||||
setlocale(LC_ALL, NULL);
|
||||
locale = setlocale(LC_MESSAGES, NULL);
|
||||
#ifdef HAVE_NL_LANGINFO
|
||||
@@ -775,17 +775,11 @@ static int readconfigfile(const char *filename, struct configparams *config)
|
||||
}
|
||||
#endif
|
||||
maildev[0] = 0;
|
||||
- config->user_signature = config->user_message = config->group_signature = config->group_message = NULL;
|
||||
config->cc_before = -1;
|
||||
|
||||
#ifdef USE_LDAP_MAIL_LOOKUP
|
||||
- config->use_ldap_mail = 0;
|
||||
- config->ldap_starttls = 0;
|
||||
config->ldap_tls = LDAP_OPT_X_TLS_NEVER;
|
||||
config->ldap_vers = LDAP_VERSION3;
|
||||
- config->ldap_port = config->ldap_is_setup = 0;
|
||||
- config->ldap_host[0] = 0;
|
||||
- config->ldap_uri[0] = 0;
|
||||
#endif
|
||||
|
||||
if (!(fp = fopen(filename, "r"))) {
|
||||
--
|
||||
2.21.0
|
||||
|
|
@ -1,82 +0,0 @@
|
|||
From 52ead0d37dcbce59338dcb765527712c9ee656e1 Mon Sep 17 00:00:00 2001
|
||||
From: Jan Kara <jack@suse.cz>
|
||||
Date: Thu, 12 Sep 2019 10:06:38 +0200
|
||||
Subject: [PATCH] warnquota: Print also additional error info for LDAP errors
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
LDAP library provides additional error information in some cases. Print
|
||||
it make debugging LDAP setup easier.
|
||||
|
||||
Signed-off-by: Jan Kara <jack@suse.cz>
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
warnquota.c | 26 +++++++++++++++++++++-----
|
||||
1 file changed, 21 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/warnquota.c b/warnquota.c
|
||||
index 24d7410..d54b4c1 100644
|
||||
--- a/warnquota.c
|
||||
+++ b/warnquota.c
|
||||
@@ -178,6 +178,22 @@ static void wc_exit(int ex_stat)
|
||||
}
|
||||
|
||||
#ifdef USE_LDAP_MAIL_LOOKUP
|
||||
+
|
||||
+#define LDAP_ERR_BUF_SIZE 1024
|
||||
+
|
||||
+static void print_ldap_error(int err, char *prefix)
|
||||
+{
|
||||
+ char *msg = NULL;
|
||||
+ char outbuf[LDAP_ERR_BUF_SIZE];
|
||||
+
|
||||
+ sstrncpy(outbuf, prefix, LDAP_ERR_BUF_SIZE);
|
||||
+ sstrncat(outbuf, ": %s\n", LDAP_ERR_BUF_SIZE);
|
||||
+ errstr(outbuf, ldap_err2string(err));
|
||||
+ ldap_get_option(ldapconn, LDAP_OPT_DIAGNOSTIC_MESSAGE, (void *)&msg);
|
||||
+ if (msg && strcmp(msg, ""))
|
||||
+ errstr(_("Additional error info: %s\n"), msg);
|
||||
+}
|
||||
+
|
||||
static int setup_ldap(struct configparams *config)
|
||||
{
|
||||
int ret;
|
||||
@@ -187,7 +203,7 @@ static int setup_ldap(struct configparams *config)
|
||||
ret = ldap_initialize(&ldapconn, config->ldap_uri);
|
||||
|
||||
if (ret != LDAP_SUCCESS) {
|
||||
- errstr(_("ldap_initialize() failed: %s\n"), ldap_err2string(ret));
|
||||
+ print_ldap_error(ret, _("ldap_initialize() failed"));
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -196,13 +212,13 @@ static int setup_ldap(struct configparams *config)
|
||||
ldap_set_option(ldapconn, LDAP_OPT_X_TLS_REQUIRE_CERT, &(config->ldap_tls));
|
||||
ret = ldap_start_tls_s(ldapconn, NULL, NULL);
|
||||
if (ret != LDAP_SUCCESS) {
|
||||
- errstr(_("ldap_start_tls_s() failed: %s\n"), ldap_err2string(ret));
|
||||
- return -1;
|
||||
+ print_ldap_error(ret, _("ldap_start_tls_s() failed"));
|
||||
+ return -1;
|
||||
}
|
||||
}
|
||||
ret = ldap_sasl_bind_s(ldapconn, config->ldap_binddn, LDAP_SASL_SIMPLE, &cred, NULL, NULL, NULL);
|
||||
if (ret != LDAP_SUCCESS) {
|
||||
- errstr(_("ldap_sasl_bind_s() failed: %s\n"), ldap_err2string(ret));
|
||||
+ print_ldap_error(ret, _("ldap_sasl_bind_s() failed"));
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
@@ -428,7 +444,7 @@ static char *lookup_user(struct configparams *config, char *user)
|
||||
|
||||
if (ret != LDAP_SUCCESS) {
|
||||
errstr(_("Error with %s.\n"), user);
|
||||
- errstr(_("ldap_search_ext_s() failed: %s\n"), ldap_err2string(ret));
|
||||
+ print_ldap_error(ret, _("ldap_search_ext_s() failed"));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
--
|
||||
2.21.0
|
||||
|
|
@ -1,42 +0,0 @@
|
|||
From 3615f3ec7dd3c867a8394640c0fc4736189315df Mon Sep 17 00:00:00 2001
|
||||
From: Jan Kara <jack@suse.cz>
|
||||
Date: Thu, 5 Sep 2019 16:29:08 +0200
|
||||
Subject: [PATCH] warnquota: Properly detect LDAP errors
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
ldap_search_ext_s() and ldap_sasl_bind_s() can return also positive
|
||||
error result codes. Catch them properly.
|
||||
|
||||
Signed-off-by: Jan Kara <jack@suse.cz>
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
warnquota.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/warnquota.c b/warnquota.c
|
||||
index 53da671..24d7410 100644
|
||||
--- a/warnquota.c
|
||||
+++ b/warnquota.c
|
||||
@@ -201,7 +201,7 @@ static int setup_ldap(struct configparams *config)
|
||||
}
|
||||
}
|
||||
ret = ldap_sasl_bind_s(ldapconn, config->ldap_binddn, LDAP_SASL_SIMPLE, &cred, NULL, NULL, NULL);
|
||||
- if(ret < 0) {
|
||||
+ if (ret != LDAP_SUCCESS) {
|
||||
errstr(_("ldap_sasl_bind_s() failed: %s\n"), ldap_err2string(ret));
|
||||
return -1;
|
||||
}
|
||||
@@ -426,7 +426,7 @@ static char *lookup_user(struct configparams *config, char *user)
|
||||
searchbuf, NULL, 0, NULL, NULL, NULL,
|
||||
0, &result);
|
||||
|
||||
- if (ret < 0) {
|
||||
+ if (ret != LDAP_SUCCESS) {
|
||||
errstr(_("Error with %s.\n"), user);
|
||||
errstr(_("ldap_search_ext_s() failed: %s\n"), ldap_err2string(ret));
|
||||
return NULL;
|
||||
--
|
||||
2.21.0
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
From 1959f3768a284315250acd4d17a9f5ef0b8ea189 Mon Sep 17 00:00:00 2001
|
||||
From: Jan Kara <jack@suse.cz>
|
||||
Date: Mon, 30 Nov 2020 16:35:26 +0100
|
||||
Subject: [PATCH] Drop sys/cdefs.h usage
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
quota.h header includes sys/cdefs.h because it uses __P() macro in
|
||||
quotactl syscall declaration. However glibc currently defines __P() is
|
||||
nop and it only causes issues with other libc implementations (e.g. musl
|
||||
libc). So just drop __P() usage and sys/cdefs.h include.
|
||||
|
||||
Reported-by: 2xsaiko <git@dblsaiko.net>
|
||||
Signed-off-by: Jan Kara <jack@suse.cz>
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
quota.h | 3 +--
|
||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||
|
||||
diff --git a/quota.h b/quota.h
|
||||
index 4c21411..845cbbd 100644
|
||||
--- a/quota.h
|
||||
+++ b/quota.h
|
||||
@@ -1,7 +1,6 @@
|
||||
#ifndef GUARD_QUOTA_H
|
||||
#define GUARD_QUOTA_H
|
||||
|
||||
-#include <sys/cdefs.h>
|
||||
#include <sys/types.h>
|
||||
#include <stdint.h>
|
||||
|
||||
@@ -182,6 +181,6 @@ enum {
|
||||
#endif
|
||||
#endif
|
||||
|
||||
-long quotactl __P((int, const char *, qid_t, caddr_t));
|
||||
+long quotactl(int, const char *, qid_t, caddr_t);
|
||||
|
||||
#endif /* _QUOTA_ */
|
||||
--
|
||||
2.26.2
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
From b0f95e3954f85d97a99f8a08645418945484dbca Mon Sep 17 00:00:00 2001
|
||||
From: "Dmitry V. Levin" <ldv@altlinux.org>
|
||||
Date: Wed, 1 Sep 2021 08:00:00 +0000
|
||||
Subject: [PATCH 2/3] common.c: fix strncat usage
|
||||
|
||||
When quota is configured using --enable-werror, gcc -flto fails with
|
||||
the following diagnostics:
|
||||
|
||||
In function 'strncat',
|
||||
inlined from 'sstrncat' at common.c:113:2,
|
||||
inlined from 'get_proc_num' at quotastats.c:46:2:
|
||||
/usr/include/bits/string_fortified.h:122:10: error: '__builtin___strncat_chk' specified bound 4096 equals destination size [-Werror=str
|
||||
ingop-overflow=]
|
||||
122 | return __builtin___strncat_chk (__dest, __src, __len, __bos (__dest));
|
||||
| ^
|
||||
|
||||
This diagnostics is correct: when "src" contains "len" or more bytes,
|
||||
strncat() writes "len"+1 bytes to "dest" ("len" from "src" plus
|
||||
the terminating null byte).
|
||||
|
||||
Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
|
||||
Signed-off-by: Jan Kara <jack@suse.cz>
|
||||
---
|
||||
common.c | 3 +--
|
||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||
|
||||
diff --git a/common.c b/common.c
|
||||
index 8be0428..b3e5ad2 100644
|
||||
--- a/common.c
|
||||
+++ b/common.c
|
||||
@@ -110,8 +110,7 @@ void sstrncpy(char *d, const char *s, size_t len)
|
||||
|
||||
void sstrncat(char *d, const char *s, size_t len)
|
||||
{
|
||||
- strncat(d, s, len);
|
||||
- d[len - 1] = 0;
|
||||
+ strncat(d, s, len - 1);
|
||||
}
|
||||
|
||||
char *sstrdup(const char *s)
|
||||
--
|
||||
2.31.1
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
From 25f16b1de313ce0d411f754572f94f051bfbe3c8 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
|
||||
Date: Tue, 16 Mar 2021 17:28:15 +0100
|
||||
Subject: [PATCH] quota_nld: Initialize sa_mask when registering PID file
|
||||
removal
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
term_action.sa_mask is an automatic variable and and thus unitialized.
|
||||
This patch empties the signal mask.
|
||||
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
Signed-off-by: Jan Kara <jack@suse.cz>
|
||||
---
|
||||
quota_nld.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/quota_nld.c b/quota_nld.c
|
||||
index 72d99a9..09c4775 100644
|
||||
--- a/quota_nld.c
|
||||
+++ b/quota_nld.c
|
||||
@@ -466,7 +466,7 @@ static void use_pid_file(void)
|
||||
|
||||
term_action.sa_handler = remove_pid;
|
||||
term_action.sa_flags = 0;
|
||||
- if (sigaction(SIGTERM, &term_action, NULL))
|
||||
+ if (sigemptyset(&term_action.sa_mask) || sigaction(SIGTERM, &term_action, NULL))
|
||||
errstr(_("Could not register PID file removal on SIGTERM.\n"));
|
||||
if (store_pid())
|
||||
errstr(_("Could not store my PID %jd.\n"), (intmax_t )getpid());
|
||||
--
|
||||
2.26.3
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
From 55f1a0604bd4df6d591674b5bef123be1af84e55 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
|
||||
Date: Fri, 20 Nov 2020 15:28:49 +0100
|
||||
Subject: [PATCH] quotacheck: Remove a dead code from process_file()
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
The ret variable inicialization is useless because it is assigned in
|
||||
all (two) subsequent code branches.
|
||||
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
Signed-off-by: Jan Kara <jack@suse.cz>
|
||||
---
|
||||
quotacheck.c | 1 -
|
||||
1 file changed, 1 deletion(-)
|
||||
|
||||
diff --git a/quotacheck.c b/quotacheck.c
|
||||
index 5810ced..1b81610 100644
|
||||
--- a/quotacheck.c
|
||||
+++ b/quotacheck.c
|
||||
@@ -672,7 +672,6 @@ Please turn quotas off or use -f to force checking.\n"),
|
||||
}
|
||||
}
|
||||
|
||||
- ret = 0;
|
||||
memset(old_info + type, 0, sizeof(old_info[type]));
|
||||
if (is_tree_qfmt(cfmt))
|
||||
ret = v2_buffer_file(qfname, fd, type, cfmt);
|
||||
--
|
||||
2.26.2
|
||||
|
|
@ -0,0 +1,68 @@
|
|||
From 100b8a8814152ca6f52564cb65f33bf7cf033c22 Mon Sep 17 00:00:00 2001
|
||||
From: Jan Kara <jack@suse.cz>
|
||||
Date: Fri, 20 Aug 2021 21:51:05 +0200
|
||||
Subject: [PATCH 1/3] quotacheck, quotaon: Always display message about
|
||||
deprecated usage
|
||||
|
||||
Visible quota files on ext4 filesystem are deprecated. Make sure we
|
||||
always display the warning message and also expand the message to
|
||||
explain how the filesystem can be converted.
|
||||
|
||||
Signed-off-by: Jan Kara <jack@suse.cz>
|
||||
---
|
||||
quotacheck.c | 7 +++++--
|
||||
quotaon.c | 7 ++++---
|
||||
2 files changed, 9 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/quotacheck.c b/quotacheck.c
|
||||
index 1b81610..bd62d9a 100644
|
||||
--- a/quotacheck.c
|
||||
+++ b/quotacheck.c
|
||||
@@ -1198,7 +1198,7 @@ static int check_all(void)
|
||||
debug(FL_DEBUG, _("Detected quota format %s\n"), fmt2name(cfmt));
|
||||
}
|
||||
|
||||
- if (flags & (FL_VERBOSE | FL_DEBUG) && !warned) {
|
||||
+ if (!warned) {
|
||||
if (!strcmp(mnt->me_type, MNTTYPE_EXT4) &&
|
||||
ext4_supports_quota_feature()) {
|
||||
warned = 1;
|
||||
@@ -1207,7 +1207,10 @@ static int check_all(void)
|
||||
"external quota files. Please switch "
|
||||
"your filesystem to use ext4 quota "
|
||||
"feature as external quota files on "
|
||||
- "ext4 are deprecated.\n"));
|
||||
+ "ext4 are deprecated. You can enable "
|
||||
+ "the feature by unmounting the file "
|
||||
+ "system and running 'tune2fs -O quota "
|
||||
+ "<device>'.\n"));
|
||||
} else if (!str_hasmntopt(mnt->me_opts, MNTOPT_USRJQUOTA) &&
|
||||
!str_hasmntopt(mnt->me_opts, MNTOPT_GRPJQUOTA) &&
|
||||
(!strcmp(mnt->me_type, MNTTYPE_EXT3) ||
|
||||
diff --git a/quotaon.c b/quotaon.c
|
||||
index aceb6ec..125b934 100644
|
||||
--- a/quotaon.c
|
||||
+++ b/quotaon.c
|
||||
@@ -270,15 +270,16 @@ static int newstate(struct mount_entry *mnt, int type, char *extra)
|
||||
|
||||
if (!me_hasquota(mnt, type))
|
||||
return 0;
|
||||
- if (flags & FL_VERBOSE && !warned &&
|
||||
- !strcmp(mnt->me_type, MNTTYPE_EXT4) &&
|
||||
+ if (!warned && !strcmp(mnt->me_type, MNTTYPE_EXT4) &&
|
||||
ext4_supports_quota_feature()) {
|
||||
warned = 1;
|
||||
errstr(_("Your kernel probably supports ext4 quota "
|
||||
"feature but you are using external quota "
|
||||
"files. Please switch your filesystem to use "
|
||||
"ext4 quota feature as external quota files "
|
||||
- "on ext4 are deprecated.\n"));
|
||||
+ "on ext4 are deprecated. You can enable the "
|
||||
+ "feature by unmounting the file system and "
|
||||
+ "running 'tune2fs -O quota <device>'.\n"));
|
||||
}
|
||||
if (fmt == -1) {
|
||||
if (get_qf_name(mnt, type, QF_VFSV0,
|
||||
--
|
||||
2.31.1
|
||||
|
|
@ -0,0 +1,72 @@
|
|||
From 43b6e31f39edbe7de4f4feeef4d0cf6be093e021 Mon Sep 17 00:00:00 2001
|
||||
From: Jan Kara <jack@suse.cz>
|
||||
Date: Mon, 23 Nov 2020 17:12:27 +0100
|
||||
Subject: [PATCH] quotaio_xfs: Warn when large kernel timestamps cannot be
|
||||
handled
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
When time_t is 32-bit, warn if the kernel returns anything that cannot
|
||||
fit in these time stamps. This also fixes a compilation warning that
|
||||
shift exceeds data type size. Similarly when converting data to pass to
|
||||
kernel, just avoid the pointless shift (generating compiler warning)
|
||||
when time_t is 32-bit.
|
||||
|
||||
Reported-by: "Dmitry V. Levin" <ldv@altlinux.org>
|
||||
Signed-off-by: Jan Kara <jack@suse.cz>
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
configure.ac | 2 ++
|
||||
quotaio_xfs.c | 9 +++++++++
|
||||
2 files changed, 11 insertions(+)
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 2239b49..296b77a 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -82,6 +82,8 @@ AS_IF([test x"$enable_werror" != "xno"], [
|
||||
])
|
||||
AC_SUBST([WARN_CFLAGS])
|
||||
|
||||
+AC_CHECK_SIZEOF([time_t], [], [#include <time.h>])
|
||||
+
|
||||
# =========
|
||||
# Find ldap
|
||||
# =========
|
||||
diff --git a/quotaio_xfs.c b/quotaio_xfs.c
|
||||
index 2db1c0c..5abb2c2 100644
|
||||
--- a/quotaio_xfs.c
|
||||
+++ b/quotaio_xfs.c
|
||||
@@ -45,8 +45,13 @@ report: xfs_report
|
||||
static inline time_t xfs_kern2utildqblk_ts(const struct xfs_kern_dqblk *k,
|
||||
__s32 timer, __s8 timer_hi)
|
||||
{
|
||||
+#if SIZEOF_TIME_T > 4
|
||||
if (k->d_fieldmask & FS_DQ_BIGTIME)
|
||||
return (__u32)timer | (__s64)timer_hi << 32;
|
||||
+#else
|
||||
+ if (k->d_fieldmask & FS_DQ_BIGTIME && timer_hi != 0)
|
||||
+ errstr(_("Truncating kernel returned time stamp."));
|
||||
+#endif
|
||||
return timer;
|
||||
}
|
||||
|
||||
@@ -54,10 +59,14 @@ static inline void xfs_util2kerndqblk_ts(const struct xfs_kern_dqblk *k,
|
||||
__s32 *timer_lo, __s8 *timer_hi, time_t timer)
|
||||
{
|
||||
*timer_lo = timer;
|
||||
+#if SIZEOF_TIME_T > 4
|
||||
if (k->d_fieldmask & FS_DQ_BIGTIME)
|
||||
*timer_hi = timer >> 32;
|
||||
else
|
||||
*timer_hi = 0;
|
||||
+#else
|
||||
+ *timer_hi = 0;
|
||||
+#endif
|
||||
}
|
||||
|
||||
static inline int want_bigtime(time_t timer)
|
||||
--
|
||||
2.26.2
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
From 8a3321627bb9215ed40f8f7036a1e86bcaf10ad1 Mon Sep 17 00:00:00 2001
|
||||
From: "Dmitry V. Levin" <ldv@altlinux.org>
|
||||
Date: Sun, 22 Nov 2020 08:00:00 +0000
|
||||
Subject: [PATCH] quotaops: fix compilation warning
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
When quota is configured using --enable-werror --disable-bsd_behaviour,
|
||||
the compilation fails with the following diagnostics:
|
||||
|
||||
quotaops.c: In function 'getprivs':
|
||||
quotaops.c:143:1: error: label 'out_err' defined but not used [-Werror=unused-label]
|
||||
|
||||
Fixes: 7942290a ("quotaops: Do not leak dquot structures on failure")
|
||||
Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
|
||||
Signed-off-by: Jan Kara <jack@suse.cz>
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
quotaops.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/quotaops.c b/quotaops.c
|
||||
index ff4d16e..96086f4 100644
|
||||
--- a/quotaops.c
|
||||
+++ b/quotaops.c
|
||||
@@ -140,7 +140,9 @@ struct dquot *getprivs(qid_t id, struct quota_handle **handles, int ignore_noquo
|
||||
id2name(id, handles[i]->qh_type, name);
|
||||
errstr(_("error while getting quota from %s for %s (id %u): %s\n"),
|
||||
handles[i]->qh_quotadev, name, id, estr);
|
||||
+#if defined(BSD_BEHAVIOUR)
|
||||
out_err:
|
||||
+#endif
|
||||
freeprivs(qhead);
|
||||
return NULL;
|
||||
}
|
||||
--
|
||||
2.26.2
|
||||
|
|
@ -0,0 +1,46 @@
|
|||
From d2256ac2d44b0a5be9c0b49ce4ce8e5f6821ce2a Mon Sep 17 00:00:00 2001
|
||||
From: "Dmitry V. Levin" <ldv@altlinux.org>
|
||||
Date: Wed, 1 Sep 2021 08:00:00 +0000
|
||||
Subject: [PATCH 3/3] quotasys.c: fix strncpy usage
|
||||
|
||||
When quota is configured using --enable-werror, gcc -flto fails with
|
||||
the following diagnostics:
|
||||
|
||||
In function 'strncpy',
|
||||
inlined from 'sstrncpy' at common.c:107:2,
|
||||
inlined from 'copy_mntoptarg' at quotasys.c:774:3,
|
||||
inlined from 'copy_mntoptarg' at quotasys.c:769:13:
|
||||
/usr/include/bits/string_fortified.h:91:10: error: '__builtin_strncpy' specified bound depends on the length of the source argument [-Werror=stringop-overflow=]
|
||||
91 | return __builtin___strncpy_chk (__dest, __src, __len, __bos (__dest));
|
||||
| ^
|
||||
quotasys.c: In function 'copy_mntoptarg':
|
||||
quotasys.c:774:25: note: length computed here
|
||||
774 | sstrncpy(buf, optarg, min(buflen, strlen(optarg) + 1));
|
||||
| ^
|
||||
|
||||
This diagnostics is correct: strcpy() copies at most "len" bytes of the string
|
||||
pointed to by "src", including the terminating null byte, to the buffer
|
||||
pointed to by "dest".
|
||||
|
||||
Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
|
||||
Signed-off-by: Jan Kara <jack@suse.cz>
|
||||
---
|
||||
quotasys.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/quotasys.c b/quotasys.c
|
||||
index 885fb1f..3f50e32 100644
|
||||
--- a/quotasys.c
|
||||
+++ b/quotasys.c
|
||||
@@ -771,7 +771,7 @@ static void copy_mntoptarg(char *buf, const char *optarg, int buflen)
|
||||
char *sep = strchr(optarg, ',');
|
||||
|
||||
if (!sep)
|
||||
- sstrncpy(buf, optarg, min(buflen, strlen(optarg) + 1));
|
||||
+ sstrncpy(buf, optarg, buflen);
|
||||
else
|
||||
sstrncpy(buf, optarg, min(buflen, sep - optarg + 1));
|
||||
}
|
||||
--
|
||||
2.31.1
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
From 67a0dbf6434552e720b0d311597553b3a76f779e Mon Sep 17 00:00:00 2001
|
||||
From 6400cf65afed09c63d96cc62b1e7eee964bdb6cb 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
|
||||
|
@ -8,19 +8,20 @@ Content-Transfer-Encoding: 8bit
|
|||
|
||||
Rest of changes (378a64006bb1e818e84a1c77808563b802b028fa) not
|
||||
accepted by upstream (we had root@... addresses and more enterprise
|
||||
wordings usually there).
|
||||
wordings usually there). Later improved by the upstream in
|
||||
0efb2331f1c39c9665fb6e92e83c7d080b877de1.
|
||||
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
warnquota.c | 2 +-
|
||||
warnquota.conf | 17 ++++++++---------
|
||||
2 files changed, 9 insertions(+), 10 deletions(-)
|
||||
warnquota.conf | 16 ++++++++--------
|
||||
2 files changed, 9 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/warnquota.c b/warnquota.c
|
||||
index 0d911e4..2c8e084 100644
|
||||
index 2882fee..48d79c0 100644
|
||||
--- a/warnquota.c
|
||||
+++ b/warnquota.c
|
||||
@@ -837,7 +837,7 @@ cc_parse_err:
|
||||
@@ -883,7 +883,7 @@ cc_parse_err:
|
||||
}
|
||||
#ifdef USE_LDAP_MAIL_LOOKUP
|
||||
else if (!strcmp(var, "LDAP_MAIL")) {
|
||||
|
@ -30,33 +31,36 @@ index 0d911e4..2c8e084 100644
|
|||
else
|
||||
config->use_ldap_mail = 0;
|
||||
diff --git a/warnquota.conf b/warnquota.conf
|
||||
index b06f81f..7e00947 100644
|
||||
index 5bbd0ab..366c3e0 100644
|
||||
--- a/warnquota.conf
|
||||
+++ b/warnquota.conf
|
||||
@@ -4,17 +4,16 @@
|
||||
# and even blank lines
|
||||
@@ -19,20 +19,20 @@ FAIL = "configure /etc/warnquota.conf before running warnquota"
|
||||
#
|
||||
# command used for sending mails
|
||||
#
|
||||
-MAIL_CMD = "/usr/lib/sendmail -t"
|
||||
+MAIL_CMD = "/usr/sbin/sendmail -t"
|
||||
|
||||
# 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
|
||||
#
|
||||
# Standard mail fields
|
||||
-FROM = "root@localhost"
|
||||
-SUBJECT = "Your account quota has exceeded!"
|
||||
+FROM = "root@example.com"
|
||||
+SUBJECT = "You are exceeding your allocated disk space limits"
|
||||
# Note that if LDAP is configured, the name in CC_TO gets looked up in LDAP
|
||||
# to obtain email address similarly to email recipient address.
|
||||
-CC_TO = "root@localhost"
|
||||
+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@localhost"
|
||||
+SUPPORT = "root@example.com"
|
||||
PHONE = "(123) 456-1111 or (222) 333-4444"
|
||||
PHONE = "123 456 789"
|
||||
# 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"
|
||||
@@ -40,11 +40,11 @@ PHONE = "123 456 789"
|
||||
# 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.
|
||||
|
@ -72,5 +76,5 @@ index b06f81f..7e00947 100644
|
|||
GROUP_MESSAGE = Hello,|\
|
||||
your group %i is using too much disk space at %h.|\
|
||||
--
|
||||
2.13.5
|
||||
2.25.4
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"Signatures": {
|
||||
"quota-4.05.tar.gz": "ef3b5b5d1014ed1344b46c1826145e20cbef8db967b522403c9a060761cf7ab9",
|
||||
"quota-4.06.tar.gz": "2f3e03039f378d4f0d97acdb49daf581dcaad64d2e1ddf129495fd579fbd268d",
|
||||
"quota_nld.service": "95235d6fe245ffe3802956036210ca30d5ef5544e1537df9c536dc0f41e6aa95",
|
||||
"quota_nld.sysconfig": "3947079eed442d61d5c3447c9908cc672d600940dbf8f8dd2bffee6c2f5967eb",
|
||||
"rpc-rquotad.service": "b02f388201740d1736be0e6fb92efa9afce027c5887b0da0b9f710d05df73648",
|
|
@ -1,23 +1,22 @@
|
|||
# Scan ext file systems directly to increase performace of a quota
|
||||
# Scan ext file systems directly to increase the performace of a quota
|
||||
# initialization and check
|
||||
%bcond_without quota_enables_extdirect
|
||||
# Use netlink to monitor quota usage and warn interactive users
|
||||
%bcond_without quota_enables_netlink
|
||||
# Enable getting quotas over remotely
|
||||
# Enable getting quotas remotely over network
|
||||
%bcond_without quota_enables_rpc
|
||||
# Allow setting quota remotely
|
||||
# Allow setting quota remotely over network
|
||||
%bcond_without quota_enables_rpcsetquota
|
||||
# Disable TCP Wrappers guard in RPC quota daemon
|
||||
# Disable TCP Wrappers guard in the RPC quota daemon
|
||||
%bcond_with quota_enables_tcpwrappers
|
||||
|
||||
Name: quota
|
||||
Version: 4.05
|
||||
Release: 12%{?dist}
|
||||
Version: 4.06
|
||||
Release: 1%{?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, edquota.c: BSD
|
||||
# COPYING: GPLv2 text and license declaration
|
||||
# COPYING: GPLv2 text and a license declaration
|
||||
## Only in quota-rpc binary package
|
||||
# rquota_server.c: GPLv2+
|
||||
## Only in quota-rpc and quota-nls binary packages
|
||||
|
@ -48,61 +47,36 @@ Summary: System administration tools for monitoring users' disk usage
|
|||
# Makefile.in: FSFULLR
|
||||
# missing: GPLv2+ with exception
|
||||
# mkinstalldirs: Public Domain
|
||||
License: BSD and GPLv2 and GPLv2+
|
||||
License: GPLv2 and GPLv2+
|
||||
Vendor: Microsoft Corporation
|
||||
Distribution: Mariner
|
||||
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
|
||||
# Fix modifying CFLAGS and LDFLAGS by pkgconfig, in upstream after 4.05
|
||||
Patch2: quota-4.05-Revert-configure.ac-fix-pkg_check_modules-calls.patch
|
||||
# 1/6 Report an error if an RPC fails on an explicitly requested file system,
|
||||
# <https://sourceforge.net/p/linuxquota/bugs/134/>, in upstream after 4.05
|
||||
Patch3: quota-4.05-Make-messages-about-failures-for-NFS-consistent-with.patch
|
||||
# 2/6
|
||||
Patch4: quota-4.05-quotaops-Do-not-return-partial-list-from-getprivs.patch
|
||||
# 3/6
|
||||
Patch5: quota-4.05-quotaops-Do-not-leak-dquot-structures-on-failure.patch
|
||||
# 4/6
|
||||
Patch6: quota-4.05-setquota-Report-failure-to-obtain-quota-information.patch
|
||||
# 5/6
|
||||
Patch7: quota-4.05-rpc-Clarify-error-message-when-cannot-connect-to-rpc.patch
|
||||
# 6/6
|
||||
Patch8: quota-4.05-quotaops-Make-error-string-translatable.patch
|
||||
# Fix Free Software Foundation's postal address,
|
||||
# <https://sourceforge.net/p/linuxquota/bugs/133/>, in upstream after 4.05
|
||||
Patch9: quota-4.05-COPYING-Update-mailing-address.patch
|
||||
# Move quota_nld.pid file to /run,
|
||||
# <https://sourceforge.net/p/linuxquota/patches/49/>, in upstream after 4.05
|
||||
Patch10: quota-4.05-Make-a-directory-for-quota_nld-PID-file-configurable.patch
|
||||
# Optimize out useless checking of file systems with hidden quota files,
|
||||
# in upstream after 4.05
|
||||
Patch11: quota-4.05-quotacheck-Skip-checking-of-filesystems-with-hidded-.patch
|
||||
# Fix warnquota --help output, in upstream after 4.05
|
||||
Patch12: quota-4.05-warnquota-Fix-help-text.patch
|
||||
# Fix checking for the LDAP failures in the warnquota tool,
|
||||
# in upstream after 4.05
|
||||
Patch13: quota-4.05-warnquota-Properly-detect-LDAP-errors.patch
|
||||
# 1/2 Report detailed LDAP failures, in upstream after 4.05
|
||||
Patch14: quota-4.05-warnquota-Print-also-additional-error-info-for-LDAP-.patch
|
||||
# 2/2 Report detailed LDAP failures, in upstream after 4.05,
|
||||
# <https://sourceforge.net/p/linuxquota/patches/50/>
|
||||
Patch15: quota-4.05-warnquota-Free-LDAP-error-message.patch
|
||||
# Document CC_TO in warquota.conf is looked up with LDAP,
|
||||
# in upstream after 4.05
|
||||
Patch16: quota-4.05-warnquota-Clarify-that-CC_TO-gets-resolved-through-L.patch
|
||||
# Initialize all members of a configparams structure in warnquota,
|
||||
# in upstream after 4.05, <https://sourceforge.net/p/linuxquota/patches/51/>
|
||||
Patch17: quota-4.05-warnquota-Initialize-all-members-of-a-configparams-s.patch
|
||||
# Fix ignoring disabled quotas, bug #1805110, proposed to upstream,
|
||||
# <https://sourceforge.net/p/linuxquota/bugs/136/>
|
||||
Patch18: quota-4.05-Fix-ignoring-disabled-quotas.patch
|
||||
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), bug #680919
|
||||
Patch0: quota-4.06-warnquota-configuration-tunes.patch
|
||||
# Fix parsing a TCP port number
|
||||
Patch1: quota-4.03-Validate-upper-bound-of-RPC-port.patch
|
||||
# Remove a dead code from process_file(), in upstream after 4.06,
|
||||
# <https://sourceforge.net/p/linuxquota/patches/54/>
|
||||
Patch2: quota-4.06-quotacheck-Remove-a-dead-code-from-process_file.patch
|
||||
# Fix a compilation warning in quotaops.c, in upstream after 4.06
|
||||
Patch3: quota-4.06-quotaops-fix-compilation-warning.patch
|
||||
# Warn when kernel XFS large time stamp does fit into (32-bit) user-space
|
||||
# time_t, in upstream after 4.06
|
||||
Patch4: quota-4.06-quotaio_xfs-Warn-when-large-kernel-timestamps-cannot.patch
|
||||
# Do not use a pointless compiler-internal __P() macro, in upstream after 4.06
|
||||
Patch5: quota-4.06-Drop-sys-cdefs.h-usage.patch
|
||||
# Fix sa_mask initialization when registering PID file removal,
|
||||
# upstream bug #141, in upstream after 4.06
|
||||
Patch6: quota-4.06-quota_nld-Initialize-sa_mask-when-registering-PID-fi.patch
|
||||
Patch7: quota-4.06-quotacheck-quotaon-Always-display-message-about-depr.patch
|
||||
Patch8: quota-4.06-common.c-fix-strncat-usage.patch
|
||||
Patch9: quota-4.06-quotasys.c-fix-strncpy-usage.patch
|
||||
|
||||
BuildRequires: autoconf
|
||||
BuildRequires: automake
|
||||
BuildRequires: bash
|
||||
|
@ -120,6 +94,7 @@ BuildRequires: pkgconfig(ext2fs)
|
|||
BuildRequires: pkgconfig(dbus-1)
|
||||
BuildRequires: pkgconfig(libnl-3.0) >= 3.1
|
||||
BuildRequires: pkgconfig(libnl-genl-3.0)
|
||||
BuildRequires: systemd
|
||||
%endif
|
||||
%if %{with quota_enables_rpc}
|
||||
BuildRequires: rpcgen
|
||||
|
@ -142,9 +117,8 @@ and limiting user and or group disk usage per file system.
|
|||
Summary: quota_nld daemon
|
||||
License: GPLv2 and GPLv2+
|
||||
Requires: quota-nls = %{version}-%{release}
|
||||
Requires(post): systemd
|
||||
Requires(preun): systemd
|
||||
Requires(postun): systemd
|
||||
# For %%{_unitdir} directory
|
||||
Requires: systemd
|
||||
|
||||
%description nld
|
||||
Daemon that listens on netlink socket and processes received quota warnings.
|
||||
|
@ -161,12 +135,11 @@ Summary: RPC quota daemon
|
|||
License: LGPLv2+ and GPLv2 and GPLv2+
|
||||
Requires: quota-nls = %{version}-%{release}
|
||||
Requires: rpcbind
|
||||
# For %%{_unitdir} directory
|
||||
Requires: systemd
|
||||
%if %{with quota_enables_tcpwrappers}
|
||||
Requires: tcp_wrappers
|
||||
%endif
|
||||
Requires(post): systemd
|
||||
Requires(preun): systemd
|
||||
Requires(postun): systemd
|
||||
|
||||
%description rpc
|
||||
The RPC daemon allows to query and set disk quotas over network. If you run
|
||||
|
@ -188,7 +161,7 @@ via cron(8).
|
|||
|
||||
%package nls
|
||||
Summary: Gettext catalogs for disk quota tools
|
||||
License: BSD and LGPLv2+ and GPLv2 and GPLv2+
|
||||
License: LGPLv2+ and GPLv2 and GPLv2+
|
||||
BuildArch: noarch
|
||||
|
||||
%description nls
|
||||
|
@ -199,6 +172,8 @@ Disk quota tools messages translated into different natural languages.
|
|||
%package devel
|
||||
Summary: Development files for quota RPC
|
||||
License: GPLv2
|
||||
# libtirpc-devel for an included <rpc/rpc.h>
|
||||
Requires: libtirpc-devel
|
||||
# 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.
|
||||
|
||||
|
@ -220,26 +195,7 @@ 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
|
||||
%patch16 -p1
|
||||
%patch17 -p1
|
||||
%patch18 -p1
|
||||
%autosetup -p1
|
||||
# Regenerate build scripts
|
||||
autoreconf -f -i
|
||||
|
||||
|
@ -389,6 +345,9 @@ make check
|
|||
|
||||
|
||||
%changelog
|
||||
* Fri May 13 2022 Chris Co <chrco@microsoft.com> 4.06-1
|
||||
- Update to 4.06 (Imported from Fedora 36, license: MIT)
|
||||
|
||||
* Fri Feb 04 2022 Pawel Winogrodzki <pawelwi@microsoft.com> - 4.05-12
|
||||
- Removing 'Conflicts' on an older package never present in CBL-Mariner.
|
||||
- License verified.
|
|
@ -22454,8 +22454,8 @@
|
|||
"type": "other",
|
||||
"other": {
|
||||
"name": "quota",
|
||||
"version": "4.05",
|
||||
"downloadUrl": "http://downloads.sourceforge.net/linuxquota/quota-4.05.tar.gz"
|
||||
"version": "4.06",
|
||||
"downloadUrl": "http://downloads.sourceforge.net/linuxquota/quota-4.06.tar.gz"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
Загрузка…
Ссылка в новой задаче