diff options
Diffstat (limited to 'yocto-poky/meta/recipes-extended/quota')
5 files changed, 433 insertions, 0 deletions
diff --git a/yocto-poky/meta/recipes-extended/quota/quota/config-tcpwrappers.patch b/yocto-poky/meta/recipes-extended/quota/quota/config-tcpwrappers.patch new file mode 100644 index 000000000..5f47fbd18 --- /dev/null +++ b/yocto-poky/meta/recipes-extended/quota/quota/config-tcpwrappers.patch @@ -0,0 +1,75 @@ +Upstream-Status: Pending + +--- quota-tools.orig/configure.in ++++ quota-tools/configure.in +@@ -151,33 +151,46 @@ AC_SUBST(QUOTA_NETLINK_PROG) + AC_SUBST(NETLINKLIBS) + + AC_SEARCH_LIBS(gethostbyname, nsl) +-AC_MSG_CHECKING(for host_access in -lwrap) +-AC_CACHE_VAL(ac_cv_lib_wrap_main, +- saved_LIBS="$LIBS" +- LIBS="$LIBS -lwrap" +- [AC_LINK_IFELSE([AC_LANG_PROGRAM([[ +- #include <stdio.h> +- #include <sys/types.h> +- #include <sys/socket.h> +- #include <netinet/in.h> +- #include <tcpd.h> +- struct request_info request; +- int deny_severity, allow_severity;]],[[hosts_access(&request);]])], +- dnl We always restore LIBS as we add -lwrap in the next check +- [ac_cv_lib_wrap_main=yes; LIBS="$saved_LIBS"; AC_MSG_RESULT(yes)], +- [ac_cv_lib_wrap_main=no; LIBS="$saved_LIBS"; AC_MSG_RESULT(no)]) +- ]) + +-if test ${ac_cv_lib_wrap_main} = yes; then +- AC_CHECK_HEADER(tcpd.h,, [ +- echo 'ERROR: could not find tcpd.h - missing TCP wrappers package' +- exit 1 +- ]) +- LIBS="$LIBS -lwrap" +- AC_DEFINE([HOSTS_ACCESS], 1, [Use hosts.allow and hosts.deny for access checking of rpc.rquotad]) +- COMPILE_OPTS="$COMPILE_OPTS HOSTS_ACCESS" ++AC_ARG_WITH(tcpwrappers, ++ [ --with-tcpwrappers=[yes/no/try] Use hosts.allow and hosts.deny for access checking of rpc.rquota [default=yes, if available.]], ++ , ++ with_tcpwrappers="try") ++ ++if test "x$with_tcpwrappers" != xno; then ++ AC_MSG_CHECKING(for host_access in -lwrap) ++ AC_CACHE_VAL(ac_cv_lib_wrap_main, ++ saved_LIBS="$LIBS" ++ LIBS="$LIBS -lwrap" ++ [AC_LINK_IFELSE([AC_LANG_PROGRAM([[ ++ #include <stdio.h> ++ #include <sys/types.h> ++ #include <sys/socket.h> ++ #include <netinet/in.h> ++ #include <tcpd.h> ++ struct request_info request; ++ int deny_severity, allow_severity;]],[[hosts_access(&request);]])], ++ dnl We always restore LIBS as we add -lwrap in the next try ++ [ac_cv_lib_wrap_main=yes; LIBS="$saved_LIBS"; AC_MSG_RESULT(yes)], ++ [ac_cv_lib_wrap_main=no; LIBS="$saved_LIBS"; AC_MSG_RESULT(no)]) ++ ]) ++ ++ if test "x$ac_cv_lib_wrap_main" = xyes; then ++ AC_CHECK_HEADER(tcpd.h,, [ ++ if test "x$with_tcpwrappers" != xtry; then ++ AC_MSG_ERROR([could not find tcpd.h - missing TCP wrappers package]) ++ fi ++ ]) ++ ++ LIBS="$LIBS -lwrap" ++ AC_DEFINE([HOSTS_ACCESS], 1, [Use hosts.allow and hosts.deny for access checking of rpc.rquotad]) ++ COMPILE_OPTS="$COMPILE_OPTS HOSTS_ACCESS" ++ elif test "x$with_tcpwrappers" != xtry; then ++ AC_MSG_ERROR([could not find libwrap - missing TCP wrappers package]) ++ fi + fi + ++ + dnl Checks for typedefs, structures, and compiler characteristics. + AC_C_CONST + AC_C_INLINE diff --git a/yocto-poky/meta/recipes-extended/quota/quota/fcntl.patch b/yocto-poky/meta/recipes-extended/quota/quota/fcntl.patch new file mode 100644 index 000000000..27e60fd07 --- /dev/null +++ b/yocto-poky/meta/recipes-extended/quota/quota/fcntl.patch @@ -0,0 +1,113 @@ +Include fcntl.h to pacify compiler errors on musl +like + +error: unknown type name 'loff_t' +Cover rpc headers under proper conditional +Dont use __P its undefined + +Upstream-Status: Pending + +Signed-off-by: Khem Raj <raj.khem@gmail.com> + +ndex: quota-tools/quota.h +=================================================================== +Index: quota-tools/quota.h +=================================================================== +--- quota-tools.orig/quota.h ++++ quota-tools/quota.h +@@ -165,6 +165,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_ */ +Index: quota-tools/quotacheck.c +=================================================================== +--- quota-tools.orig/quotacheck.c ++++ quota-tools/quotacheck.c +@@ -19,6 +19,7 @@ + #include <unistd.h> + #include <stdlib.h> + #include <errno.h> ++#include <fcntl.h> + + #include <sys/stat.h> + #include <sys/types.h> +Index: quota-tools/quotaio.c +=================================================================== +--- quota-tools.orig/quotaio.c ++++ quota-tools/quotaio.c +@@ -12,6 +12,7 @@ + #include <string.h> + #include <unistd.h> + #include <stdlib.h> ++#include <fcntl.h> + #include <sys/types.h> + #include <sys/stat.h> + #include <sys/file.h> +Index: quota-tools/dqblk_v2.h +=================================================================== +--- quota-tools.orig/dqblk_v2.h ++++ quota-tools/dqblk_v2.h +@@ -7,6 +7,7 @@ + #ifndef GUARD_DQBLK_V2_H + #define GUARD_DQBLK_V2_H + ++#include <fcntl.h> + #include <sys/types.h> + #include "quota_tree.h" + +Index: quota-tools/quotaops.c +=================================================================== +--- quota-tools.orig/quotaops.c ++++ quota-tools/quotaops.c +@@ -34,7 +34,9 @@ + + #include "config.h" + ++#if defined(RPC) + #include <rpc/rpc.h> ++#endif + #include <sys/types.h> + #include <sys/stat.h> + #include <sys/file.h> +Index: quota-tools/rquota_client.c +=================================================================== +--- quota-tools.orig/rquota_client.c ++++ quota-tools/rquota_client.c +@@ -19,7 +19,9 @@ + + #include "config.h" + ++#if defined(RPC) + #include <rpc/rpc.h> ++#endif + #include <sys/types.h> + #include <sys/param.h> + #include <sys/stat.h> +@@ -35,7 +37,9 @@ + #include <stdint.h> + + #include "mntopt.h" ++#if defined(RPC) + #include "rquota.h" ++#endif + #include "common.h" + #include "quotaio.h" + #include "quotasys.h" +Index: quota-tools/setquota.c +=================================================================== +--- quota-tools.orig/setquota.c ++++ quota-tools/setquota.c +@@ -7,7 +7,9 @@ + + #include "config.h" + ++#if defined(RPC) + #include <rpc/rpc.h> ++#endif + #include <sys/types.h> + #include <errno.h> + #include <stdio.h> diff --git a/yocto-poky/meta/recipes-extended/quota/quota/remove_non_posix_types.patch b/yocto-poky/meta/recipes-extended/quota/quota/remove_non_posix_types.patch new file mode 100644 index 000000000..5442d9854 --- /dev/null +++ b/yocto-poky/meta/recipes-extended/quota/quota/remove_non_posix_types.patch @@ -0,0 +1,185 @@ +Use proper C99 integer types + +Upstream-Status: Pending + +Signed-off-by: Khem Raj <raj.khem@gmail.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 diff --git a/yocto-poky/meta/recipes-extended/quota/quota/replace_getrpcbynumber_r.patch b/yocto-poky/meta/recipes-extended/quota/quota/replace_getrpcbynumber_r.patch new file mode 100644 index 000000000..9ca2ffc0d --- /dev/null +++ b/yocto-poky/meta/recipes-extended/quota/quota/replace_getrpcbynumber_r.patch @@ -0,0 +1,20 @@ +Replace getrpcbynumber_r with getrpcbynumber +musl and uclibc dont implement it + +Upstream-Status: Pending + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +Index: quota-tools/svc_socket.c +=================================================================== +--- quota-tools.orig/svc_socket.c ++++ quota-tools/svc_socket.c +@@ -55,7 +55,8 @@ static int svc_socket (u_long number, in + addr.sin_family = AF_INET; + + if (!port) { +- ret = getrpcbynumber_r(number, &rpcbuf, rpcdata, sizeof(rpcdata), &rpcp); ++ rpcp = getrpcbynumber(number); ++ ret = 0; + if (ret == 0 && rpcp != NULL) { + /* First try name */ + ret = getservbyname_r(rpcp->r_name, proto, &servbuf, servdata, diff --git a/yocto-poky/meta/recipes-extended/quota/quota_4.02.bb b/yocto-poky/meta/recipes-extended/quota/quota_4.02.bb new file mode 100644 index 000000000..124b0a369 --- /dev/null +++ b/yocto-poky/meta/recipes-extended/quota/quota_4.02.bb @@ -0,0 +1,40 @@ +SUMMARY = "Tools for monitoring & limiting user disk usage per filesystem" +SECTION = "base" +HOMEPAGE = "http://sourceforge.net/projects/linuxquota/" +BUGTRACKER = "http://sourceforge.net/tracker/?group_id=18136&atid=118136" +LICENSE = "BSD & GPLv2+ & LGPLv2.1+" +LIC_FILES_CHKSUM = "file://quota.c;beginline=1;endline=33;md5=331c7d77744bfe0ad24027f0651028ec \ + file://rquota_server.c;beginline=1;endline=20;md5=fe7e0d7e11c6f820f8fa62a5af71230f \ + file://svc_socket.c;beginline=1;endline=17;md5=24d5a8792da45910786eeac750be8ceb" + +SRC_URI = "${SOURCEFORGE_MIRROR}/project/linuxquota/quota-tools/${PV}/quota-${PV}.tar.gz \ + file://config-tcpwrappers.patch \ + file://fcntl.patch \ + file://remove_non_posix_types.patch \ + " +SRC_URI_append_libc-musl = " file://replace_getrpcbynumber_r.patch" + +SRC_URI[md5sum] = "a8a5df262261e659716ccad2a5d6df0d" +SRC_URI[sha256sum] = "f4c2f48abf94bbdc396df33d276f2e9d19af58c232cb85eef9c174a747c33795" + +S = "${WORKDIR}/quota-tools" + +DEPENDS = "gettext-native e2fsprogs" + +inherit autotools-brokensep gettext pkgconfig + +CFLAGS += "-I=${includedir}/tirpc" +LDFLAGS += "-ltirpc" +ASNEEDED = "" +EXTRA_OEMAKE += 'STRIP=""' + +PACKAGECONFIG ??= "tcp-wrappers rpc bsd" +PACKAGECONFIG_libc-musl = "tcp-wrappers rpc" + +PACKAGECONFIG[tcp-wrappers] = "--with-tcpwrappers,--without-tcpwrappers,tcp-wrappers" +PACKAGECONFIG[rpc] = "--enable-rpc=yes,--enable-rpc=no,libtirpc" +PACKAGECONFIG[bsd] = "--enable-bsd_behaviour=yes,--enable-bsd_behaviour=no," + +do_install() { + oe_runmake ROOTDIR=${D} install +} |