svn commit: r186997 - in stable/7: lib/bind lib/bind/bind lib/bind/dns lib/bind/dns/dns lib/bind/isc lib/bind/isc/isc share/doc/bind9 usr.bin/nsupdate

Doug Barton dougb at FreeBSD.org
Fri Jan 9 19:01:20 PST 2009


Author: dougb
Date: Sat Jan 10 03:01:18 2009
New Revision: 186997
URL: http://svn.freebsd.org/changeset/base/186997

Log:
  MFC the BIND 9.4.3 and 9.4.3-P1 updates

Modified:
  stable/7/lib/bind/   (props changed)
  stable/7/lib/bind/bind/config.h
  stable/7/lib/bind/bind/port_after.h
  stable/7/lib/bind/bind/port_before.h
  stable/7/lib/bind/config.h
  stable/7/lib/bind/dns/code.h
  stable/7/lib/bind/dns/dns/enumclass.h
  stable/7/lib/bind/dns/dns/enumtype.h
  stable/7/lib/bind/dns/dns/rdatastruct.h
  stable/7/lib/bind/isc/Makefile
  stable/7/lib/bind/isc/isc/platform.h
  stable/7/share/doc/bind9/Makefile
  stable/7/usr.bin/nsupdate/Makefile

Modified: stable/7/lib/bind/bind/config.h
==============================================================================
--- stable/7/lib/bind/bind/config.h	Sat Jan 10 03:00:21 2009	(r186996)
+++ stable/7/lib/bind/bind/config.h	Sat Jan 10 03:01:18 2009	(r186997)
@@ -1,6 +1,6 @@
 /* $FreeBSD$ */
 
-/* config.h.  Generated by configure.  */
+/* config.h.  Generated from config.h.in by configure.  */
 /* #undef _SOCKADDR_LEN */
 #define HAVE_FCNTL_H 1
 #define HAVE_PATHS_H 1
@@ -8,6 +8,7 @@
 /* #undef HAVE_STROPTS_H */
 #define HAVE_SYS_TIMERS_H 1
 #define HAVE_SYS_SELECT_H 1
+#define HAVE_MEMORY_H 1
 /* #undef SYS_CDEFS_H */
 /* #undef _POSIX_PTHREAD_SEMANTICS */
 /* #undef POSIX_GETPWUID_R */
@@ -16,14 +17,20 @@
 /* #undef POSIX_GETGRNAM_R */
 #define HAVE_MEMMOVE 1
 #define HAVE_MEMCHR 1
+/* #undef SPRINTF_CHAR */
+/* #undef VSPRINTF_CHAR */
+#define USE_SYSERROR_LIST 1
+/* #undef NEED_STRTOUL */
+/* #undef NEED_SUN4PROTOS */
+/* #undef REENABLE_SEND */
 
 /* #undef NEED_SETGROUPENT */
 /* #undef NEED_GETGROUPLIST */
 
 /* define if prototype for getgrnam_r() is required */
-/* #undef NEED_GETGRNAM_R */
-/* #undef NEED_GETGRGID_R */
-/* #undef NEED_GETGRENT_R */
+/* #undef NEED_GETGRNAM_R  */
+/* #undef NEED_GETGRGID_R  */
+/* #undef NEED_GETGRENT_R  */
 #define NEED_SETGRENT_R 1
 #define NEED_ENDGRENT_R 1
 
@@ -46,7 +53,7 @@
 /* #undef ssize_t */
 /* #undef uintptr_t */
 
-/* Shut up warnings about sputaux in stdio.h on BSD/OS pre-4.1 */
+/* Shut up warnings about sputaux in stdio.h on BSD/OS pre-4.1 */ 
 /* #undef SHUTUP_SPUTAUX */
 #ifdef SHUTUP_SPUTAUX
 struct __sFILE;

Modified: stable/7/lib/bind/bind/port_after.h
==============================================================================
--- stable/7/lib/bind/bind/port_after.h	Sat Jan 10 03:00:21 2009	(r186996)
+++ stable/7/lib/bind/bind/port_after.h	Sat Jan 10 03:01:18 2009	(r186997)
@@ -18,12 +18,20 @@
 #include <sys/select.h>
 #endif /* HAVE_SYS_SELECT_H */
 
