Date: Sun, 10 Jan 2021 23:59:28 GMT From: pkg-fallout@FreeBSD.org To: pkg-fallout@FreeBSD.org Subject: [package - head-armv7-default][net-mgmt/p0f2] Failed for p0f2-2.0.8_1 in build Message-ID: <202101102359.10ANxSns011070@beefy12.nyi.freebsd.org>
next in thread | raw e-mail | index | archive | help
You are receiving this mail as a port that you maintain is failing to build on the FreeBSD package build server. Please investigate the failure and submit a PR to fix build. Maintainer: ports@FreeBSD.org Last committer: jkim@FreeBSD.org Ident: $FreeBSD: head/net-mgmt/p0f2/Makefile 508294 2019-08-07 05:13:43Z jkim $ Log URL: http://beefy12.nyi.freebsd.org/data/head-armv7-default/p560826_s368820/logs/p0f2-2.0.8_1.log Build URL: http://beefy12.nyi.freebsd.org/build.html?mastername=head-armv7-default&build=p560826_s368820 Log: =>> Building net-mgmt/p0f2 build started at Sun Jan 10 23:59:19 UTC 2021 port directory: /usr/ports/net-mgmt/p0f2 package name: p0f2-2.0.8_1 building for: FreeBSD head-armv7-default-job-01 13.0-CURRENT FreeBSD 13.0-CURRENT 1300132 arm maintained by: ports@FreeBSD.org Makefile ident: $FreeBSD: head/net-mgmt/p0f2/Makefile 508294 2019-08-07 05:13:43Z jkim $ Poudriere version: 3.2.8-8-gaf08dbda Host OSVERSION: 1300121 Jail OSVERSION: 1300132 Job Id: 01 !!! Jail is newer than host. (Jail: 1300132, Host: 1300121) !!! !!! This is not supported. !!! !!! Host kernel must be same or newer than jail. !!! !!! Expect build failures. !!! ---Begin Environment--- SHELL=/bin/csh UNAME_p=armv7 UNAME_m=arm ABI_FILE=/usr/lib/crt1.o OSVERSION=1300132 UNAME_v=FreeBSD 13.0-CURRENT 1300132 UNAME_r=13.0-CURRENT BLOCKSIZE=K MAIL=/var/mail/root MM_CHARSET=UTF-8 LANG=C.UTF-8 STATUS=1 HOME=/root PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin LOCALBASE=/usr/local QEMU_EMULATING=1 USER=root LIBEXECPREFIX=/usr/local/libexec/poudriere POUDRIERE_VERSION=3.2.8-8-gaf08dbda MASTERMNT=/usr/local/poudriere/data/.m/head-armv7-default/ref POUDRIERE_BUILD_TYPE=bulk PACKAGE_BUILDING=yes SAVED_TERM= PWD=/usr/local/poudriere/data/.m/head-armv7-default/ref/.p/pool P_PORTS_FEATURES=FLAVORS SELECTED_OPTIONS MASTERNAME=head-armv7-default SCRIPTPREFIX=/usr/local/share/poudriere OLDPWD=/usr/local/poudriere/data/.m/head-armv7-default/ref/.p SCRIPTPATH=/usr/local/share/poudriere/bulk.sh POUDRIEREPATH=/usr/local/bin/poudriere ---End Environment--- ---Begin Poudriere Port Flags/Env--- PORT_FLAGS= PKGENV= FLAVOR= DEPENDS_ARGS= MAKE_ARGS= ---End Poudriere Port Flags/Env--- ---Begin OPTIONS List--- ===> The following configuration options are available for p0f2-2.0.8_1: DOCS=on: Build and/or install documentation ===> Use 'make config' to modify these settings ---End OPTIONS List--- --MAINTAINER-- ports@FreeBSD.org --End MAINTAINER-- --CONFIGURE_ARGS-- --End CONFIGURE_ARGS-- --CONFIGURE_ENV-- MAKE=gmake XDG_DATA_HOME=/wrkdirs/usr/ports/net-mgmt/p0f2/work XDG_CONFIG_HOME=/wrkdirs/usr/ports/net-mgmt/p0f2/work HOME=/wrkdirs/usr/ports/net-mgmt/p0f2/work TMPDIR="/tmp" PATH=/wrkdirs/usr/ports/net-mgmt/p0f2/work/.bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin SHELL=/bin/sh CONFIG_SHELL=/bin/sh --End CONFIGURE_ENV-- --MAKE_ENV-- XDG_DATA_HOME=/wrkdirs/usr/ports/net-mgmt/p0f2/work XDG_CONFIG_HOME=/wrkdirs/usr/ports/net-mgmt/p0f2/work HOME=/wrkdirs/usr/ports/net-mgmt/p0f2/work TMPDIR="/tmp" PATH=/wrkdirs/usr/ports/net-mgmt/p0f2/work/.bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/root/bin NO_PIE=yes MK_DEBUG_FILES=no MK_KERNEL_SYMBOLS=no SHELL=/bin/sh NO_LINT=YES PREFIX=/usr/local LOCALBASE=/usr/local CC="/nxb-bin/usr/bin/cc" CFLAGS="-O2 -pipe -fstack-protector-strong -fno-strict-aliasing " CPP="/nxb-bin/usr/bin/cpp" CPPFLAGS="" LDFLAGS=" -fstack-protector-strong " LIBS="" CXX="/nxb-bin/usr/bin/c++" CXXFLAGS="-O2 -pipe -fstack-protector-strong -fno-strict-aliasing " MANPREFIX="/usr/local" BSD_INSTALL_PROGRAM="install -s -m 555" BSD_INSTALL_LIB="install -s -m 0644" BSD_INSTALL_SCRIPT="install -m 555" BSD_INSTALL_DATA="install -m 0644" BSD_INSTALL_MAN="install -m 444" --End MAKE_ENV-- --PLIST_SUB-- PORTDOCS="" OSREL=13.0 PREFIX=%D LOCALBASE=/usr/local RESETPREFIX=/usr/local LIB32DIR=lib DOCSDIR="share/doc/p0f2" EXAMPLESDIR="share/examples/p0f2" DATADIR="share/p0f2" WWWDIR="www/p0f2" ETCDIR="etc/p0f2" --End PLIST_SUB-- --SUB_LIST-- PREFIX=/usr/local LOCALBASE=/usr/local DATADIR=/usr/local/share/p0f2 DOCSDIR=/usr/local/share/doc/p0f2 EXAMPLESDIR=/usr/local/share/examples/p0f2 WWWDIR=/usr/local/www/p0f2 ETCDIR=/usr/local/etc/p0f2 --End SUB_LIST-- ---Begin make.conf--- .sinclude "/etc/make.nxb.conf" USE_PACKAGE_DEPENDS=yes BATCH=yes WRKDIRPREFIX=/wrkdirs PORTSDIR=/usr/ports PACKAGES=/packages DISTDIR=/distfiles PACKAGE_BUILDING=yes PACKAGE_BUILDING_FLAVORS=yes MACHINE=arm MACHINE_ARCH=armv7 ARCH=${MACHINE_ARCH} #### /usr/local/etc/poudriere.d/make.conf #### # XXX: We really need this but cannot use it while 'make checksum' does not # try the next mirror on checksum failure. It currently retries the same # failed mirror and then fails rather then trying another. It *does* # try the next if the size is mismatched though. #MASTER_SITE_FREEBSD=yes # Build ALLOW_MAKE_JOBS_PACKAGES with 2 jobs MAKE_JOBS_NUMBER=2 #### /usr/ports/Mk/Scripts/ports_env.sh #### _CCVERSION_9d218390=FreeBSD clang version 11.0.0 (git@github.com:llvm/llvm-project.git llvmorg-11.0.0-0-g176249bd673) Target: armv7-unknown-freebsd13.0-gnueabihf Thread model: posix InstalledDir: /nxb-bin/usr/bin _ALTCCVERSION_9d218390=none _CXXINTERNAL_9c45a5b1=FreeBSD clang version 11.0.0 (git@github.com:llvm/llvm-project.git llvmorg-11.0.0-0-g176249bd673) Target: armv7-unknown-freebsd13.0-gnueabihf Thread model: posix InstalledDir: /nxb-bin/usr/bin "/nxb-bin/usr/bin/ld" "--eh-frame-hdr" "-dynamic-linker" "/libexec/ld-elf.so.1" "--hash-style=both" "--enable-new-dtags" "-o" "a.out" "/usr/lib/crt1.o" "/usr/lib/crti.o" "/usr/lib/crtbegin.o" "-L/usr/lib" "/dev/null" "-lc++" "-lm" "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" "-lc" "-lgcc" "--as-needed" "-lgcc_s" "--no-as-needed" "/usr/lib/crtend.o" "/usr/lib/crtn.o" CC_OUTPUT_9d218390_58173849=yes CC_OUTPUT_9d218390_9bdba57c=yes CC_OUTPUT_9d218390_6a4fe7f5=yes CC_OUTPUT_9d218390_6bcac02b=yes CC_OUTPUT_9d218390_67d20829=yes CC_OUTPUT_9d218390_bfa62e83=yes CC_OUTPUT_9d218390_f0b4d593=yes CC_OUTPUT_9d218390_308abb44=yes CC_OUTPUT_9d218390_f00456e5=yes CC_OUTPUT_9d218390_65ad290d=yes CC_OUTPUT_9d218390_f2776b26=yes CC_OUTPUT_9d218390_b2657cc3=yes CC_OUTPUT_9d218390_380987f7=yes CC_OUTPUT_9d218390_160933ec=yes CC_OUTPUT_9d218390_fb62803b=yes _OBJC_CCVERSION_9d218390=FreeBSD clang version 11.0.0 (git@github.com:llvm/llvm-project.git llvmorg-11.0.0-0-g176249bd673) Target: armv7-unknown-freebsd13.0-gnueabihf Thread model: posix InstalledDir: /nxb-bin/usr/bin _OBJC_ALTCCVERSION_9d218390=none ARCH=armv7 OPSYS=FreeBSD _OSRELEASE=13.0-CURRENT OSREL=13.0 OSVERSION=1300132 PYTHONBASE=/usr/local CONFIGURE_MAX_CMD_LEN=524288 HAVE_PORTS_ENV=1 #### Misc Poudriere #### GID=0 UID=0 DISABLE_MAKE_JOBS=poudriere ---End make.conf--- ---Begin make.nxb.conf--- CC=/nxb-bin/usr/bin/cc CPP=/nxb-bin/usr/bin/cpp CXX=/nxb-bin/usr/bin/c++ NM=/nxb-bin/usr/bin/nm LD=/nxb-bin/usr/bin/ld OBJCOPY=/nxb-bin/usr/bin/objcopy SIZE=/nxb-bin/usr/bin/size STRIPBIN=/nxb-bin/usr/bin/strip SED=/nxb-bin/usr/bin/sed RANLIB=/nxb-bin/usr/bin/ranlib YACC=/nxb-bin/usr/bin/yacc MAKE=/nxb-bin/usr/bin/make STRINGS=/nxb-bin/usr/bin/strings AWK=/nxb-bin/usr/bin/awk FLEX=/nxb-bin/usr/bin/flex ---End make.nxb.conf--- --Resource limits-- cpu time (seconds, -t) unlimited file size (512-blocks, -f) unlimited data seg size (kbytes, -d) 33554432 stack size (kbytes, -s) 524288 core file size (512-blocks, -c) unlimited max memory size (kbytes, -m) unlimited locked memory (kbytes, -l) unlimited max user processes (-u) 89999 open files (-n) 1024 virtual mem size (kbytes, -v) unlimited swap limit (kbytes, -w) unlimited socket buffer size (bytes, -b) unlimited pseudo-terminals (-p) unlimited kqueues (-k) unlimited umtx shared locks (-o) unlimited --End resource limits-- =======================<phase: check-sanity >============================ ===> NOTICE: The p0f2 port currently does not have a maintainer. As a result, it is more likely to have unresolved issues, not be up-to-date, or even be removed in the future. To volunteer to maintain this port, please create an issue at: https://bugs.freebsd.org/bugzilla More information about port maintainership is available at: https://www.freebsd.org/doc/en/articles/contributing/ports-contributing.html#maintain-port =========================================================================== =======================<phase: pkg-depends >============================ ===> p0f2-2.0.8_1 depends on file: /usr/local/sbin/pkg - not found ===> Installing existing package /packages/All/pkg-1.16.1.txz <snip> ^~~~~~~~~ /usr/include/unistd.h:371:25: note: passing argument to parameter here int unlink(const char *); ^ p0f.c:1673:60: warning: passing '_u8 *' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign] if (bind(lsock,(struct sockaddr*)&x,sizeof(x))) pfatal(use_cache); ^~~~~~~~~ p0f.c:93:53: note: expanded from macro 'pfatal' #define pfatal(x) do { debug("[-] ERROR: "); perror(x); exit(1); } while (0) ^ /usr/include/stdio.h:275:26: note: passing argument to parameter here void perror(const char *); ^ p0f.c:1680:32: warning: passing '_u8 *' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign] if (!(pt=pcap_open_offline(use_dump, errbuf))) ^~~~~~~~ /usr/include/pcap/pcap.h:410:48: note: passing argument to parameter here PCAP_API pcap_t *pcap_open_offline(const char *, char *); ^ p0f.c:1680:42: warning: passing '_u8 [256]' to parameter of type 'char *' converts between pointers to integer types with different sign [-Wpointer-sign] if (!(pt=pcap_open_offline(use_dump, errbuf))) ^~~~~~ /usr/include/pcap/pcap.h:410:56: note: passing argument to parameter here PCAP_API pcap_t *pcap_open_offline(const char *, char *); ^ p0f.c:1699:31: warning: 'pcap_lookupdev' is deprecated: use 'pcap_findalldevs' and use the first device [-Wdeprecated-declarations] if (!use_iface) use_iface=pcap_lookupdev(errbuf); ^ /usr/include/pcap/pcap.h:326:1: note: 'pcap_lookupdev' has been explicitly marked deprecated here PCAP_DEPRECATED(pcap_lookupdev, "use 'pcap_findalldevs' and use the first device"); ^ /usr/include/pcap/funcattrs.h:227:53: note: expanded from macro 'PCAP_DEPRECATED' #define PCAP_DEPRECATED(func, msg) __attribute__((deprecated(msg))) ^ p0f.c:1699:46: warning: passing '_u8 [256]' to parameter of type 'char *' converts between pointers to integer types with different sign [-Wpointer-sign] if (!use_iface) use_iface=pcap_lookupdev(errbuf); ^~~~~~ /usr/include/pcap/pcap.h:325:37: note: passing argument to parameter here PCAP_API char *pcap_lookupdev(char *) ^ p0f.c:1699:30: warning: assigning to '_u8 *' (aka 'unsigned char *') from 'char *' converts between pointers to integer types with different sign [-Wpointer-sign] if (!use_iface) use_iface=pcap_lookupdev(errbuf); ^~~~~~~~~~~~~~~~~~~~~~~ p0f.c:1702:31: warning: assigning to '_u8 *' (aka 'unsigned char *') from 'char [3]' converts between pointers to integer types with different sign [-Wpointer-sign] if (!use_iface) use_iface = "lo"; ^ ~~~~ p0f.c:1708:29: warning: passing '_u8 *' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign] if (!(pt=pcap_open_live(use_iface,PACKET_SNAPLEN,use_promisc,capture_timeout,errbuf))) ^~~~~~~~~ /usr/include/pcap/pcap.h:406:45: note: passing argument to parameter here PCAP_API pcap_t *pcap_open_live(const char *, int, int, int, char *); ^ p0f.c:1708:82: warning: passing '_u8 [256]' to parameter of type 'char *' converts between pointers to integer types with different sign [-Wpointer-sign] if (!(pt=pcap_open_live(use_iface,PACKET_SNAPLEN,use_promisc,capture_timeout,errbuf))) ^~~~~~ /usr/include/pcap/pcap.h:406:68: note: passing argument to parameter here PCAP_API pcap_t *pcap_open_live(const char *, int, int, int, char *); ^ p0f.c:1714:30: warning: passing '_u8 *' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign] if (pcap_compile(pt, &flt, use_rule, 1, 0)) ^~~~~~~~ /usr/include/pcap/pcap.h:455:71: note: passing argument to parameter here PCAP_API int pcap_compile(pcap_t *, struct bpf_program *, const char *, int, ^ p0f.c:1715:16: warning: passing '_u8 *' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign] if (strchr(use_rule,'(')) { ^~~~~~~~ /usr/include/string.h:78:26: note: passing argument to parameter here char *strchr(const char *, int) __pure; ^ p0f.c:1736:37: warning: passing '_u8 *' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign] if (!(dumper=pcap_dump_open(pt, write_dump))) { ^~~~~~~~~~ /usr/include/pcap/pcap.h:485:62: note: passing argument to parameter here PCAP_API pcap_dumper_t *pcap_dump_open(pcap_t *, const char *); ^ p0f.c:1757:19: warning: passing '_u8 *' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign] pw = getpwnam(set_user); ^~~~~~~~ /usr/include/pwd.h:150:37: note: passing argument to parameter here struct passwd *getpwnam(const char *); ^ p0f.c:1760:28: warning: passing '_u8 *' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign] if (use_cache && chown(use_cache,pw->pw_uid,pw->pw_gid)) ^~~~~~~~~ /usr/include/unistd.h:327:24: note: passing argument to parameter here int chown(const char *, uid_t, gid_t); ^ 120 warnings generated. p0f-query.c:79:13: warning: passing '_u8 [20]' to parameter of type 'char *' converts between pointers to integer types with different sign [-Wpointer-sign] strncpy(sc->genre,genre,19); ^~~~~~~~~ /usr/include/string.h:103:32: note: passing argument to parameter here char *strncpy(char * __restrict, const char * __restrict, size_t); ^ p0f-query.c:79:23: warning: passing '_u8 *' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign] strncpy(sc->genre,genre,19); ^~~~~ /usr/include/string.h:103:57: note: passing argument to parameter here char *strncpy(char * __restrict, const char * __restrict, size_t); ^ p0f-query.c:80:13: warning: passing '_u8 [40]' to parameter of type 'char *' converts between pointers to integer types with different sign [-Wpointer-sign] strncpy(sc->detail,detail,39); ^~~~~~~~~~ /usr/include/string.h:103:32: note: passing argument to parameter here char *strncpy(char * __restrict, const char * __restrict, size_t); ^ p0f-query.c:80:24: warning: passing '_u8 *' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign] strncpy(sc->detail,detail,39); ^~~~~~ /usr/include/string.h:103:57: note: passing argument to parameter here char *strncpy(char * __restrict, const char * __restrict, size_t); ^ p0f-query.c:83:21: warning: passing '_u8 [30]' to parameter of type 'char *' converts between pointers to integer types with different sign [-Wpointer-sign] if (link) strncpy(sc->link,link,29); ^~~~~~~~ /usr/include/string.h:103:32: note: passing argument to parameter here char *strncpy(char * __restrict, const char * __restrict, size_t); ^ p0f-query.c:83:30: warning: passing '_u8 *' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign] if (link) strncpy(sc->link,link,29); ^~~~ /usr/include/string.h:103:57: note: passing argument to parameter here char *strncpy(char * __restrict, const char * __restrict, size_t); ^ p0f-query.c:84:20: warning: passing '_u8 [30]' to parameter of type 'char *' converts between pointers to integer types with different sign [-Wpointer-sign] if (tos) strncpy(sc->tos,tos,29); ^~~~~~~ /usr/include/string.h:103:32: note: passing argument to parameter here char *strncpy(char * __restrict, const char * __restrict, size_t); ^ p0f-query.c:84:28: warning: passing '_u8 *' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign] if (tos) strncpy(sc->tos,tos,29); ^~~ /usr/include/string.h:103:57: note: passing argument to parameter here char *strncpy(char * __restrict, const char * __restrict, size_t); ^ p0f-query.c:77:22: warning: 'memset' call operates on objects of type 'struct p0f_response' while the size is based on a different type 'struct p0f_response *' [-Wsizeof-pointer-memaccess] memset(sc,0,sizeof(sc)); ~~ ^~ p0f-query.c:77:22: note: did you mean to dereference the argument to 'sizeof' (and multiply it by the number of elements)? memset(sc,0,sizeof(sc)); ^~ p0f-query.c:134:13: warning: passing '_u8 [16]' to parameter of type 'char *' converts between pointers to integer types with different sign [-Wpointer-sign] strncpy(s.version, VER, sizeof(s.version)-1); ^~~~~~~~~ /usr/include/string.h:103:32: note: passing argument to parameter here char *strncpy(char * __restrict, const char * __restrict, size_t); ^ p0f-query.c:232:18: warning: passing '_u8 *' (aka 'unsigned char *') to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign] if (strcmp(genre,cur->s.genre)) flags |= D_GENRE; ^~~~~ /usr/include/string.h:82:25: note: passing argument to parameter here int strcmp(const char *, const char *) __pure; ^ p0f-query.c:232:24: warning: passing '_u8 [20]' to parameter of type 'const char *' converts between pointers to integer types with different sign [-Wpointer-sign] if (strcmp(genre,cur->s.genre)) flags |= D_GENRE; ^~~~~~~~~~~~ /usr/include/string.h:82:39: note: passing argument to parameter here int strcmp(const char *, const char *) __pure; ^ 12 warnings generated. ld: error: duplicate symbol: file_cksum >>> defined at p0f.c >>> /tmp/p0f-bc9f31.o:(file_cksum) >>> defined at p0f-query.c >>> /tmp/p0f-query-616ecf.o:(.bss+0x10) ld: error: duplicate symbol: matched_packets >>> defined at p0f.c >>> /tmp/p0f-bc9f31.o:(matched_packets) >>> defined at p0f-query.c >>> /tmp/p0f-query-616ecf.o:(.bss+0x18) ld: error: duplicate symbol: operating_mode >>> defined at p0f.c >>> /tmp/p0f-bc9f31.o:(operating_mode) >>> defined at p0f-query.c >>> /tmp/p0f-query-616ecf.o:(.bss+0xE) ld: error: duplicate symbol: packet_count >>> defined at p0f.c >>> /tmp/p0f-bc9f31.o:(packet_count) >>> defined at p0f-query.c >>> /tmp/p0f-query-616ecf.o:(.bss+0x14) ld: error: duplicate symbol: st_time >>> defined at p0f.c >>> /tmp/p0f-bc9f31.o:(st_time) >>> defined at p0f-query.c >>> /tmp/p0f-query-616ecf.o:(.bss+0x24) cc: error: linker command failed with exit code 1 (use -v to see invocation) gmake[2]: *** [mk/FreeBSD:26: p0f] Error 1 gmake[2]: Leaving directory '/wrkdirs/usr/ports/net-mgmt/p0f2/work/p0f' gmake[1]: *** [Makefile:11: all] Error 2 gmake[1]: Leaving directory '/wrkdirs/usr/ports/net-mgmt/p0f2/work/p0f' *** Error code 1 Stop. make: stopped in /usr/ports/net-mgmt/p0f2
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202101102359.10ANxSns011070>