update buildroot to 2017.02.11
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
allow usage of getrpcbynumber() instead of getrpcbynumber_r()
|
||||
|
||||
libtirpc does not implement the reentrant function getrpcbynumber_r(),
|
||||
so allow quota to use the non-reentrant version getrpcbynumber(). This
|
||||
should not be a problem as quota tools are not multi-threaded.
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
|
||||
Index: b/configure.in
|
||||
===================================================================
|
||||
--- a/configure.in
|
||||
+++ b/configure.in
|
||||
@@ -182,6 +182,12 @@
|
||||
AC_C_CONST
|
||||
AC_C_INLINE
|
||||
|
||||
+AC_CHECK_FUNCS([getrpcbynumber getrpcbynumber_r])
|
||||
+
|
||||
+if test "$ac_cv_func_getrpcbynumber_r" != "yes" -a "$ac_cv_func_getrpcbynumber" != "yes"; then
|
||||
+ AC_MSG_ERROR([Neither getrpcbynumber_r nor getrpcbynumber are available])
|
||||
+fi
|
||||
+
|
||||
AC_ARG_ENABLE(rpc,
|
||||
[ --enable-rpc=[yes/no] Enable RPC support [default=yes].],
|
||||
,
|
||||
Index: b/svc_socket.c
|
||||
===================================================================
|
||||
--- a/svc_socket.c
|
||||
+++ b/svc_socket.c
|
||||
@@ -55,7 +55,12 @@
|
||||
addr.sin_family = AF_INET;
|
||||
|
||||
if (!port) {
|
||||
+#if HAVE_GETRPCBYNUMBER_R
|
||||
ret = getrpcbynumber_r(number, &rpcbuf, rpcdata, sizeof(rpcdata), &rpcp);
|
||||
+#else
|
||||
+ rpcp = getrpcbynumber(number);
|
||||
+ ret = 0;
|
||||
+#endif
|
||||
if (ret == 0 && rpcp != NULL) {
|
||||
/* First try name */
|
||||
ret = getservbyname_r(rpcp->r_name, proto, &servbuf, servdata,
|
||||
@@ -0,0 +1,55 @@
|
||||
Use $(LIBS) properly
|
||||
|
||||
This patch makes sure the quota build system uses $(LIBS) where
|
||||
appropriate, so that it can be used to link with additional libraries,
|
||||
which is needed when linking statically.
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
|
||||
Index: b/Makefile.in
|
||||
===================================================================
|
||||
--- a/Makefile.in
|
||||
+++ b/Makefile.in
|
||||
@@ -105,30 +105,40 @@
|
||||
-$(INSTALL) -m $(DEF_MAN_MODE) *.8 $(ROOTDIR)$(mandir)/man8
|
||||
|
||||
quotaon: quotaon.o quotaon_xfs.o $(LIBOBJS)
|
||||
+ $(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
|
||||
|
||||
quotacheck: quotacheck.o quotacheck_v1.o quotacheck_v2.o quotaops.o $(LIBOBJS)
|
||||
- $(CC) $(LDFLAGS) -o $@ $^ $(EXT2LIBS)
|
||||
+ $(CC) $(LDFLAGS) -o $@ $^ $(EXT2LIBS) $(LIBS)
|
||||
|
||||
quota: quota.o quotaops.o $(LIBOBJS)
|
||||
+ $(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
|
||||
|
||||
quotasync: quotasync.o $(LIBOBJS)
|
||||
+ $(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
|
||||
|
||||
quot: quot.o $(LIBOBJS)
|
||||
+ $(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
|
||||
|
||||
repquota: repquota.o $(LIBOBJS)
|
||||
+ $(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
|
||||
|
||||
warnquota: warnquota.o $(LIBOBJS)
|
||||
- $(CC) $(LDFLAGS) -o $@ $^ $(LDAPLIBS)
|
||||
+ $(CC) $(LDFLAGS) -o $@ $^ $(LDAPLIBS) $(LIBS)
|
||||
|
||||
quotastats: quotastats.o common.o pot.o
|
||||
+ $(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
|
||||
|
||||
xqmstats: xqmstats.o common.o pot.o
|
||||
+ $(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
|
||||
|
||||
edquota: edquota.o quotaops.o $(LIBOBJS)
|
||||
+ $(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
|
||||
|
||||
setquota: setquota.o quotaops.o $(LIBOBJS)
|
||||
+ $(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
|
||||
|
||||
convertquota: convertquota.o $(LIBOBJS)
|
||||
+ $(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
|
||||
|
||||
rpc.rquotad: rquota_server.o rquota_svc.o svc_socket.o $(LIBOBJS)
|
||||
$(CC) $(LDFLAGS) -o $@ $^ $(LIBS)
|
||||
@@ -0,0 +1,200 @@
|
||||
Use proper C99 integer types
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
[Thomas: borrowed from OpenEmbedded.]
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
|
||||
Index: quota-tools/bylabel.c
|
||||
===================================================================
|
||||
--- quota-tools.orig/bylabel.c
|
||||
+++ quota-tools/bylabel.c
|
||||
@@ -20,6 +20,7 @@
|
||||
#include <ctype.h>
|
||||
#include <fcntl.h>
|
||||
#include <unistd.h>
|
||||
+#include <stdint.h>
|
||||
|
||||
#include "bylabel.h"
|
||||
#include "common.h"
|
||||
@@ -37,32 +38,32 @@ static struct uuidCache_s {
|
||||
|
||||
#define EXT2_SUPER_MAGIC 0xEF53
|
||||
struct ext2_super_block {
|
||||
- u_char s_dummy1[56];
|
||||
- u_char s_magic[2];
|
||||
- u_char s_dummy2[46];
|
||||
- u_char s_uuid[16];
|
||||
- u_char s_volume_name[16];
|
||||
+ uint8_t s_dummy1[56];
|
||||
+ uint8_t s_magic[2];
|
||||
+ uint8_t s_dummy2[46];
|
||||
+ uint8_t s_uuid[16];
|
||||
+ uint8_t s_volume_name[16];
|
||||
};
|
||||
|
||||
-#define ext2magic(s) ((uint) s.s_magic[0] + (((uint) s.s_magic[1]) << 8))
|
||||
+#define ext2magic(s) ((uint32_t) s.s_magic[0] + (((uint32_t) s.s_magic[1]) << 8))
|
||||
|
||||
#define XFS_SUPER_MAGIC "XFSB"
|
||||
#define XFS_SUPER_MAGIC2 "BSFX"
|
||||
struct xfs_super_block {
|
||||
- u_char s_magic[4];
|
||||
- u_char s_dummy[28];
|
||||
- u_char s_uuid[16];
|
||||
- u_char s_dummy2[60];
|
||||
- u_char s_fsname[12];
|
||||
+ uint8_t s_magic[4];
|
||||
+ uint8_t s_dummy[28];
|
||||
+ uint8_t s_uuid[16];
|
||||
+ uint8_t s_dummy2[60];
|
||||
+ uint8_t s_fsname[12];
|
||||
};
|
||||
|
||||
#define REISER_SUPER_MAGIC "ReIsEr2Fs"
|
||||
struct reiserfs_super_block {
|
||||
- u_char s_dummy1[52];
|
||||
- u_char s_magic[10];
|
||||
- u_char s_dummy2[22];
|
||||
- u_char s_uuid[16];
|
||||
- u_char s_volume_name[16];
|
||||
+ uint8_t s_dummy1[52];
|
||||
+ uint8_t s_magic[10];
|
||||
+ uint8_t s_dummy2[22];
|
||||
+ uint8_t s_uuid[16];
|
||||
+ uint8_t s_volume_name[16];
|
||||
};
|
||||
|
||||
static inline unsigned short swapped(unsigned short a)
|
||||
@@ -222,7 +223,7 @@ static char *get_spec_by_x(int n, const
|
||||
return NULL;
|
||||
}
|
||||
|
||||
-static u_char fromhex(char c)
|
||||
+static uint8_t fromhex(char c)
|
||||
{
|
||||
if (isdigit(c))
|
||||
return (c - '0');
|
||||
@@ -234,7 +235,7 @@ static u_char fromhex(char c)
|
||||
|
||||
static char *get_spec_by_uuid(const char *s)
|
||||
{
|
||||
- u_char uuid[16];
|
||||
+ uint8_t uuid[16];
|
||||
int i;
|
||||
|
||||
if (strlen(s) != 36 || s[8] != '-' || s[13] != '-' || s[18] != '-' || s[23] != '-')
|
||||
Index: quota-tools/quot.c
|
||||
===================================================================
|
||||
--- quota-tools.orig/quot.c
|
||||
+++ quota-tools/quot.c
|
||||
@@ -47,6 +47,7 @@
|
||||
#include <utmp.h>
|
||||
#include <pwd.h>
|
||||
#include <grp.h>
|
||||
+#include <stdint.h>
|
||||
|
||||
#include "pot.h"
|
||||
#include "quot.h"
|
||||
@@ -56,8 +57,8 @@
|
||||
#include "quotasys.h"
|
||||
|
||||
#define TSIZE 500
|
||||
-static __uint64_t sizes[TSIZE];
|
||||
-static __uint64_t overflow;
|
||||
+static uint64_t sizes[TSIZE];
|
||||
+static uint64_t overflow;
|
||||
|
||||
static int aflag;
|
||||
static int cflag;
|
||||
@@ -72,7 +73,7 @@ static time_t now;
|
||||
char *progname;
|
||||
|
||||
static void mounttable(void);
|
||||
-static char *idname(__uint32_t, int);
|
||||
+static char *idname(uint32_t, int);
|
||||
static void report(const char *, const char *, int);
|
||||
static void creport(const char *, const char *);
|
||||
|
||||
@@ -173,7 +174,7 @@ static int qcmp(du_t * p1, du_t * p2)
|
||||
static void creport(const char *file, const char *fsdir)
|
||||
{
|
||||
int i;
|
||||
- __uint64_t t = 0;
|
||||
+ uint64_t t = 0;
|
||||
|
||||
printf(_("%s (%s):\n"), file, fsdir);
|
||||
for (i = 0; i < TSIZE - 1; i++)
|
||||
@@ -219,7 +220,7 @@ static void report(const char *file, con
|
||||
}
|
||||
}
|
||||
|
||||
-static idcache_t *getnextent(int type, __uint32_t id, int byid)
|
||||
+static idcache_t *getnextent(int type, uint32_t id, int byid)
|
||||
{
|
||||
struct passwd *pw;
|
||||
struct group *gr;
|
||||
@@ -240,7 +241,7 @@ static idcache_t *getnextent(int type, _
|
||||
return &idc;
|
||||
}
|
||||
|
||||
-static char *idname(__uint32_t id, int type)
|
||||
+static char *idname(uint32_t id, int type)
|
||||
{
|
||||
idcache_t *ncp, *idp;
|
||||
static idcache_t nc[2][NID];
|
||||
@@ -286,8 +287,8 @@ static void acctXFS(xfs_bstat_t *p)
|
||||
{
|
||||
register du_t *dp;
|
||||
du_t **hp;
|
||||
- __uint64_t size;
|
||||
- __uint32_t i, id;
|
||||
+ uint64_t size;
|
||||
+ uint32_t i, id;
|
||||
|
||||
if ((p->bs_mode & S_IFMT) == 0)
|
||||
return;
|
||||
Index: quota-tools/quot.h
|
||||
===================================================================
|
||||
--- quota-tools.orig/quot.h
|
||||
+++ quota-tools/quot.h
|
||||
@@ -35,18 +35,18 @@
|
||||
#define SEC24HR (60*60*24) /* seconds per day */
|
||||
|
||||
typedef struct {
|
||||
- __uint32_t id;
|
||||
+ uint32_t id;
|
||||
char name[UT_NAMESIZE + 1];
|
||||
} idcache_t;
|
||||
|
||||
typedef struct du {
|
||||
struct du *next;
|
||||
- __uint64_t blocks;
|
||||
- __uint64_t blocks30;
|
||||
- __uint64_t blocks60;
|
||||
- __uint64_t blocks90;
|
||||
- __uint64_t nfiles;
|
||||
- __uint32_t id;
|
||||
+ uint64_t blocks;
|
||||
+ uint64_t blocks30;
|
||||
+ uint64_t blocks60;
|
||||
+ uint64_t blocks90;
|
||||
+ uint64_t nfiles;
|
||||
+ uint32_t id;
|
||||
} du_t;
|
||||
|
||||
#define NDU 60000
|
||||
Index: quota-tools/rquota_server.c
|
||||
===================================================================
|
||||
--- quota-tools.orig/rquota_server.c
|
||||
+++ quota-tools/rquota_server.c
|
||||
@@ -60,7 +60,7 @@ extern char nfs_pseudoroot[PATH_MAX];
|
||||
*/
|
||||
extern struct authunix_parms *unix_cred;
|
||||
|
||||
-int in_group(gid_t * gids, u_int len, gid_t gid)
|
||||
+int in_group(gid_t * gids, uint32_t len, gid_t gid)
|
||||
{
|
||||
gid_t *gidsp = gids + len;
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
Add missing <sys/cdefs.h> include
|
||||
|
||||
quota.h uses the __P definition, so it must include <sys/cdefs.h>.
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
|
||||
Index: b/quota.h
|
||||
===================================================================
|
||||
--- a/quota.h
|
||||
+++ b/quota.h
|
||||
@@ -2,6 +2,7 @@
|
||||
#define GUARD_QUOTA_H
|
||||
|
||||
#include <sys/types.h>
|
||||
+#include <sys/cdefs.h>
|
||||
|
||||
typedef u_int32_t qid_t; /* Type in which we store ids in memory */
|
||||
typedef int64_t qsize_t; /* Type in which we store size limitations */
|
||||
@@ -0,0 +1,20 @@
|
||||
Include <fcntl.h> to get loff_t definition
|
||||
|
||||
Fixes the following build issue with musl:
|
||||
|
||||
dqblk_v2.h:32:2: error: unknown type name ‘loff_t’
|
||||
|
||||
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
||||
|
||||
Index: b/dqblk_v2.h
|
||||
===================================================================
|
||||
--- a/dqblk_v2.h
|
||||
+++ b/dqblk_v2.h
|
||||
@@ -8,6 +8,7 @@
|
||||
#define GUARD_DQBLK_V2_H
|
||||
|
||||
#include <sys/types.h>
|
||||
+#include <fcntl.h>
|
||||
#include "quota_tree.h"
|
||||
|
||||
#define Q_V2_GETQUOTA 0x0D00 /* Get limits and usage */
|
||||
16
bsp/buildroot-2017.02.11/package/quota/Config.in
Normal file
16
bsp/buildroot-2017.02.11/package/quota/Config.in
Normal file
@@ -0,0 +1,16 @@
|
||||
config BR2_PACKAGE_QUOTA
|
||||
bool "quota"
|
||||
depends on BR2_USE_WCHAR
|
||||
depends on BR2_USE_MMU # fork()
|
||||
depends on BR2_TOOLCHAIN_HAS_NATIVE_RPC || BR2_TOOLCHAIN_HAS_THREADS # libtirpc
|
||||
select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE
|
||||
select BR2_PACKAGE_LIBTIRPC if !BR2_TOOLCHAIN_HAS_NATIVE_RPC
|
||||
help
|
||||
Implementation of the disk quota system.
|
||||
|
||||
http://sourceforge.net/projects/linuxquota/
|
||||
|
||||
comment "quota needs a toolchain w/ wchar, threads"
|
||||
depends on BR2_USE_MMU
|
||||
depends on !BR2_USE_WCHAR || \
|
||||
!(BR2_TOOLCHAIN_HAS_THREADS || BR2_TOOLCHAIN_HAS_NATIVE_RPC)
|
||||
3
bsp/buildroot-2017.02.11/package/quota/quota.hash
Normal file
3
bsp/buildroot-2017.02.11/package/quota/quota.hash
Normal file
@@ -0,0 +1,3 @@
|
||||
# From http://sourceforge.net/projects/linuxquota/files/quota-tools/4.01/ (click on info button)
|
||||
md5 5c2c31e321d2e1322ce12d69ae5c66d6 quota-4.01.tar.gz
|
||||
sha1 64d2ab8b039cfea1aa4bd9e77e8c373488a7f0bf quota-4.01.tar.gz
|
||||
48
bsp/buildroot-2017.02.11/package/quota/quota.mk
Normal file
48
bsp/buildroot-2017.02.11/package/quota/quota.mk
Normal file
@@ -0,0 +1,48 @@
|
||||
################################################################################
|
||||
#
|
||||
# quota
|
||||
#
|
||||
################################################################################
|
||||
|
||||
QUOTA_VERSION = 4.01
|
||||
QUOTA_SITE = http://downloads.sourceforge.net/project/linuxquota/quota-tools/$(QUOTA_VERSION)
|
||||
QUOTA_DEPENDENCIES = host-gettext
|
||||
QUOTA_AUTORECONF = YES
|
||||
QUOTA_LICENSE = GPLv2+
|
||||
QUOTA_CONF_OPTS = --disable-strip-binaries
|
||||
|
||||
QUOTA_CFLAGS = $(TARGET_CFLAGS)
|
||||
|
||||
ifeq ($(BR2_NEEDS_GETTEXT_IF_LOCALE),y)
|
||||
QUOTA_DEPENDENCIES += gettext
|
||||
QUOTA_LIBS += -lintl
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_E2FSPROGS),y)
|
||||
QUOTA_DEPENDENCIES += e2fsprogs
|
||||
QUOTA_CONF_OPTS += --enable-ext2direct
|
||||
# quote does not use pkg-config to find e2fsprogs, so it does not know it
|
||||
# may require -pthreads in case of static build
|
||||
ifeq ($(BR2_STATIC_LIBS)$(BR2_TOOLCHAIN_HAS_THREADS),yy)
|
||||
QUOTA_LIBS += -pthread
|
||||
endif
|
||||
else
|
||||
QUOTA_CONF_OPTS += --disable-ext2direct
|
||||
endif
|
||||
|
||||
ifeq ($(BR2_PACKAGE_LIBTIRPC),y)
|
||||
QUOTA_DEPENDENCIES += libtirpc host-pkgconf
|
||||
QUOTA_CFLAGS += `$(PKG_CONFIG_HOST_BINARY) --cflags libtirpc`
|
||||
QUOTA_LIBS += `$(PKG_CONFIG_HOST_BINARY) --libs libtirpc`
|
||||
endif
|
||||
|
||||
QUOTA_MAKE_OPTS = $(TARGET_CONFIGURE_OPTS) CFLAGS="$(QUOTA_CFLAGS) -D_GNU_SOURCE" LIBS="$(QUOTA_LIBS)"
|
||||
QUOTA_CONF_ENV = \
|
||||
CFLAGS="$(QUOTA_CFLAGS) -D_GNU_SOURCE" LIBS="$(QUOTA_LIBS)"
|
||||
|
||||
# Package uses autoconf but not automake.
|
||||
QUOTA_INSTALL_TARGET_OPTS = \
|
||||
ROOTDIR=$(TARGET_DIR) \
|
||||
install
|
||||
|
||||
$(eval $(autotools-package))
|
||||
Reference in New Issue
Block a user