+#ifdef REENABLE_SEND
+#undef send
+#endif
+
 #undef NEED_PSELECT
 #define HAVE_SA_LEN 1
 #define HAVE_MINIMUM_IFREQ 1
 #undef NEED_DAEMON
 #undef NEED_STRSEP
 #undef NEED_STRERROR
+#ifdef NEED_STRERROR
+const char *isc_strerror(int);
+#define strerror isc_strerror
+#endif
 #define HAS_INET6_STRUCTS 1
 #define HAVE_SIN6_SCOPE_ID 1
 #undef NEED_IN6ADDR_ANY
@@ -32,12 +40,18 @@
 #undef NEED_GETTIMEOFDAY
 #define HAVE_STRNDUP 1
 #undef USE_FIONBIO_IOCTL
-#undef USE_SYSERROR_LIST
 #undef INNETGR_ARGS
 #undef SETNETGRENT_ARGS
 #define USE_IFNAMELINKID 1
 #define PORT_NONBLOCK O_NONBLOCK
 
+#ifndef _POSIX_PATH_MAX
+#define _POSIX_PATH_MAX 255
+#endif
+#ifndef PATH_MAX
+#define PATH_MAX _POSIX_PATH_MAX
+#endif
+
 /*
  * We need to know the IPv6 address family number even on IPv4-only systems.
  * Note that this is NOT a protocol constant, and that if the system has its
@@ -311,16 +325,16 @@ innetgr_r(const char *, const char *, co
 #endif
 
 #ifdef NEED_SETNETGRENT_R
-#ifdef NGR_R_ENT_ARGS
-NGR_R_SET_RETURN setnetgrent_r(const char *netgroup, NGR_R_ENT_ARGS);
+#ifdef NGR_R_SET_ARGS
+NGR_R_SET_RETURN setnetgrent_r(NGR_R_SET_CONST char *netgroup, NGR_R_SET_ARGS);
 #else
-NGR_R_SET_RETURN setnetgrent_r(const char *netgroup);
+NGR_R_SET_RETURN setnetgrent_r(NGR_R_SET_CONST char *netgroup);
 #endif
 #endif
 
 #ifdef NEED_ENDNETGRENT_R
-#ifdef NGR_R_ENT_ARGS
-NGR_R_END_RETURN endnetgrent_r(NGR_R_ENT_ARGS);
+#ifdef NGR_R_END_ARGS
+NGR_R_END_RETURN endnetgrent_r(NGR_R_END_ARGS);
 #else
 NGR_R_END_RETURN endnetgrent_r(void);
 #endif
@@ -386,10 +400,12 @@ int isc__gettimeofday(struct timeval *tv
 int isc__gettimeofday(struct timeval *tp, struct timezone *tzp);
 #endif
 
-int getnetgrent(char **machinep, char **userp, char **domainp);
+int getnetgrent(NGR_R_CONST char **machinep, NGR_R_CONST char **userp,
+	        NGR_R_CONST char **domainp);
 
 #ifdef NGR_R_ARGS
-int getnetgrent_r(char **machinep, char **userp, char **domainp, NGR_R_ARGS);
+int getnetgrent_r(NGR_R_CONST char **machinep, NGR_R_CONST char **userp, 
+		  NGR_R_CONST char **domainp, NGR_R_ARGS);
 #endif
 
 #ifdef SETNETGRENT_ARGS
@@ -407,11 +423,87 @@ int innetgr(const char *netgroup, const 
 	    const char *user, const char *domain);
 #endif
 
-#ifdef NGR_R_ENT_ARGS
+#ifdef NGR_R_SET_ARGS
 NGR_R_SET_RETURN
-setnetgrent_r(const char *netgroup, NGR_R_ENT_ARGS);
+setnetgrent_r(NGR_R_SET_CONST char *netgroup, NGR_R_SET_ARGS);
 #else
 NGR_R_SET_RETURN
-setnetgrent_r(const char *netgroup);
+setnetgrent_r(NGR_R_SET_CONST char *netgroup);
+#endif
+
+#ifdef NEED_STRTOUL
+unsigned long strtoul(const char *, char **, int);
 #endif
+
+#ifdef NEED_SUN4PROTOS
+#include <stdarg.h>
+#ifndef __SIZE_TYPE__
+#define __SIZE_TYPE__ int
+#endif
+struct sockaddr;
+struct iovec;
+struct timeval;
+struct timezone;
+int fprintf(FILE *, const char *, ...);
+int getsockname(int, struct sockaddr *, int *);
+int getpeername(int, struct sockaddr *, int *);
+int socket(int, int, int);
+int connect(int, const struct sockaddr *, int);
+int writev(int, struct iovec *, int);
+int readv(int, struct iovec *, int);
+int send(int, const char *, int, int);
+void bzero(char *, int);
+int recvfrom(int, char *, int, int, struct sockaddr *, int *);
+int syslog(int, const char *, ... );
+int printf(const char *, ...);
+__SIZE_TYPE__ fread(void *, __SIZE_TYPE__, __SIZE_TYPE__, FILE *);
+__SIZE_TYPE__ fwrite(const void *, __SIZE_TYPE__, __SIZE_TYPE__, FILE *);
+int fclose(FILE *);
+int ungetc(int, FILE *);
+int scanf(const char *, ...);
+int sscanf(const char *, const char *, ... );
+int tolower(int);
+int toupper(int);
+int strcasecmp(const char *, const char *);
+int strncasecmp(const char *, const char *, int);
+int select(int, fd_set *, fd_set *, fd_set *, struct timeval *);
+#ifdef gettimeofday
+#undef gettimeofday
+int gettimeofday(struct timeval *, struct timezone *);
+#define gettimeofday isc__gettimeofday
+#else
+int gettimeofday(struct timeval *, struct timezone *);
+#endif
+long strtol(const char*, char **, int);
+int fseek(FILE *, long, int);
+int setsockopt(int, int, int, const char *, int);
+int bind(int, const struct sockaddr *, int);
+void bcopy(char *, char *, int);
+int fputc(char, FILE *);
+int listen(int, int);
+int accept(int, struct sockaddr *, int *);
+int getsockopt(int, int, int, char *, int *);
+int vfprintf(FILE *, const char *, va_list);
+int fflush(FILE *);
+int fgetc(FILE *);
+int fputs(const char *, FILE *);
+int fchown(int, int, int);
+void setbuf(FILE *, char *);
+int gethostname(char *, int);
+int rename(const char *, const char *);
+time_t time(time_t *);
+int fscanf(FILE *, const char *, ...);
+int sscanf(const char *, const char *, ...);
+int ioctl(int, int, caddr_t);
+void perror(const char *);
+
+#if !defined(__USE_FIXED_PROTOTYPES__) && !defined(__cplusplus) && !defined(__STRICT_ANSI__)
+/*
+ * 'gcc -ansi' changes the prototype for vsprintf().
+ * Use this prototype when 'gcc -ansi' is not in effect.
+ */
+char *vsprintf(char *, const char *, va_list);
+#endif
+#endif 
+
 #endif

