diff options
| -rw-r--r-- | meta/recipes-extended/quota/quota/fcntl.patch | 113 | ||||
| -rw-r--r-- | meta/recipes-extended/quota/quota/remove_non_posix_types.patch | 185 | ||||
| -rw-r--r-- | meta/recipes-extended/quota/quota/replace_getrpcbynumber_r.patch | 20 | ||||
| -rw-r--r-- | meta/recipes-extended/quota/quota_4.02.bb | 17 |
4 files changed, 333 insertions, 2 deletions
diff --git a/meta/recipes-extended/quota/quota/fcntl.patch b/meta/recipes-extended/quota/quota/fcntl.patch new file mode 100644 index 0000000000..27e60fd07d --- /dev/null +++ b/meta/recipes-extended/quota/quota/fcntl.patch | |||
| @@ -0,0 +1,113 @@ | |||
| 1 | Include fcntl.h to pacify compiler errors on musl | ||
| 2 | like | ||
| 3 | |||
| 4 | error: unknown type name 'loff_t' | ||
| 5 | Cover rpc headers under proper conditional | ||
| 6 | Dont use __P its undefined | ||
| 7 | |||
| 8 | Upstream-Status: Pending | ||
| 9 | |||
| 10 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
| 11 | |||
| 12 | ndex: quota-tools/quota.h | ||
| 13 | =================================================================== | ||
| 14 | Index: quota-tools/quota.h | ||
| 15 | =================================================================== | ||
| 16 | --- quota-tools.orig/quota.h | ||
| 17 | +++ quota-tools/quota.h | ||
| 18 | @@ -165,6 +165,6 @@ enum { | ||
| 19 | #endif | ||
| 20 | #endif | ||
| 21 | |||
| 22 | -long quotactl __P((int, const char *, qid_t, caddr_t)); | ||
| 23 | +long quotactl (int, const char *, qid_t, caddr_t); | ||
| 24 | |||
| 25 | #endif /* _QUOTA_ */ | ||
| 26 | Index: quota-tools/quotacheck.c | ||
| 27 | =================================================================== | ||
| 28 | --- quota-tools.orig/quotacheck.c | ||
| 29 | +++ quota-tools/quotacheck.c | ||
| 30 | @@ -19,6 +19,7 @@ | ||
| 31 | #include <unistd.h> | ||
| 32 | #include <stdlib.h> | ||
| 33 | #include <errno.h> | ||
| 34 | +#include <fcntl.h> | ||
| 35 | |||
| 36 | #include <sys/stat.h> | ||
| 37 | #include <sys/types.h> | ||
| 38 | Index: quota-tools/quotaio.c | ||
| 39 | =================================================================== | ||
| 40 | --- quota-tools.orig/quotaio.c | ||
| 41 | +++ quota-tools/quotaio.c | ||
| 42 | @@ -12,6 +12,7 @@ | ||
| 43 | #include <string.h> | ||
| 44 | #include <unistd.h> | ||
| 45 | #include <stdlib.h> | ||
| 46 | +#include <fcntl.h> | ||
| 47 | #include <sys/types.h> | ||
| 48 | #include <sys/stat.h> | ||
| 49 | #include <sys/file.h> | ||
| 50 | Index: quota-tools/dqblk_v2.h | ||
| 51 | =================================================================== | ||
| 52 | --- quota-tools.orig/dqblk_v2.h | ||
| 53 | +++ quota-tools/dqblk_v2.h | ||
| 54 | @@ -7,6 +7,7 @@ | ||
| 55 | #ifndef GUARD_DQBLK_V2_H | ||
| 56 | #define GUARD_DQBLK_V2_H | ||
| 57 | |||
| 58 | +#include <fcntl.h> | ||
| 59 | #include <sys/types.h> | ||
| 60 | #include "quota_tree.h" | ||
| 61 | |||
| 62 | Index: quota-tools/quotaops.c | ||
| 63 | =================================================================== | ||
| 64 | --- quota-tools.orig/quotaops.c | ||
| 65 | +++ quota-tools/quotaops.c | ||
| 66 | @@ -34,7 +34,9 @@ | ||
| 67 | |||
| 68 | #include "config.h" | ||
| 69 | |||
| 70 | +#if defined(RPC) | ||
| 71 | #include <rpc/rpc.h> | ||
| 72 | +#endif | ||
| 73 | #include <sys/types.h> | ||
| 74 | #include <sys/stat.h> | ||
| 75 | #include <sys/file.h> | ||
| 76 | Index: quota-tools/rquota_client.c | ||
| 77 | =================================================================== | ||
| 78 | --- quota-tools.orig/rquota_client.c | ||
| 79 | +++ quota-tools/rquota_client.c | ||
| 80 | @@ -19,7 +19,9 @@ | ||
| 81 | |||
| 82 | #include "config.h" | ||
| 83 | |||
| 84 | +#if defined(RPC) | ||
| 85 | #include <rpc/rpc.h> | ||
| 86 | +#endif | ||
| 87 | #include <sys/types.h> | ||
| 88 | #include <sys/param.h> | ||
| 89 | #include <sys/stat.h> | ||
| 90 | @@ -35,7 +37,9 @@ | ||
| 91 | #include <stdint.h> | ||
| 92 | |||
| 93 | #include "mntopt.h" | ||
| 94 | +#if defined(RPC) | ||
| 95 | #include "rquota.h" | ||
| 96 | +#endif | ||
| 97 | #include "common.h" | ||
| 98 | #include "quotaio.h" | ||
| 99 | #include "quotasys.h" | ||
| 100 | Index: quota-tools/setquota.c | ||
| 101 | =================================================================== | ||
| 102 | --- quota-tools.orig/setquota.c | ||
| 103 | +++ quota-tools/setquota.c | ||
| 104 | @@ -7,7 +7,9 @@ | ||
| 105 | |||
| 106 | #include "config.h" | ||
| 107 | |||
| 108 | +#if defined(RPC) | ||
| 109 | #include <rpc/rpc.h> | ||
| 110 | +#endif | ||
| 111 | #include <sys/types.h> | ||
| 112 | #include <errno.h> | ||
| 113 | #include <stdio.h> | ||
diff --git a/meta/recipes-extended/quota/quota/remove_non_posix_types.patch b/meta/recipes-extended/quota/quota/remove_non_posix_types.patch new file mode 100644 index 0000000000..5442d9854d --- /dev/null +++ b/meta/recipes-extended/quota/quota/remove_non_posix_types.patch | |||
| @@ -0,0 +1,185 @@ | |||
| 1 | Use proper C99 integer types | ||
| 2 | |||
| 3 | Upstream-Status: Pending | ||
| 4 | |||
| 5 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
| 6 | |||
| 7 | Index: quota-tools/bylabel.c | ||
| 8 | =================================================================== | ||
| 9 | --- quota-tools.orig/bylabel.c | ||
| 10 | +++ quota-tools/bylabel.c | ||
| 11 | @@ -20,6 +20,7 @@ | ||
| 12 | #include <ctype.h> | ||
| 13 | #include <fcntl.h> | ||
| 14 | #include <unistd.h> | ||
| 15 | +#include <stdint.h> | ||
| 16 | |||
| 17 | #include "bylabel.h" | ||
| 18 | #include "common.h" | ||
| 19 | @@ -37,32 +38,32 @@ static struct uuidCache_s { | ||
| 20 | |||
| 21 | #define EXT2_SUPER_MAGIC 0xEF53 | ||
| 22 | struct ext2_super_block { | ||
| 23 | - u_char s_dummy1[56]; | ||
| 24 | - u_char s_magic[2]; | ||
| 25 | - u_char s_dummy2[46]; | ||
| 26 | - u_char s_uuid[16]; | ||
| 27 | - u_char s_volume_name[16]; | ||
| 28 | + uint8_t s_dummy1[56]; | ||
| 29 | + uint8_t s_magic[2]; | ||
| 30 | + uint8_t s_dummy2[46]; | ||
| 31 | + uint8_t s_uuid[16]; | ||
| 32 | + uint8_t s_volume_name[16]; | ||
| 33 | }; | ||
| 34 | |||
| 35 | -#define ext2magic(s) ((uint) s.s_magic[0] + (((uint) s.s_magic[1]) << 8)) | ||
| 36 | +#define ext2magic(s) ((uint32_t) s.s_magic[0] + (((uint32_t) s.s_magic[1]) << 8)) | ||
| 37 | |||
| 38 | #define XFS_SUPER_MAGIC "XFSB" | ||
| 39 | #define XFS_SUPER_MAGIC2 "BSFX" | ||
| 40 | struct xfs_super_block { | ||
| 41 | - u_char s_magic[4]; | ||
| 42 | - u_char s_dummy[28]; | ||
| 43 | - u_char s_uuid[16]; | ||
| 44 | - u_char s_dummy2[60]; | ||
| 45 | - u_char s_fsname[12]; | ||
| 46 | + uint8_t s_magic[4]; | ||
| 47 | + uint8_t s_dummy[28]; | ||
| 48 | + uint8_t s_uuid[16]; | ||
| 49 | + uint8_t s_dummy2[60]; | ||
| 50 | + uint8_t s_fsname[12]; | ||
| 51 | }; | ||
| 52 | |||
| 53 | #define REISER_SUPER_MAGIC "ReIsEr2Fs" | ||
| 54 | struct reiserfs_super_block { | ||
| 55 | - u_char s_dummy1[52]; | ||
| 56 | - u_char s_magic[10]; | ||
| 57 | - u_char s_dummy2[22]; | ||
| 58 | - u_char s_uuid[16]; | ||
| 59 | - u_char s_volume_name[16]; | ||
| 60 | + uint8_t s_dummy1[52]; | ||
| 61 | + uint8_t s_magic[10]; | ||
| 62 | + uint8_t s_dummy2[22]; | ||
| 63 | + uint8_t s_uuid[16]; | ||
| 64 | + uint8_t s_volume_name[16]; | ||
| 65 | }; | ||
| 66 | |||
| 67 | static inline unsigned short swapped(unsigned short a) | ||
| 68 | @@ -222,7 +223,7 @@ static char *get_spec_by_x(int n, const | ||
| 69 | return NULL; | ||
| 70 | } | ||
| 71 | |||
| 72 | -static u_char fromhex(char c) | ||
| 73 | +static uint8_t fromhex(char c) | ||
| 74 | { | ||
| 75 | if (isdigit(c)) | ||
| 76 | return (c - '0'); | ||
| 77 | @@ -234,7 +235,7 @@ static u_char fromhex(char c) | ||
| 78 | |||
| 79 | static char *get_spec_by_uuid(const char *s) | ||
| 80 | { | ||
| 81 | - u_char uuid[16]; | ||
| 82 | + uint8_t uuid[16]; | ||
| 83 | int i; | ||
| 84 | |||
| 85 | if (strlen(s) != 36 || s[8] != '-' || s[13] != '-' || s[18] != '-' || s[23] != '-') | ||
| 86 | Index: quota-tools/quot.c | ||
| 87 | =================================================================== | ||
| 88 | --- quota-tools.orig/quot.c | ||
| 89 | +++ quota-tools/quot.c | ||
| 90 | @@ -47,6 +47,7 @@ | ||
| 91 | #include <utmp.h> | ||
| 92 | #include <pwd.h> | ||
| 93 | #include <grp.h> | ||
| 94 | +#include <stdint.h> | ||
| 95 | |||
| 96 | #include "pot.h" | ||
| 97 | #include "quot.h" | ||
| 98 | @@ -56,8 +57,8 @@ | ||
| 99 | #include "quotasys.h" | ||
| 100 | |||
| 101 | #define TSIZE 500 | ||
| 102 | -static __uint64_t sizes[TSIZE]; | ||
| 103 | -static __uint64_t overflow; | ||
| 104 | +static uint64_t sizes[TSIZE]; | ||
| 105 | +static uint64_t overflow; | ||
| 106 | |||
| 107 | static int aflag; | ||
| 108 | static int cflag; | ||
| 109 | @@ -72,7 +73,7 @@ static time_t now; | ||
| 110 | char *progname; | ||
| 111 | |||
| 112 | static void mounttable(void); | ||
| 113 | -static char *idname(__uint32_t, int); | ||
| 114 | +static char *idname(uint32_t, int); | ||
| 115 | static void report(const char *, const char *, int); | ||
| 116 | static void creport(const char *, const char *); | ||
| 117 | |||
| 118 | @@ -173,7 +174,7 @@ static int qcmp(du_t * p1, du_t * p2) | ||
| 119 | static void creport(const char *file, const char *fsdir) | ||
| 120 | { | ||
| 121 | int i; | ||
| 122 | - __uint64_t t = 0; | ||
| 123 | + uint64_t t = 0; | ||
| 124 | |||
| 125 | printf(_("%s (%s):\n"), file, fsdir); | ||
| 126 | for (i = 0; i < TSIZE - 1; i++) | ||
| 127 | @@ -219,7 +220,7 @@ static void report(const char *file, con | ||
| 128 | } | ||
| 129 | } | ||
| 130 | |||
| 131 | -static idcache_t *getnextent(int type, __uint32_t id, int byid) | ||
| 132 | +static idcache_t *getnextent(int type, uint32_t id, int byid) | ||
| 133 | { | ||
| 134 | struct passwd *pw; | ||
| 135 | struct group *gr; | ||
| 136 | @@ -240,7 +241,7 @@ static idcache_t *getnextent(int type, _ | ||
| 137 | return &idc; | ||
| 138 | } | ||
| 139 | |||
| 140 | -static char *idname(__uint32_t id, int type) | ||
| 141 | +static char *idname(uint32_t id, int type) | ||
| 142 | { | ||
| 143 | idcache_t *ncp, *idp; | ||
| 144 | static idcache_t nc[2][NID]; | ||
| 145 | @@ -286,8 +287,8 @@ static void acctXFS(xfs_bstat_t *p) | ||
| 146 | { | ||
| 147 | register du_t *dp; | ||
| 148 | du_t **hp; | ||
| 149 | - __uint64_t size; | ||
| 150 | - __uint32_t i, id; | ||
| 151 | + uint64_t size; | ||
| 152 | + uint32_t i, id; | ||
| 153 | |||
| 154 | if ((p->bs_mode & S_IFMT) == 0) | ||
| 155 | return; | ||
| 156 | Index: quota-tools/quot.h | ||
| 157 | =================================================================== | ||
| 158 | --- quota-tools.orig/quot.h | ||
| 159 | +++ quota-tools/quot.h | ||
| 160 | @@ -35,18 +35,18 @@ | ||
| 161 | #define SEC24HR (60*60*24) /* seconds per day */ | ||
| 162 | |||
| 163 | typedef struct { | ||
| 164 | - __uint32_t id; | ||
| 165 | + uint32_t id; | ||
| 166 | char name[UT_NAMESIZE + 1]; | ||
| 167 | } idcache_t; | ||
| 168 | |||
| 169 | typedef struct du { | ||
| 170 | struct du *next; | ||
| 171 | - __uint64_t blocks; | ||
| 172 | - __uint64_t blocks30; | ||
| 173 | - __uint64_t blocks60; | ||
| 174 | - __uint64_t blocks90; | ||
| 175 | - __uint64_t nfiles; | ||
| 176 | - __uint32_t id; | ||
| 177 | + uint64_t blocks; | ||
| 178 | + uint64_t blocks30; | ||
| 179 | + uint64_t blocks60; | ||
| 180 | + uint64_t blocks90; | ||
| 181 | + uint64_t nfiles; | ||
| 182 | + uint32_t id; | ||
| 183 | } du_t; | ||
| 184 | |||
| 185 | #define NDU 60000 | ||
diff --git a/meta/recipes-extended/quota/quota/replace_getrpcbynumber_r.patch b/meta/recipes-extended/quota/quota/replace_getrpcbynumber_r.patch new file mode 100644 index 0000000000..9ca2ffc0d4 --- /dev/null +++ b/meta/recipes-extended/quota/quota/replace_getrpcbynumber_r.patch | |||
| @@ -0,0 +1,20 @@ | |||
| 1 | Replace getrpcbynumber_r with getrpcbynumber | ||
| 2 | musl and uclibc dont implement it | ||
| 3 | |||
| 4 | Upstream-Status: Pending | ||
| 5 | |||
| 6 | Signed-off-by: Khem Raj <raj.khem@gmail.com> | ||
| 7 | Index: quota-tools/svc_socket.c | ||
| 8 | =================================================================== | ||
| 9 | --- quota-tools.orig/svc_socket.c | ||
| 10 | +++ quota-tools/svc_socket.c | ||
| 11 | @@ -55,7 +55,8 @@ static int svc_socket (u_long number, in | ||
| 12 | addr.sin_family = AF_INET; | ||
| 13 | |||
| 14 | if (!port) { | ||
| 15 | - ret = getrpcbynumber_r(number, &rpcbuf, rpcdata, sizeof(rpcdata), &rpcp); | ||
| 16 | + rpcp = getrpcbynumber(number); | ||
| 17 | + ret = 0; | ||
| 18 | if (ret == 0 && rpcp != NULL) { | ||
| 19 | /* First try name */ | ||
| 20 | ret = getservbyname_r(rpcp->r_name, proto, &servbuf, servdata, | ||
diff --git a/meta/recipes-extended/quota/quota_4.02.bb b/meta/recipes-extended/quota/quota_4.02.bb index 020ed3528c..96ff4b597d 100644 --- a/meta/recipes-extended/quota/quota_4.02.bb +++ b/meta/recipes-extended/quota/quota_4.02.bb | |||
| @@ -6,8 +6,14 @@ LICENSE = "BSD & GPLv2+ & LGPLv2.1+" | |||
| 6 | LIC_FILES_CHKSUM = "file://quota.c;beginline=1;endline=33;md5=331c7d77744bfe0ad24027f0651028ec \ | 6 | LIC_FILES_CHKSUM = "file://quota.c;beginline=1;endline=33;md5=331c7d77744bfe0ad24027f0651028ec \ |
| 7 | file://rquota_server.c;beginline=1;endline=20;md5=fe7e0d7e11c6f820f8fa62a5af71230f \ | 7 | file://rquota_server.c;beginline=1;endline=20;md5=fe7e0d7e11c6f820f8fa62a5af71230f \ |
| 8 | file://svc_socket.c;beginline=1;endline=17;md5=24d5a8792da45910786eeac750be8ceb" | 8 | file://svc_socket.c;beginline=1;endline=17;md5=24d5a8792da45910786eeac750be8ceb" |
| 9 | |||
| 9 | SRC_URI = "${SOURCEFORGE_MIRROR}/project/linuxquota/quota-tools/${PV}/quota-${PV}.tar.gz \ | 10 | SRC_URI = "${SOURCEFORGE_MIRROR}/project/linuxquota/quota-tools/${PV}/quota-${PV}.tar.gz \ |
| 10 | file://config-tcpwrappers.patch" | 11 | file://config-tcpwrappers.patch \ |
| 12 | file://fcntl.patch \ | ||
| 13 | file://remove_non_posix_types.patch \ | ||
| 14 | " | ||
| 15 | SRC_URI_append_libc-musl = " file://replace_getrpcbynumber_r.patch" | ||
| 16 | |||
| 11 | SRC_URI[md5sum] = "a8a5df262261e659716ccad2a5d6df0d" | 17 | SRC_URI[md5sum] = "a8a5df262261e659716ccad2a5d6df0d" |
| 12 | SRC_URI[sha256sum] = "f4c2f48abf94bbdc396df33d276f2e9d19af58c232cb85eef9c174a747c33795" | 18 | SRC_URI[sha256sum] = "f4c2f48abf94bbdc396df33d276f2e9d19af58c232cb85eef9c174a747c33795" |
| 13 | 19 | ||
| @@ -17,10 +23,17 @@ DEPENDS = "gettext-native e2fsprogs" | |||
| 17 | 23 | ||
| 18 | inherit autotools-brokensep gettext pkgconfig | 24 | inherit autotools-brokensep gettext pkgconfig |
| 19 | 25 | ||
| 26 | CFLAGS += "-I=${includedir}/tirpc" | ||
| 27 | LDFLAGS += "-ltirpc" | ||
| 28 | ASNEEDED = "" | ||
| 20 | EXTRA_OEMAKE += 'STRIP=""' | 29 | EXTRA_OEMAKE += 'STRIP=""' |
| 21 | 30 | ||
| 22 | PACKAGECONFIG ??= "tcp-wrappers" | 31 | PACKAGECONFIG ??= "tcp-wrappers rpc bsd" |
| 32 | PACKAGECONFIG_libc-musl = "tcp-wrappers rpc" | ||
| 33 | |||
| 23 | PACKAGECONFIG[tcp-wrappers] = "--with-tcpwrappers,--without-tcpwrappers,tcp-wrappers" | 34 | PACKAGECONFIG[tcp-wrappers] = "--with-tcpwrappers,--without-tcpwrappers,tcp-wrappers" |
| 35 | PACKAGECONFIG[rpc] = "--enable-rpc=yes,--enable-rpc=no,libtirpc" | ||
| 36 | PACKAGECONFIG[bsd] = "--enable-bsd_behaviour=yes,--enable-bsd_behaviour=no," | ||
| 24 | 37 | ||
| 25 | do_install() { | 38 | do_install() { |
| 26 | oe_runmake prefix=${D}${prefix} install | 39 | oe_runmake prefix=${D}${prefix} install |