Modified: stable/7/lib/bind/bind/port_before.h
==============================================================================
--- stable/7/lib/bind/bind/port_before.h	Sat Jan 10 03:00:21 2009	(r186996)
+++ stable/7/lib/bind/bind/port_before.h	Sat Jan 10 03:01:18 2009	(r186997)
@@ -4,6 +4,10 @@
 #define port_before_h
 #include <config.h>
 
+#ifdef NEED_SUN4PROTOS
+#define _PARAMS(x) x
+#endif
+
 struct group;           /* silence warning */
 struct passwd;          /* silence warning */
 struct timeval;         /* silence warning */
@@ -83,15 +87,22 @@ struct timespec {
 #define NGR_R_BAD (0)
 #define NGR_R_COPY buf, buflen
 #define NGR_R_COPY_ARGS NGR_R_ARGS
+#define NGR_R_CONST
 #define NGR_R_END_RESULT(x)  /*empty*/
 #define NGR_R_END_RETURN void
-#undef NGR_R_ENT_ARGS /*empty*/
+#undef NGR_R_END_ARGS /*empty*/
 #define NGR_R_OK 1
 #define NGR_R_RETURN int
+#define NGR_R_SET_CONST const
 #undef NGR_R_SET_RESULT /*empty*/
 #define NGR_R_SET_RETURN void
+#undef NGR_R_SET_ARGS
 
 
+#if !defined(NGR_R_SET_ARGS) && defined(NGR_R_END_ARGS)
+#define NGR_R_SET_ARGS NGR_R_END_ARGS
+#endif
+
 #define PROTO_R_ARGS char *buf, size_t buflen, struct protoent **answerp
 #define PROTO_R_BAD ERANGE
 #define PROTO_R_COPY buf, buflen

Modified: stable/7/lib/bind/config.h
==============================================================================
--- stable/7/lib/bind/config.h	Sat Jan 10 03:00:21 2009	(r186996)
+++ stable/7/lib/bind/config.h	Sat Jan 10 03:01:18 2009	(r186997)
@@ -160,6 +160,12 @@ int sigwait(const unsigned int *set, int
 /* Define if you cannot bind() before connect() for TCP sockets. */
 /* #undef BROKEN_TCP_BIND_BEFORE_CONNECT */
 
+/* Solaris hack to get select_large_fdset. */
+/* #undef FD_SETSIZE */
+
+/* Define to 1 if you have the `capset' function. */
+/* #undef HAVE_CAPSET */
+
 /* Define to 1 if you have the <dlfcn.h> header file. */
 /* #undef HAVE_DLFCN_H */
 
@@ -217,6 +223,15 @@ int sigwait(const unsigned int *set, int
 /* Define to 1 if you have the <string.h> header file. */
 #define HAVE_STRING_H 1
 
+/* Define to 1 if you have the <sys/capability.h> header file. */
+/* #undef HAVE_SYS_CAPABILITY_H */
+
+/* Define to 1 if you have the <sys/devpoll.h> header file. */
+/* #undef HAVE_SYS_DEVPOLL_H */
+
+/* Define to 1 if you have the <sys/dyntune.h> header file. */
+/* #undef HAVE_SYS_DYNTUNE_H */
+
 /* Define to 1 if you have the <sys/param.h> header file. */
 #define HAVE_SYS_PARAM_H 1
 
@@ -303,7 +318,7 @@ int sigwait(const unsigned int *set, int
 /* Define to `__inline__' or `__inline' if that's what the C compiler
    calls it, or to nothing if 'inline' is not supported under any name.  */
 #ifndef __cplusplus
-#define inline 
+#define inline /**/
 #endif
 
 /* Define to `unsigned int' if <sys/types.h> does not define. */
@@ -314,3 +329,7 @@ int sigwait(const unsigned int *set, int
 
 /* Define to `unsigned long' if <sys/types.h> does not define. */
 /* #undef uintptr_t */
+
+/* Define to empty if the keyword `volatile' does not work. Warning: valid
+   code using `volatile' can become incorrect without. Disable with care. */
+/* #undef volatile */

Modified: stable/7/lib/bind/dns/code.h
==============================================================================
--- stable/7/lib/bind/dns/code.h	Sat Jan 10 03:00:21 2009	(r186996)
+++ stable/7/lib/bind/dns/code.h	Sat Jan 10 03:01:18 2009	(r186997)
@@ -1,7 +1,7 @@
 /* $FreeBSD$ */
 
 /*
- * Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
  * Copyright (C) 1998-2003 Internet Software Consortium.
  *
  * Permission to use, copy, modify, and distribute this software for any

Modified: stable/7/lib/bind/dns/dns/enumclass.h
==============================================================================
--- stable/7/lib/bind/dns/dns/enumclass.h	Sat Jan 10 03:00:21 2009	(r186996)
+++ stable/7/lib/bind/dns/dns/enumclass.h	Sat Jan 10 03:01:18 2009	(r186997)
@@ -1,7 +1,7 @@
 /* $FreeBSD$ */
 
 /*
- * Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
  * Copyright (C) 1998-2003 Internet Software Consortium.
  *
  * Permission to use, copy, modify, and distribute this software for any

Modified: stable/7/lib/bind/dns/dns/enumtype.h
==============================================================================
--- stable/7/lib/bind/dns/dns/enumtype.h	Sat Jan 10 03:00:21 2009	(r186996)
+++ stable/7/lib/bind/dns/dns/enumtype.h	Sat Jan 10 03:01:18 2009	(r186997)
@@ -1,7 +1,7 @@
 /* $FreeBSD$ */
 
 /*
- * Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
  * Copyright (C) 1998-2003 Internet Software Consortium.
  *
  * Permission to use, copy, modify, and distribute this software for any

Modified: stable/7/lib/bind/dns/dns/rdatastruct.h
==============================================================================
--- stable/7/lib/bind/dns/dns/rdatastruct.h	Sat Jan 10 03:00:21 2009	(r186996)
+++ stable/7/lib/bind/dns/dns/rdatastruct.h	Sat Jan 10 03:01:18 2009	(r186997)
@@ -1,7 +1,7 @@
 /* $FreeBSD$ */
 
 /*
- * Copyright (C) 2004-2007 Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004-2008 Internet Systems Consortium, Inc. ("ISC")
  * Copyright (C) 1998-2003 Internet Software Consortium.
  *
  * Permission to use, copy, modify, and distribute this software for any
@@ -1608,10 +1608,10 @@ typedef struct dns_rdata_rrsig {
 
 #endif /* GENERIC_DNSSIG_46_H */
 /*
- * Copyright (C) 2004, 2005  Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2008  Internet Systems Consortium, Inc. ("ISC")
  * Copyright (C) 2003  Internet Software Consortium.
  *
- * Permission to use, copy, modify, and distribute this software for any
+ * Permission to use, copy, modify, and/or distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above
  * copyright notice and this permission notice appear in all copies.
  *
@@ -1627,10 +1627,10 @@ typedef struct dns_rdata_rrsig {
 #ifndef GENERIC_NSEC_47_H
 #define GENERIC_NSEC_47_H 1
 
-/* $Id: nsec_47.h,v 1.4.20.2 2005/04/29 00:16:37 marka Exp $ */
+/* $Id: nsec_47.h,v 1.4.20.4 2008/07/15 23:46:14 tbox Exp $ */
 
 /*!
- * \brief Per draft-ietf-dnsext-nsec-rdata-01.txt */
+ * \brief Per RFC 3845 */
 
 typedef struct dns_rdata_nsec {
 	dns_rdatacommon_t	common;

Modified: stable/7/lib/bind/isc/Makefile
==============================================================================
--- stable/7/lib/bind/isc/Makefile	Sat Jan 10 03:00:21 2009	(r186996)
+++ stable/7/lib/bind/isc/Makefile	Sat Jan 10 03:01:18 2009	(r186997)
@@ -32,7 +32,7 @@ SRCS+=		inet_pton.c \
 		hash.c heap.c hex.c hmacmd5.c hmacsha.c \
 		lex.c lfsr.c lib.c log.c md5.c \
 		mem.c mutexblock.c netaddr.c netscope.c ondestroy.c \
-		parseint.c print.c quota.c random.c \
+		parseint.c portset.c print.c quota.c random.c \
 		ratelimiter.c refcount.c region.c result.c rwlock.c \
 		serial.c sha1.c sha2.c sockaddr.c string.c strtoul.c \
 		symtab.c task.c taskpool.c timer.c version.c
@@ -84,6 +84,7 @@ INCS=		${SRCDIR}/include/isc/app.h \
 		${SRCDIR}/include/isc/ondestroy.h \
 		${SRCDIR}/include/isc/os.h \
 		${SRCDIR}/include/isc/parseint.h \
+		${SRCDIR}/include/isc/portset.h \
 		${SRCDIR}/include/isc/print.h \
 		${SRCDIR}/include/isc/quota.h \
 		${SRCDIR}/include/isc/random.h \

Modified: stable/7/lib/bind/isc/isc/platform.h
==============================================================================
--- stable/7/lib/bind/isc/isc/platform.h	Sat Jan 10 03:00:21 2009	(r186996)
+++ stable/7/lib/bind/isc/isc/platform.h	Sat Jan 10 03:01:18 2009	(r186997)
@@ -1,7 +1,7 @@
 /* $FreeBSD$ */
 
 /*
- * Copyright (C) 2004, 2005, 2007  Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (C) 2004, 2005, 2007, 2008  Internet Systems Consortium, Inc. ("ISC")
  * Copyright (C) 1999-2003  Internet Software Consortium.
  *
  * Permission to use, copy, modify, and/or distribute this software for any
@@ -17,7 +17,7 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: platform.h.in,v 1.34.18.9 2007/09/13 05:04:01 each Exp $ */
+/* $Id: platform.h.in,v 1.34.18.11 2008/06/24 23:45:55 tbox Exp $ */
 
 #ifndef ISC_PLATFORM_H
 #define ISC_PLATFORM_H 1
@@ -142,6 +142,21 @@
  */
 #undef ISC_PLATFORM_FIXIN6ISADDR
 
+/*! \brief
+ * Define if the system supports kqueue multiplexing
+ */
+#define ISC_PLATFORM_HAVEKQUEUE 1
+
+/*! \brief
+ * Define if the system supports epoll multiplexing
+ */
+#undef ISC_PLATFORM_HAVEEPOLL
+
+/*! \brief
+ * Define if the system supports /dev/poll multiplexing
+ */
+#undef ISC_PLATFORM_HAVEDEVPOLL
+
 /*
  *** Printing.
  ***/
@@ -226,19 +241,19 @@
 
 /*
  * If the "xadd" operation is available on this architecture,
- * ISC_PLATFORM_HAVEXADD will be defined. 
+ * ISC_PLATFORM_HAVEXADD will be defined.
  */
 #define ISC_PLATFORM_HAVEXADD 1
 
 /*
  * If the "atomic swap" operation is available on this architecture,
- * ISC_PLATFORM_HAVEATOMICSTORE" will be defined. 
+ * ISC_PLATFORM_HAVEATOMICSTORE" will be defined.
  */
 #define ISC_PLATFORM_HAVEATOMICSTORE 1
 
 /*
  * If the "compare-and-exchange" operation is available on this architecture,
- * ISC_PLATFORM_HAVECMPXCHG will be defined. 
+ * ISC_PLATFORM_HAVECMPXCHG will be defined.
  */
 #define ISC_PLATFORM_HAVECMPXCHG 1
 

Modified: stable/7/share/doc/bind9/Makefile
==============================================================================
--- stable/7/share/doc/bind9/Makefile	Sat Jan 10 03:00:21 2009	(r186996)
+++ stable/7/share/doc/bind9/Makefile	Sat Jan 10 03:01:18 2009	(r186997)
@@ -20,7 +20,7 @@ ARM=		Bv9ARM.ch01.html Bv9ARM.ch02.html 
 		man.rndc.html
 ARMDIR=		${TOPDIR}/arm
 MISC=		dnssec format-options.pl ipv6 migration migration-4to9 \
-		options rfc-compliance roadmap sdb
+		options rfc-compliance roadmap sdb sort-options.pl
 MISCDIR=	${TOPDIR}/misc
 
 .include <bsd.prog.mk>

Modified: stable/7/usr.bin/nsupdate/Makefile
==============================================================================
--- stable/7/usr.bin/nsupdate/Makefile	Sat Jan 10 03:00:21 2009	(r186996)
+++ stable/7/usr.bin/nsupdate/Makefile	Sat Jan 10 03:01:18 2009	(r186997)
@@ -18,7 +18,7 @@ CFLAGS+=	-I${BIND_DIR}/lib/isc/${ISC_ATO
 DPADD+=		${BIND_DPADD} ${CRYPTO_DPADD} ${PTHREAD_DPADD}
 LDADD+=		${BIND_LDADD} ${CRYPTO_LDADD} ${PTHREAD_LDADD}
 
-MAN=		nsupdate.8
+MAN=		nsupdate.1
 
 MANFILTER=	sed -e "s@/etc/named\.conf@/etc/namedb/named.conf at g" \
 		-e "s@^\.HP [0-9]* @@"


More information about the svn-src-stable mailing list