Merge pull request #2009 from roger-/micropython-new
authorTed Hess <thess@kitschensync.net>
Mon, 23 Nov 2015 14:05:26 +0000 (09:05 -0500)
committerTed Hess <thess@kitschensync.net>
Mon, 23 Nov 2015 14:05:26 +0000 (09:05 -0500)
micropython: update to latest

518 files changed:
admin/debootstrap/Makefile
admin/muninlite/Makefile
admin/muninlite/patches/001-fix_disks.patch [new file with mode: 0644]
admin/muninlite/patches/001-no_disks.patch [deleted file]
admin/muninlite/patches/220-modify-ifname-parser.patch
admin/muninlite/patches/230-fix-available-interface-parsing.patch [new file with mode: 0644]
admin/sudo/Makefile
admin/sudo/patches/030-musl-fix-missing-header.patch [new file with mode: 0644]
admin/zabbix/Makefile
ipv6/aiccu/Makefile
ipv6/aiccu/patches/500-gnutls_3.4.patch [new file with mode: 0644]
ipv6/tayga/Makefile
kernel/exfat-nofuse/Makefile
lang/node-arduino-firmata/Makefile [new file with mode: 0644]
lang/node-arduino-firmata/files/usr/lib/node/arduino-firmata/lib/arduino-firmata.js [new file with mode: 0644]
lang/node-arduino-firmata/patches/000-new-serialport.patch [new file with mode: 0644]
lang/node-cylon/Makefile [new file with mode: 0644]
lang/node-cylon/patches/0001-serialport.patch [new file with mode: 0644]
lang/node-hid/Makefile [new file with mode: 0644]
lang/node-hid/patches/000-compile.patch [new file with mode: 0644]
lang/node-serialport/Makefile [new file with mode: 0644]
lang/node-serialport/patches/package.json.patch [new file with mode: 0644]
lang/node/Makefile [new file with mode: 0644]
lang/node/patches/001-mips-no-fpu.patch [new file with mode: 0644]
lang/node/patches/002-addr_info.patch [new file with mode: 0644]
lang/node/patches/003-path.patch [new file with mode: 0644]
lang/perl-cgi/Makefile
lang/perl-device-usb/Makefile [new file with mode: 0644]
lang/perl-device-usb/README.patches [new file with mode: 0644]
lang/perl-device-usb/patches/100-fix_buildsystem.patch [new file with mode: 0644]
lang/perl-device-usb/patches/110-just_assume_libusb_is_there.diff [new file with mode: 0644]
lang/perl-device-usb/patches/120-use_libusb_0_1.patch [new file with mode: 0644]
lang/perl-device-usb/patches/130-provide-proper-library-paths.patch [new file with mode: 0644]
lang/perl-device-usb/patches/140-avoid-libusb-name-conflicts.patch [new file with mode: 0644]
lang/perl-file-sharedir-install/Makefile [new file with mode: 0644]
lang/perl-http-message/Makefile
lang/perl-http-server-simple/Makefile
lang/perl-inline-c/Makefile [new file with mode: 0644]
lang/perl-inline-c/patches/100-inline_c-no_compile_hack.patch [new file with mode: 0644]
lang/perl-inline-c/patches/110-inline_c-make_system_typemap_overridable.patch [new file with mode: 0644]
lang/perl-inline/Makefile [new file with mode: 0644]
lang/perl-parse-recdescent/Makefile [new file with mode: 0644]
lang/perl/Makefile
lang/perl/README.patches [new file with mode: 0644]
lang/perl/files/README.config [new file with mode: 0644]
lang/perl/files/architecture.config [new file with mode: 0644]
lang/perl/files/arm.config [new file with mode: 0644]
lang/perl/files/armeb.config [new file with mode: 0644]
lang/perl/files/base.config [new file with mode: 0644]
lang/perl/files/config.sh-arm-mt.in [deleted file]
lang/perl/files/config.sh-arm.in [deleted file]
lang/perl/files/config.sh-armeb-mt.in [deleted file]
lang/perl/files/config.sh-armeb.in [deleted file]
lang/perl/files/config.sh-avr32-mt.in [deleted file]
lang/perl/files/config.sh-avr32.in [deleted file]
lang/perl/files/config.sh-i486-mt.in [deleted file]
lang/perl/files/config.sh-i486.in [deleted file]
lang/perl/files/config.sh-mips-mt.in [deleted file]
lang/perl/files/config.sh-mips.in [deleted file]
lang/perl/files/config.sh-mips64-mt.in [deleted file]
lang/perl/files/config.sh-mips64.in [deleted file]
lang/perl/files/config.sh-mipsel-mt.in [deleted file]
lang/perl/files/config.sh-mipsel.in [deleted file]
lang/perl/files/config.sh-powerpc-mt.in [deleted file]
lang/perl/files/config.sh-powerpc.in [deleted file]
lang/perl/files/config.sh-x86_64-mt.in [deleted file]
lang/perl/files/config.sh-x86_64.in [deleted file]
lang/perl/files/i486.config [new file with mode: 0644]
lang/perl/files/libc.config [new file with mode: 0644]
lang/perl/files/mips.config [new file with mode: 0644]
lang/perl/files/mips64.config [new file with mode: 0644]
lang/perl/files/mipsel.config [new file with mode: 0644]
lang/perl/files/misc.config [new file with mode: 0644]
lang/perl/files/perl-run_tests.sh
lang/perl/files/perlconfig.pl [new file with mode: 0644]
lang/perl/files/powerpc.config [new file with mode: 0644]
lang/perl/files/signal.config [new file with mode: 0644]
lang/perl/files/threads.config [new file with mode: 0644]
lang/perl/files/version.config [new file with mode: 0644]
lang/perl/files/x86_64.config [new file with mode: 0644]
lang/perl/patches/010-musl-compat.patch [new file with mode: 0644]
lang/perl/patches/020-host-libc-dir-moved-debian+derivatives.patch [new file with mode: 0644]
lang/perl/patches/100-fix-cross-compile-endianness-detection.patch [new file with mode: 0644]
lang/perl/patches/100-musl-compat.patch [deleted file]
lang/perl/patches/101-fix-cross-compile-endianness-detection.patch [deleted file]
lang/perl/patches/110-always_use_miniperl.patch [new file with mode: 0644]
lang/perl/patches/200-host-libc-dir-moved-debian+derivatives.patch [deleted file]
lang/perl/patches/300-add-relink-hack.patch [new file with mode: 0644]
lang/perl/patches/300-always_use_miniperl.patch [deleted file]
lang/perl/patches/400-add_microperl_caretx_dependency.patch [deleted file]
lang/perl/patches/500-add-relink-hack.patch [deleted file]
lang/perl/patches/700-tie_fetch_count_t-handle_missing_crypt.patch [new file with mode: 0644]
lang/perl/patches/710-threads_join-skip_ps_on_busybox.patch [new file with mode: 0644]
lang/perl/perlbase.mk
lang/perl/perlmod.mk
lang/php5/Makefile
lang/php5/patches/102-debian_patches_use_embedded_timezonedb.patch
lang/python-cffi/Makefile [new file with mode: 0644]
lang/python-crypto/Makefile [new file with mode: 0644]
lang/python-crypto/patches/001-no-host-paths.patch [new file with mode: 0644]
lang/python-crypto/patches/002-fix-endianness-detect.patch [new file with mode: 0644]
lang/python-enum34/Makefile [new file with mode: 0644]
lang/python-idna/Makefile [new file with mode: 0644]
lang/python-ipaddress/Makefile [new file with mode: 0644]
lang/python-ply/Makefile [new file with mode: 0644]
lang/python-pyasn1/Makefile [new file with mode: 0644]
lang/python-pycparser/Makefile [new file with mode: 0644]
lang/python-pycparser/patches/001-use-external-ply.patch [new file with mode: 0644]
lang/python-setuptools/Makefile
lang/python-setuptools/patches/0002-fix-pyvenv-environment-get.patch [new file with mode: 0644]
lang/python-six/Makefile [new file with mode: 0644]
lang/python/Makefile
lang/python/files/python-package.mk
lang/python3/Makefile
lang/python3/files/python3-package.mk
lang/python3/patches/003-do-not-run-distutils-tests.patch
lang/python3/patches/004-do-not-write-bytes-codes.patch
lang/python3/patches/013-make-freeze-import-lib-into-an-override-able-var.patch [new file with mode: 0644]
lang/python3/patches/014-remove-platform-so-suffix.patch [new file with mode: 0644]
lang/python3/patches/015-abort-on-failed-modules.patch [new file with mode: 0644]
lang/tcl/Makefile [new file with mode: 0644]
lang/tcl/patches/100-disable_tzdata_and_msgs_install.patch [new file with mode: 0644]
lang/tcl/patches/200-fix_mips_build.patch [new file with mode: 0644]
lang/vala/Makefile
lang/zope-interface/Makefile [new file with mode: 0644]
libs/boost/Makefile
libs/file/Makefile
libs/glib2/Makefile
libs/glib2/patches/001-automake-compat.patch
libs/glib2/patches/100-fix-gio-linking.patch
libs/gnutls/Makefile
libs/libcanfestival/Makefile [new file with mode: 0644]
libs/libcanfestival/patches/001-sigval-ref-fix.patch [new file with mode: 0644]
libs/libcanfestival/patches/002-makefile-gcc-linker.patch [new file with mode: 0644]
libs/libcap/patches/100-portability.patch [new file with mode: 0644]
libs/libcoap/Makefile [new file with mode: 0644]
libs/libdmapsharing/Makefile
libs/libestr/Makefile [new file with mode: 0644]
libs/libevdev/Makefile
libs/libevent/Makefile
libs/libextractor/Makefile
libs/libffi/Makefile
libs/libffi/patches/001-fix-includedir-pkg.patch [new file with mode: 0644]
libs/libftdi/Makefile
libs/libftdi/patches/102-fix-cmake-include-examples.patch [new file with mode: 0644]
libs/libgee/Makefile [new file with mode: 0644]
libs/libgee/patches/libgee-0.18.0-no-introspection.patch [new file with mode: 0644]
libs/libgpg-error/patches/001-gcc5.patch [new file with mode: 0644]
libs/libinput/Makefile
libs/libinput/patches/001-no-locale.patch
libs/liblz4/Makefile
libs/libmicrohttpd/Makefile
libs/libmicrohttpd/patches/001-bump-to-r35864.patch [deleted file]
libs/libmraa/Makefile [new file with mode: 0644]
libs/libmraa/patches/0001-base.patch [new file with mode: 0644]
libs/libmraa/patches/0002-add-mips-support.patch [new file with mode: 0644]
libs/libmraa/patches/0003-uart.patch [new file with mode: 0644]
libs/libmraa/patches/0004-fixes.patch [new file with mode: 0644]
libs/libradcli/Makefile
libs/libsigc++/Makefile
libs/libsndfile/Makefile
libs/libsndfile/patches/001-automake-compat.patch [deleted file]
libs/libsodium/Makefile
libs/libtasn1/Makefile
libs/libtorrent/Makefile
libs/libtorrent/patches/120-fix-ipv6_socket_datagram.patch [deleted file]
libs/libuecc/Makefile
libs/libupm/Makefile [new file with mode: 0644]
libs/libupm/patches/001-version.patch [new file with mode: 0644]
libs/libupm/patches/002-at42qt1070-id.patch [new file with mode: 0644]
libs/libupm/patches/003-lsm303-args.patch [new file with mode: 0644]
libs/libwebsockets/Makefile
libs/libxml2/Makefile
libs/libxml2/patches/0001-threads-use-forward-declarations-only-for-glibc-fixe.patch [deleted file]
libs/libzdb/Makefile
libs/libzdb/patches/010-cross-compile-fixes.patch
libs/opencv/Makefile
libs/unixodbc/Makefile
mail/fdm/patches/010-musl_WAIT_ANY.patch [new file with mode: 0644]
mail/fdm/patches/020-musl_GLOB_BRACE.patch [new file with mode: 0644]
mail/fdm/patches/030-musl_ACCESSPERMS.patch [new file with mode: 0644]
mail/ssmtp/Makefile
mail/ssmtp/patches/004-remove_dead-letter.patch [new file with mode: 0644]
mail/ssmtp/patches/006-add_ip-header.patch [new file with mode: 0644]
mail/ssmtp/patches/008-remove_garbage.patch [new file with mode: 0644]
mail/ssmtp/patches/010-fix_message-header.patch [new file with mode: 0644]
multimedia/grilo-plugins/Makefile [new file with mode: 0644]
multimedia/grilo/Makefile [new file with mode: 0644]
multimedia/gst1-plugins-bad/Makefile
multimedia/icecast/Makefile
multimedia/icecast/files/icecast.init
multimedia/icecast/patches/020-icecast_config_for_openwrt.patch [new file with mode: 0644]
multimedia/lcdgrilo/Makefile [new file with mode: 0644]
multimedia/lcdgrilo/files/lcdgrilo.init [new file with mode: 0644]
multimedia/mjpg-streamer/Makefile
multimedia/mjpg-streamer/patches/060-fix-sigtrap-in-v4l2uvc.patch [new file with mode: 0644]
multimedia/motion/Makefile
multimedia/motion/patches/100-musl-compat.patch [new file with mode: 0644]
multimedia/tvheadend/Makefile
net/adblock/Makefile [new file with mode: 0644]
net/adblock/files/README.md [new file with mode: 0644]
net/adblock/files/adblock-helper.sh [new file with mode: 0644]
net/adblock/files/adblock-update.sh [new file with mode: 0755]
net/adblock/files/adblock.blacklist [new file with mode: 0644]
net/adblock/files/adblock.conf [new file with mode: 0644]
net/adblock/files/adblock.whitelist [new file with mode: 0644]
net/adblock/files/samples/adblock.conf.sample [new file with mode: 0644]
net/adblock/files/samples/dhcp.config.sample [new file with mode: 0644]
net/adblock/files/samples/dnsmasq.conf.sample [new file with mode: 0644]
net/adblock/files/samples/firewall.user.sample [new file with mode: 0644]
net/adblock/files/samples/rc.local.sample [new file with mode: 0644]
net/adblock/files/samples/root.crontab.sample [new file with mode: 0644]
net/adblock/files/www/adblock/adblock.html [new file with mode: 0644]
net/adblock/files/www/adblock/adblock.png [new file with mode: 0644]
net/adblock/files/www/adblock/index.html [new file with mode: 0644]
net/aircrack-ng/Makefile
net/atftp/Makefile [new file with mode: 0644]
net/atftp/patches/01-missing-u_char-type-patch.patch [new file with mode: 0644]
net/atftp/patches/02-fix-invalid-read-in-tftp_send_request.patch [new file with mode: 0644]
net/bind/Makefile
net/bmon/Makefile
net/cgi-io/Makefile [new file with mode: 0644]
net/cgi-io/src/CMakeLists.txt [new file with mode: 0644]
net/cgi-io/src/main.c [new file with mode: 0644]
net/cgi-io/src/multipart_parser.c [new file with mode: 0644]
net/cgi-io/src/multipart_parser.h [new file with mode: 0644]
net/chaosvpn/Makefile [new file with mode: 0644]
net/chaosvpn/files/chaosvpn.hotplug [new file with mode: 0755]
net/chaosvpn/files/chaosvpn.init [new file with mode: 0755]
net/chrony/Makefile [new file with mode: 0644]
net/chrony/files/chrony.conf [new file with mode: 0644]
net/chrony/files/chrony.config [new file with mode: 0644]
net/chrony/files/chrony.hotplug [new file with mode: 0644]
net/chrony/files/chronyd.init [new file with mode: 0644]
net/chrony/patches/001-freebind_uclibc.patch [new file with mode: 0644]
net/coova-chilli/patches/400-fix-compile-with-musl.patch [new file with mode: 0644]
net/ddns-scripts/Makefile
net/ddns-scripts/files/ddns.config
net/ddns-scripts/files/dynamic_dns_functions.sh
net/ddns-scripts/files/dynamic_dns_lucihelper.sh
net/ddns-scripts/files/dynamic_dns_updater.sh [changed mode: 0644->0755]
net/ddns-scripts/files/services
net/ddns-scripts/files/services_ipv6
net/ddns-scripts/files/tld_names.dat
net/ddns-scripts/samples/ddns.config_sample
net/ddns-scripts/samples/update_sample.sh
net/e2guardian/Makefile
net/ethtool/Makefile
net/fossil/Makefile [new file with mode: 0644]
net/fossil/files/fossil.config [new file with mode: 0644]
net/fossil/files/fossil.init [new file with mode: 0644]
net/fossil/patches/001-no_https.patch [new file with mode: 0644]
net/freeradius2/files/radiusd.init
net/fwknop/Makefile
net/fwknop/files/fwknopd.init
net/git/Makefile
net/git/patches/100-convert_builtin.patch
net/git/patches/300-configure_for_crosscompiling
net/git/patches/400-imapsend_without_curl.patch
net/gnunet/Makefile
net/haproxy/Makefile
net/haproxy/patches/0005-BUG-MINOR-http-sample-gmtime-localtime-can-fail.patch [new file with mode: 0644]
net/haproxy/patches/0006-DOC-typo-in-redirect-302-code-meaning.patch [new file with mode: 0644]
net/haproxy/patches/0007-DOC-mention-that-ms-is-left-padded-with-zeroes.patch [new file with mode: 0644]
net/haproxy/patches/0008-CLEANUP-.gitignore-ignore-more-test-files.patch [new file with mode: 0644]
net/haproxy/patches/0009-CLEANUP-.gitignore-finally-ignore-everything-but-wha.patch [new file with mode: 0644]
net/haproxy/patches/0010-MEDIUM-config-emit-a-warning-on-a-frontend-without-l.patch [new file with mode: 0644]
net/haproxy/patches/0011-BUG-MEDIUM-counters-ensure-that-src_-inc-clr-_gpc0-c.patch [new file with mode: 0644]
net/haproxy/patches/0012-DOC-ssl-missing-LF.patch [new file with mode: 0644]
net/haproxy/patches/0013-DOC-fix-example-of-http-request-using-ssl_fc_session.patch [new file with mode: 0644]
net/haproxy/patches/0014-BUG-MINOR-http-remove-stupid-HTTP_METH_NONE-entry.patch [new file with mode: 0644]
net/haproxy/patches/0015-BUG-MAJOR-http-don-t-call-http_send_name_header-afte.patch [new file with mode: 0644]
net/haproxy/patches/0016-BUG-MINOR-tools-make-str2sa_range-report-unresolvabl.patch [new file with mode: 0644]
net/htpdate/Makefile [new file with mode: 0644]
net/htpdate/files/htpdate.default [new file with mode: 0644]
net/htpdate/files/htpdate.init [new file with mode: 0644]
net/htpdate/patches/100-adjtimex.patch [new file with mode: 0644]
net/iotivity/Makefile
net/iotivity/patches/001-no_unit_test.patch
net/iotivity/patches/004-use-env.patch
net/iotivity/patches/010-big-endian.patch [new file with mode: 0644]
net/iotivity/patches/010-libcoap-fix-big-endian-problems.patch [deleted file]
net/iotivity/patches/011-cdsk-fix-big-endian-problem.patch [deleted file]
net/iotivity/patches/011-musl-use-inttypes.patch [new file with mode: 0644]
net/iotivity/patches/012-connectivity-fix-getnameinfo-call-for-musl-libc.patch [new file with mode: 0644]
net/iotivity/patches/030-fix-missing-lib.patch [deleted file]
net/iotivity/patches/030-remove-check-for-curl.patch [new file with mode: 0644]
net/iotivity/patches/040-fix-things-manager.patch [deleted file]
net/iotivity/patches/050-fix-OICMidle.patch [deleted file]
net/iotivity/patches/140-remove-glib2.patch [new file with mode: 0644]
net/iotivity/patches/200-examples-OICMiddle-try-to-load-security-configuratio.patch [new file with mode: 0644]
net/keepalived/Makefile
net/knot/Makefile
net/krb5/Makefile
net/lighttpd/Makefile
net/lighttpd/patches/001-fix-out-of-filedescriptors-when-uploading-large-file.patch [deleted file]
net/lispmob/Makefile
net/mac-telnet/Makefile
net/mdnsresponder/Makefile
net/mdnsresponder/patches/100-linux_fixes.patch
net/mosquitto/Makefile
net/mosquitto/patches/001-free-counting-bug-475707.patch [deleted file]
net/mwan3-luci/Makefile
net/mwan3-luci/files/usr/lib/lua/luci/controller/mwan3.lua
net/mwan3-luci/files/usr/lib/lua/luci/view/mwan/openwrt_overview_status.htm
net/mwan3-luci/files/usr/lib/lua/luci/view/mwan/overview_interface.htm
net/mwan3/Makefile
net/mwan3/files/etc/config/mwan3
net/mwan3/files/etc/hotplug.d/iface/15-mwan3
net/mwan3/files/lib/mwan3/mwan3.sh [new file with mode: 0644]
net/mwan3/files/usr/sbin/mwan3
net/mwan3/files/usr/sbin/mwan3track
net/nbd/Makefile [new file with mode: 0644]
net/nbd/files/nbd-client.conf [new file with mode: 0644]
net/nbd/files/nbd-client.init [new file with mode: 0644]
net/nbd/files/nbd-server.conf [new file with mode: 0644]
net/nbd/files/nbd-server.init [new file with mode: 0644]
net/net-snmp/files/snmpd.init
net/netatalk/Makefile
net/nfs-kernel-server/Makefile
net/nginx/Config.in
net/nginx/Makefile
net/nginx/files/nginx.init
net/nginx/files/nginx.proxyprotocol.example [deleted file]
net/nginx/files/nginx.syslog.example [deleted file]
net/nginx/patches-lua-nginx/300-ldl.patch [deleted file]
net/nginx/patches-nginx-upstream-check/check_1.2.6+.patch [deleted file]
net/nginx/patches/100-musl-no-sysctl.patch [deleted file]
net/nginx/patches/101-feature_test_fix.patch
net/nginx/patches/300-crosscompile_ccflags.patch [deleted file]
net/nginx/patches/400-nginx-1.4.x_proxy_protocol_patch_v2.patch [deleted file]
net/nginx/patches/401-nginx-1.4.0-syslog.patch [deleted file]
net/nmap/Makefile
net/ntpd/Makefile
net/nut/Config.in
net/nut/Makefile
net/nut/files/nut.service [new file with mode: 0644]
net/ocserv/Makefile
net/ocserv/README
net/ocserv/files/ocserv-script [deleted file]
net/ocserv/files/ocserv.conf.template
net/ocserv/files/ocserv.init
net/ocserv/files/ocserv.upgrade
net/openvswitch/Makefile
net/openvswitch/patches/0005-add-wait-any-define-in-test-ovn.patch [deleted file]
net/openvswitch/patches/0005-datapath-Add-net-ip6_checksum.h-to-stt.c.patch [new file with mode: 0644]
net/openvswitch/patches/0006-force-kernel-4-1.patch [new file with mode: 0644]
net/openvswitch/patches/0007-add-netns-compat.patch [new file with mode: 0644]
net/openvswitch/patches/0008-add-back-old-gfp-this-node-define.patch [new file with mode: 0644]
net/openvswitch/patches/0010-patch-nf_ip_hook-4.1.patch [new file with mode: 0644]
net/openvswitch/patches/0011-fix-vxlan-xmit-skb-4.1.patch [new file with mode: 0644]
net/openvswitch/patches/0012-fix-vport-lisp-4.1.patch [new file with mode: 0644]
net/port-mirroring/Makefile [new file with mode: 0644]
net/pppossh/Makefile [new file with mode: 0644]
net/pppossh/README.md [new file with mode: 0644]
net/pppossh/files/pppossh.sh [new file with mode: 0644]
net/rsyslog/Makefile [new file with mode: 0644]
net/rsyslog/files/rsyslog.conf [new file with mode: 0644]
net/rsyslog/files/rsyslog.init [new file with mode: 0644]
net/rtorrent/Makefile
net/rtorrent/patches/100-fix-cross_compile.patch
net/scapy/Makefile [new file with mode: 0644]
net/seafile-ccnet/Makefile
net/seafile-ccnet/patches/010-libevent-include-path.patch [new file with mode: 0644]
net/seafile-server/Makefile
net/seafile-server/patches/060-libevent2-include-path.patch [new file with mode: 0644]
net/sqm-scripts/Makefile
net/squid/Makefile
net/strongswan/Makefile
net/strongswan/patches/305-minimal_dh_plugin.patch [new file with mode: 0644]
net/tgt/Makefile
net/tgt/patches/010-fallocate.patch [deleted file]
net/tgt/patches/020-usr_Makefile.patch
net/tgt/patches/100-musl-compat.patch
net/u2pnpd/Makefile [new file with mode: 0644]
net/u2pnpd/files/u2pnpd.config [new file with mode: 0644]
net/u2pnpd/files/u2pnpd.defaults [new file with mode: 0644]
net/u2pnpd/files/u2pnpd.init [new file with mode: 0644]
net/unbound/Makefile
net/vpnc/Makefile
net/vpnc/patches/100-musl-compat.patch
net/wifidog/Makefile
net/wifidog/patches/100-musl-compat.patch [deleted file]
net/xl2tpd/Makefile
sound/madplay/Makefile
sound/madplay/patches/0001-switch-to-new-alsa-api.patch [new file with mode: 0644]
sound/madplay/patches/010-use_correct_shell.patch [new file with mode: 0644]
sound/mpd/Makefile
sound/mpd/patches/100-musl_gcc5_fixes.patch [new file with mode: 0644]
sound/mpd/patches/210-support_raw_pcm_streams.patch
sound/mpd/patches/220-handle_slow_server_stream_startup.patch
sound/mpg123/Makefile
sound/pianod/Makefile
sound/pianod/patches/005-Fix_IPV6_socket_handling.patch [deleted file]
sound/pianod/patches/005-Remove_svn_version_query.patch [new file with mode: 0644]
sound/pianod/patches/020-Use_package_config_h_for_all_modules.patch
sound/pianod/patches/030-Waitress_add_polarssl_variant.patch
sound/pulseaudio/Makefile
sound/pulseaudio/files/pulseaudio.init
sound/pulseaudio/patches/002-xlocale.patch [new file with mode: 0644]
sound/shairplay/Makefile
sound/shairplay/patches/003-fix_big-endian.patch
sound/shairport-sync/Makefile
sound/shairport-sync/files/shairport-sync.config
sound/shairport-sync/files/shairport-sync.init [changed mode: 0755->0644]
sound/shine/patches/001-fix_mips64_bswap.patch [new file with mode: 0644]
utils/acl/Makefile
utils/acl/patches/100-no-gettext_configure.patch
utils/at/Makefile [new file with mode: 0644]
utils/at/files/atd.init [new file with mode: 0755]
utils/at/patches/100-remove-glibc-assumption.patch [new file with mode: 0644]
utils/at/patches/110-getloadavg.patch [new file with mode: 0644]
utils/attr/Makefile
utils/attr/patches/100-no-gettext_configure.patch
utils/bandwidthd/Makefile [new file with mode: 0644]
utils/bandwidthd/files/bandwidthd-pgsql.config [new file with mode: 0644]
utils/bandwidthd/files/bandwidthd-pgsql.init [new file with mode: 0644]
utils/bandwidthd/files/bandwidthd.config [new file with mode: 0644]
utils/bandwidthd/files/bandwidthd.init [new file with mode: 0644]
utils/bandwidthd/files/logo.gif [new file with mode: 0644]
utils/bandwidthd/patches/010-dont-add-host-paths.patch [new file with mode: 0644]
utils/bandwidthd/patches/100-fix_config_file_location [new file with mode: 0644]
utils/canutils/Makefile [new file with mode: 0644]
utils/collectd/Makefile
utils/collectd/files/collectd.conf
utils/collectd/patches/300-delay-first-read-cycle.patch [new file with mode: 0644]
utils/collectd/patches/500-upstream-parallel-build-fix.patch [new file with mode: 0644]
utils/dbus/Makefile
utils/dfu-programmer/Makefile [new file with mode: 0644]
utils/dmidecode/Makefile
utils/dump1090/Config.in [deleted file]
utils/dump1090/Makefile
utils/dump1090/files/dump1090.config
utils/dump1090/files/dump1090.init
utils/dump1090/patches/100-html_dir.patch [deleted file]
utils/flashrom/Config.in [deleted file]
utils/flashrom/Makefile
utils/flashrom/flashrom.mk
utils/gammu/Makefile
utils/gpsd/Makefile [new file with mode: 0644]
utils/gpsd/files/gpsd.config [new file with mode: 0644]
utils/gpsd/files/gpsd.hotplug [new file with mode: 0644]
utils/gpsd/files/gpsd.init [new file with mode: 0644]
utils/gpsd/patches/0001-Remove-a-BSD-ism.patch [new file with mode: 0644]
utils/grep/Makefile
utils/grep/patches/0001-grep-F-fix-a-heap-buffer-read-overrun.patch [deleted file]
utils/joe/Makefile
utils/lcd4linux/Makefile
utils/lcd4linux/patches/173-glcd2usb-bigendian-fix.patch [new file with mode: 0644]
utils/less/Makefile
utils/lvm2/Makefile
utils/lvm2/patches/002-const-stdio.patch
utils/lxc/Makefile
utils/lxc/patches/016-uninitialized-ret-in-monitor.patch [deleted file]
utils/lxc/patches/035-fix-undefined-lfd.patch [new file with mode: 0644]
utils/mbtools/Makefile [new file with mode: 0644]
utils/mbtools/patches/100-fix-unit-test-server-return-value.patch [new file with mode: 0644]
utils/mc/Config.in
utils/mc/Makefile
utils/mmc-utils/Makefile
utils/mmc-utils/patches/001-properly-set-fortify-source-in-makefile.patch
utils/open-plc-utils/Makefile
utils/open2300/Makefile [new file with mode: 0644]
utils/open2300/files/open2300.conf [new file with mode: 0644]
utils/open2300/patches/001-crosscompile.patch [new file with mode: 0644]
utils/openocd/Makefile
utils/owfs/Config.in [new file with mode: 0644]
utils/owfs/Makefile
utils/owfs/files/owfs.conf [new file with mode: 0644]
utils/owfs/files/owfs.init [new file with mode: 0644]
utils/owfs/files/owftpd.conf [new file with mode: 0644]
utils/owfs/files/owftpd.init [new file with mode: 0644]
utils/owfs/files/owhttpd.conf [new file with mode: 0644]
utils/owfs/files/owhttpd.init [new file with mode: 0644]
utils/owfs/files/owserver.conf [new file with mode: 0644]
utils/owfs/files/owserver.init [new file with mode: 0644]
utils/owfs/patches/100-fix-netlink-w1-status-message-detection.patch [new file with mode: 0644]
utils/owfs/patches/101-fix-no-reset-routine-segfault.patch [new file with mode: 0644]
utils/pciutils/Makefile
utils/pciutils/patches/105-fix-host.patch [new file with mode: 0644]
utils/procps-ng/Makefile [new file with mode: 0644]
utils/procps/Makefile [deleted file]
utils/procps/patches/010-make_fix.patch [deleted file]
utils/procps/patches/020_hz_fix.patch [deleted file]
utils/procps/patches/030-fix-string-problems.patch [deleted file]
utils/procps/patches/040-musl-compatibility.patch [deleted file]
utils/sane-backends/Makefile [new file with mode: 0644]
utils/sane-backends/files/xinet.d_sane-port [new file with mode: 0644]
utils/sane-backends/patches/002-remove-uneeded.patch [new file with mode: 0644]
utils/sane-backends/patches/020-fix_pieusb.patch [new file with mode: 0644]
utils/sane-backends/patches/030-musl.patch [new file with mode: 0644]
utils/sane-backends/patches/031-fix_uclibc.patch [new file with mode: 0644]
utils/sane-backends/patches/050-remove_linked_libs_for_unused_preload.patch [new file with mode: 0644]
utils/smstools3/Makefile
utils/spi-tools/Makefile [new file with mode: 0644]
utils/sumo/Makefile
utils/swig/Makefile [new file with mode: 0644]
utils/tmux/Makefile
utils/tmux/patches/100-b64_ntop-conflict.patch
utils/tracertools/Makefile
utils/unrar/Makefile
utils/unzip/Makefile
utils/unzip/patches/005-CVE-2015-7696-heap-overflow.patch [new file with mode: 0644]
utils/unzip/patches/006-CVE-2015-7697-infinite-loop.patch [new file with mode: 0644]
utils/unzip/patches/007-integer-underflow-csiz_decrypted.patch [new file with mode: 0644]
utils/xz/Makefile
utils/yunbridge/Makefile [new file with mode: 0644]
utils/yunbridge/files/etc/config/yunbridge [new file with mode: 0644]
utils/yunbridge/files/etc/init.d/yunbridge [new file with mode: 0755]
utils/yunbridge/files/sbin/yunbridge [new file with mode: 0755]
utils/yunbridge/files/usr/bin/pretty-wifi-info.lua [new file with mode: 0755]
utils/yunbridge/files/usr/lib/lua/luci/controller/arduino/index.lua [new file with mode: 0644]
utils/yunbridge/files/usr/lib/lua/luci/sha256.lua [new file with mode: 0644]
utils/yunbridge/patches/000-scripts.patch [new file with mode: 0644]
utils/zile/Makefile
utils/zile/patches/010-remove_gets_definition_warning.patch [new file with mode: 0644]
utils/zoneinfo/Makefile
utils/zsh/Makefile

index 629f221d4275f5976d0259cb30dca08bbc1f6021..8190d2ac7c796bfc6cab9c5431bf9ebbbc0b6eb4 100644 (file)
@@ -9,13 +9,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=debootstrap
-PKG_VERSION:=1.0.68
+PKG_VERSION:=1.0.72
 PKG_RELEASE:=1
 PKG_MAINTAINER=Daniel Golle <daniel@makrotopia.org>
 
 PKG_SOURCE:=$(PKG_NAME)-udeb_$(PKG_VERSION)_all.udeb
 PKG_SOURCE_URL:=http://ftp.debian.org/debian/pool/main/d/debootstrap
-PKG_MD5SUM:=b7e98013966e595ba50230f60efe7cbe
+PKG_MD5SUM:=49f24e3299352aa5453f725ec0d55566
 PKG_LICENSE:=Unique
 PKG_LICENSE_FILES:=debian/copyright
 
index 46fc8c4f89aced9621f26ddba8aa6dba8a10b35f..ef7e11d8d5c94cc65c41b43aaf869b81e9122dc8 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=muninlite
 PKG_VERSION:=1.0.4
-PKG_RELEASE:=6
+PKG_RELEASE:=8
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@SF/$(PKG_NAME)
diff --git a/admin/muninlite/patches/001-fix_disks.patch b/admin/muninlite/patches/001-fix_disks.patch
new file mode 100644 (file)
index 0000000..a2264a8
--- /dev/null
@@ -0,0 +1,10 @@
+--- a/plugins/df
++++ b/plugins/df
+@@ -19,6 +19,6 @@ fetch_df() {
+   do
+     PINFO=$(df -P $PART | tail -1);
+     PNAME=$(echo $PINFO | cut -d\  -f1 | sed 's/[\/.-]/_/g')
+-    echo "$PNAME.value" $(echo $PINFO | cut -f5 -d\  | sed -e 's/\%//g')
++    echo "$PNAME.value" $(echo $PINFO | sed -e 's/\%//g' -e 's/  */ /g' | cut -f5 -d' ')
+   done
+ }
diff --git a/admin/muninlite/patches/001-no_disks.patch b/admin/muninlite/patches/001-no_disks.patch
deleted file mode 100644 (file)
index bf9b2b1..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
---- a/Makefile
-+++ b/Makefile
-@@ -1,7 +1,7 @@
--PLUGINS=df cpu if_ if_err_ load memory processes swap netstat uptime interrupts irqstats ntpdate plugindir_
--#PLUGINS=cpu if_ if_err_ load memory processes netstat uptime interrupts irqstats
-+#PLUGINS=df cpu if_ if_err_ load memory processes swap netstat uptime interrupts irqstats ntpdate plugindir_
-+PLUGINS=cpu if_ if_err_ load memory processes netstat uptime interrupts irqstats
- munin-node: plugins/* munin-node.conf
-       @VERSION=$$(cat VERSION); \
index 95655cfbd8dbaf253f638c62d76637cdad46a826..6a2ba236fe82a747d1b280cac913fcc16d78d07c 100644 (file)
@@ -5,7 +5,7 @@
  }
  fetch_if() {
 -  IINFO=$(grep "$1:" /proc/net/dev | cut -d: -f2 | sed -e 's/  / /g')
-+  IINFO=$(cat /proc/net/dev | sed -e 's/-/_/g' | grep "$1:" | cut -d: -f2 | sed -e 's/  */ /g' -e 's/^[ \t]*//')
++  IINFO=$(grep "$1:" /proc/net/dev | cut -d: -f2 | sed -e 's/  */ /g' -e 's/^[ \t]*//')
    echo "down.value" $(echo $IINFO | cut -d\  -f1)
    echo "up.value" $(echo $IINFO | cut -d\  -f9)
  }
@@ -16,7 +16,7 @@
  }
  fetch_if_err() {
 -  IINFO=$(grep "$1:" /proc/net/dev | cut -d: -f2 | sed -e 's/  / /g')
-+  IINFO=$(cat /proc/net/dev | sed -e 's/-/_/g' | grep "$1:" | cut -d: -f2 | sed -e 's/  */ /g' -e 's/^[ \t]*//')
++  IINFO=$(grep "$1:" /proc/net/dev | cut -d: -f2 | sed -e 's/  */ /g' -e 's/^[ \t]*//')
    echo "rcvd.value" $(echo $IINFO | cut -d\  -f3)
    echo "trans.value" $(echo $IINFO | cut -d\  -f11)
  }
diff --git a/admin/muninlite/patches/230-fix-available-interface-parsing.patch b/admin/muninlite/patches/230-fix-available-interface-parsing.patch
new file mode 100644 (file)
index 0000000..2f227e5
--- /dev/null
@@ -0,0 +1,20 @@
+--- a/munin-node.in
++++ b/munin-node.in
+@@ -72,7 +72,7 @@ RES=""
+ for PLUG in $PLUGINS
+ do 
+   if [ "$PLUG" = "if_" ]; then  
+-    for INTER in $(grep '^ *\(ppp\|eth\|wlan\|ath\|ra\|ipsec\|tap\|br-\)\([^:]\)\{1,\}:' /proc/net/dev | cut -f1 -d: | sed 's/ //g');
++    for INTER in $(grep -E '^ *(ppp|eth|wlan|ath|ra|ipsec|tap|br-)[^:]{1,}:' /proc/net/dev | cut -f1 -d: | sed 's/ //g');
+     do
+       INTERRES=$(echo $INTER | sed -e 's/\./VLAN/' -e 's/\-/_/')
+       RES="$RES if_$INTERRES"
+@@ -80,7 +80,7 @@ do
+       eval "config_if_${INTERRES}() { config_if $INTER $@; };"
+     done
+   elif [ "$PLUG" = "if_err_" ]; then
+-    for INTER in $(grep '^ *\(ppp\|eth\|wlan\|ath\|ra\|ipsec\|tap\|br-\)\([^:]\)\{1,\}:' /proc/net/dev | cut -f1 -d: | sed 's/ //g');
++    for INTER in $(grep -E '^ *(ppp|eth|wlan|ath|ra|ipsec|tap|br-)[^:]{1,}:' /proc/net/dev | cut -f1 -d: | sed 's/ //g');
+     do
+       INTERRES=$(echo $INTER | sed -e 's/\./VLAN/' -e 's/\-/_/')
+       RES="$RES if_err_$INTERRES"
index 282db1a10982de9b285cb3ea40f235a26eb3155b..3f2d6f81aeee0466dc2570bcf3f430345156ab7b 100644 (file)
@@ -8,14 +8,14 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=sudo
-PKG_VERSION:=1.8.13
-PKG_RELEASE:=2
+PKG_VERSION:=1.8.14p3
+PKG_RELEASE:=1
 PKG_LICENSE:=ISC
 PKG_LICENSE_FILES:=doc/LICENSE
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://www.sudo.ws/sudo/dist
-PKG_MD5SUM:=f61577ec330ad1bd504c0e2eec6ea2d8
+PKG_SOURCE_URL:=http://www.sudo.ws/dist
+PKG_MD5SUM:=93dbd1e47c136179ff1b01494c1c0e75
 
 PKG_INSTALL:=1
 
diff --git a/admin/sudo/patches/030-musl-fix-missing-header.patch b/admin/sudo/patches/030-musl-fix-missing-header.patch
new file mode 100644 (file)
index 0000000..efb7d87
--- /dev/null
@@ -0,0 +1,12 @@
+diff -rupN sudo-1.8.14p3.orig/include/sudo_util.h sudo-1.8.14p3/include/sudo_util.h
+--- sudo-1.8.14p3.orig/include/sudo_util.h     2015-07-22 14:22:49.000000000 +0200
++++ sudo-1.8.14p3/include/sudo_util.h  2015-08-30 18:41:24.509814946 +0200
+@@ -23,6 +23,8 @@
+ # include "compat/stdbool.h"
+ #endif /* HAVE_STDBOOL_H */
++#include <sys/types.h>
++
+ /*
+  * Macros for operating on struct timeval.
+  */
index 098f3e3414efac3d427b761a021a51f30dadee8c..424779ef987c6f552510fb41923ea6dde4675a9b 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=zabbix
 PKG_VERSION:=2.4.6
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@SF/zabbix
@@ -107,6 +107,7 @@ CONFIGURE_ARGS+= \
        --enable-agent \
        --enable-server \
        --enable-proxy \
+       $(call autoconf_bool,CONFIG_IPV6,ipv6) \
        --disable-java \
        --with-sqlite3="$(STAGING_DIR)/usr"
 
index dae693839d27ac30acb6fae95b366f52e6eb5500..4b81e10df8670160fee22b180a9a043255207d72 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=aiccu
 PKG_VERSION:=20070115
-PKG_RELEASE:=14
+PKG_RELEASE:=16
 
 PKG_SOURCE:=$(PKG_NAME)_$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.sixxs.net/archive/sixxs/aiccu/unix
@@ -17,28 +17,37 @@ PKG_MD5SUM:=c9bcc83644ed788e22a7c3f3d4021350
 PKG_LICENSE:=BSD-3-Clause
 PKG_LICENSE_FILES:=doc/LICENSE
 
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)
 
 include $(INCLUDE_DIR)/package.mk
 
-define Package/aiccu
+define Package/aiccu/Default
+  TITLE:=SixXS IPv6 Connectivity Client ($(1))
   SECTION:=net
   CATEGORY:=Network
-  DEPENDS:=+libpthread +ip +kmod-sit +kmod-tun
-  TITLE:=SixXS Automatic IPv6 Connectivity Client Utility
+  VARIANT:=$(2)
+  DEPENDS:=+libpthread +ip +kmod-sit +kmod-tun $(3)
   URL:=http://www.sixxs.net/tools/aiccu/
   MAINTAINER:=Ondrej Caletka <ondrej@caletka.cz>
 endef
 
+Package/aiccu=$(call Package/aiccu/Default,without GNUTLS support,default)
+Package/aiccu-gnutls=$(call Package/aiccu/Default,with GNUTLS support,gnutls,+libgnutls)
+
 define Build/Configure
        $(SED) "s,strip,/bin/true," $(PKG_BUILD_DIR)/unix-console/Makefile
 endef
 
+ifeq ($(BUILD_VARIANT),gnutls)
+CONFIG_AICCU_GNUTLS:=y
+endif
+
 define Build/Compile
        $(MAKE) -C $(PKG_BUILD_DIR) \
                CC="$(TARGET_CC)" OS_NAME="Linux" OS_VERSION="$(LINUX_VERSION)" \
                EXTRA_CFLAGS="$(TARGET_CFLAGS)" \
                EXTRA_LDFLAGS="$(TARGET_LDFLAGS) -pthread" \
+               $(if $(CONFIG_AICCU_GNUTLS),HAVE_GNUTLS=1) \
                DEBUG=0
 endef
 
@@ -46,6 +55,8 @@ define Package/aiccu/conffiles
 /etc/config/aiccu
 endef
 
+Package/aiccu-gnutls/conffiles=$(call Package/aiccu/conffiles)
+
 define Package/aiccu/install
        $(INSTALL_DIR) $(1)/usr/sbin $(1)/lib/netifd/proto $(1)/etc/hotplug.d/ntp
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/unix-console/$(PKG_NAME) $(1)/usr/sbin/
@@ -53,4 +64,7 @@ define Package/aiccu/install
        $(INSTALL_DATA) ./files/aiccu.hotplug $(1)/etc/hotplug.d/ntp/10-aiccu
 endef
 
+Package/aiccu-gnutls/install=$(call Package/aiccu/install,$(1))
+
 $(eval $(call BuildPackage,aiccu))
+$(eval $(call BuildPackage,aiccu-gnutls))
diff --git a/ipv6/aiccu/patches/500-gnutls_3.4.patch b/ipv6/aiccu/patches/500-gnutls_3.4.patch
new file mode 100644 (file)
index 0000000..a314784
--- /dev/null
@@ -0,0 +1,22 @@
+--- aiccu/common/common.c
++++ aiccu/common/common.c
+@@ -271,8 +271,6 @@
+ TLSSOCKET sock_alloc(void)
+ {
+ #ifdef AICCU_GNUTLS
+-      /* Allow connections to servers that have OpenPGP keys as well */
+-      const int       cert_type_priority[3] = { GNUTLS_CRT_X509, GNUTLS_CRT_OPENPGP, 0 };
+       int             ret;
+ #endif /* AICCU_GNUTLS*/
+@@ -300,7 +298,8 @@
+       gnutls_set_default_priority(sock->session);
+       /* XXX: Return value is not documented in GNUTLS documentation! */
+-      gnutls_certificate_type_set_priority(sock->session, cert_type_priority);
++      /* Allow connections to servers that have OpenPGP keys as well */
++      gnutls_priority_set_direct(sock->session, "NORMAL:+CTYPE-OPENPGP", NULL);
+       /* XXX: Return value is not documented in GNUTLS documentation! */
+       /* Configure the x509 credentials for the current session */
+
index ba0d196c1d961c13b387f38d44a67d917ea1212b..d68a271d279e7a5b01cf86c6d3d5f4052795562f 100644 (file)
@@ -19,7 +19,7 @@ include $(INCLUDE_DIR)/package.mk
 define Package/tayga
   SECTION:=net
   CATEGORY:=Network
-  DEPENDS:=+ip +kmod-ipv6 +kmod-tun
+  DEPENDS:=+ip @IPV6 +kmod-tun
   TITLE:=Out-of-kernel stateless NAT64 implementation for Linux
   URL:=http://www.litech.org/tayga/
   MAINTAINER:=Ondrej Caletka <ondrej@caletka.cz>
index 232ddeef8879c807275a7f7fb202e9b7c1b6d59f..bae51532de7fdb01c7fb81b9d71dfe7c0a82e1a6 100644 (file)
@@ -9,14 +9,14 @@ include $(TOPDIR)/rules.mk
 include $(INCLUDE_DIR)/kernel.mk
 
 PKG_NAME:=exfat-nofuse
-PKG_VERSION:=git-20150301
+PKG_VERSION:=git-20150828
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://github.com/dorimanx/exfat-nofuse.git
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=63964d3fb69cffe9a38822a657bb3b3279eebadf
+PKG_SOURCE_VERSION:=0ead00404360b944652335331a2e1a50948f4cb9
 
 PKG_MAINTAINER:=Bruno Randolf <br1@einfach.org>
 PKG_LICENSE:=GPL-2.0
diff --git a/lang/node-arduino-firmata/Makefile b/lang/node-arduino-firmata/Makefile
new file mode 100644 (file)
index 0000000..aced070
--- /dev/null
@@ -0,0 +1,67 @@
+#
+# Copyright (C) 2014 Arduino LLC
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NPM_NAME:=arduino-firmata
+PKG_NAME:=node-$(PKG_NPM_NAME)
+PKG_VERSION:=0.3.3
+PKG_RELEASE:=1
+
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL:=https://github.com/shokai/node-arduino-firmata.git
+PKG_SOURCE_VERSION:=16e76007edf218d72df590adbd711ac6b7432845
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_SOURCE_VERSION)
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.gz
+
+PKG_BUILD_DEPENDS:=node
+PKG_NODE_VERSION:=0.12.7
+
+PKG_MAINTAINER:=John Crispin <blogic@openwrt.org>
+PKG_LICENSE:=MIT
+PKG_LICENSE_FILE:=LICENSE.txt
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/node-arduino-firmata
+  DEPENDS:=+node
+  SUBMENU:=Node.js
+  SECTION:=lang
+  CATEGORY:=Languages
+  DEPENDS:=+node +node-serialport
+  TITLE:=Node.js package to access serial ports for reading and writing
+  URL:=https://www.npmjs.org/package/serialport
+endef
+
+define Package/node-arduino-firmata/description
+ Node.js package to access serial ports for reading and writing OR Welcome your robotic JavaScript overlords. Better yet, program them!
+endef
+
+define Build/Prepare
+       /bin/tar xzf $(DL_DIR)/$(PKG_SOURCE) -C $(PKG_BUILD_DIR) --strip-components 1
+       $(Build/Patch)
+endef
+
+EXTRA_LDFLAGS="-L$(TOOLCHAIN_DIR)/lib/ -Wl,-rpath-link $(TOOLCHAIN_DIR)/lib/" \
+
+define Build/Compile
+       $(MAKE_FLAGS) \
+       npm_config_arch=$(CONFIG_ARCH) \
+       npm_config_nodedir=$(BUILD_DIR)/node-v$(PKG_NODE_VERSION)/ \
+       PREFIX="$(PKG_INSTALL_DIR)/usr/" \
+       $(STAGING_DIR_HOST)/bin/npm install -g $(PKG_BUILD_DIR)
+endef
+
+define Package/node-arduino-firmata/install
+       mkdir -p $(1)/usr/lib/node
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/node_modules/* $(1)/usr/lib/node
+       rm -rf $(1)/usr/lib/node/arduino-firmata/node_modules/serialport/ 
+       $(CP) -r ./files/* $(1)/
+endef
+
+$(eval $(call BuildPackage,node-arduino-firmata))
+
diff --git a/lang/node-arduino-firmata/files/usr/lib/node/arduino-firmata/lib/arduino-firmata.js b/lang/node-arduino-firmata/files/usr/lib/node/arduino-firmata/lib/arduino-firmata.js
new file mode 100644 (file)
index 0000000..578bd40
--- /dev/null
@@ -0,0 +1,306 @@
+(function() {
+  'use strict';
+  var ArduinoFirmata, SerialPort, debug, events, exports, serialport,
+    extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
+    hasProp = {}.hasOwnProperty;
+
+  events = require('eventemitter2');
+
+  SerialPort = (serialport = require('serialport')).SerialPort;
+
+  debug = require('debug')('arduino-firmata');
+
+  exports = module.exports = ArduinoFirmata = (function(superClass) {
+    extend(ArduinoFirmata, superClass);
+
+    ArduinoFirmata.Status = {
+      CLOSE: 0,
+      OPEN: 1
+    };
+
+    ArduinoFirmata.INPUT = 0;
+
+    ArduinoFirmata.OUTPUT = 1;
+
+    ArduinoFirmata.ANALOG = 2;
+
+    ArduinoFirmata.PWM = 3;
+
+    ArduinoFirmata.SERVO = 4;
+
+    ArduinoFirmata.SHIFT = 5;
+
+    ArduinoFirmata.I2C = 6;
+
+    ArduinoFirmata.LOW = 0;
+
+    ArduinoFirmata.HIGH = 1;
+
+    ArduinoFirmata.MAX_DATA_BYTES = 32;
+
+    ArduinoFirmata.DIGITAL_MESSAGE = 0x90;
+
+    ArduinoFirmata.ANALOG_MESSAGE = 0xE0;
+
+    ArduinoFirmata.REPORT_ANALOG = 0xC0;
+
+    ArduinoFirmata.REPORT_DIGITAL = 0xD0;
+
+    ArduinoFirmata.SET_PIN_MODE = 0xF4;
+
+    ArduinoFirmata.REPORT_VERSION = 0xF9;
+
+    ArduinoFirmata.SYSTEM_RESET = 0xFF;
+
+    ArduinoFirmata.START_SYSEX = 0xF0;
+
+    ArduinoFirmata.END_SYSEX = 0xF7;
+
+    ArduinoFirmata.list = function(callback) {
+      return serialport.list(function(err, ports) {
+        var devices, j, len, port;
+        if (err) {
+          return callback(err);
+        }
+        devices = [];
+        for (j = 0, len = ports.length; j < len; j++) {
+          port = ports[j];
+          if (/usb|acm|com\d+/i.test(port.comName)) {
+            devices.push(port.comName);
+          }
+        }
+        return callback(null, devices);
+      });
+    };
+
+    function ArduinoFirmata() {
+      this.status = ArduinoFirmata.Status.CLOSE;
+      this.wait_for_data = 0;
+      this.execute_multi_byte_command = 0;
+      this.multi_byte_channel = 0;
+      this.stored_input_data = [];
+      this.parsing_sysex = false;
+      this.sysex_bytes_read = 0;
+      this.digital_output_data = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
+      this.digital_input_data = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
+      this.analog_input_data = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
+      this.boardVersion = null;
+    }
+
+    ArduinoFirmata.prototype.isOldArduinoDevice = function() {
+      return /usbserial|USB/.test(this.serialport_name);
+    };
+
+    ArduinoFirmata.prototype.connect = function(serialport_name, opts) {
+      this.serialport_name = serialport_name;
+      if (opts == null) {
+        opts = {
+          baudrate: 57600
+        };
+      }
+      opts.parser = serialport.parsers.raw;
+      if (!this.serialport_name) {
+        ArduinoFirmata.list((function(_this) {
+          return function(err, devices) {
+            return _this.connect(devices[0], opts);
+          };
+        })(this));
+        return this;
+      }
+      this.once('boardReady', function() {
+        var io_init_wait;
+        debug('boardReady');
+        io_init_wait = this.isOldArduinoDevice() ? (debug("old arduino device found " + this.serialport_name), 3000) : (debug("new arduino device found " + this.serialport_name), 100);
+        debug("wait " + io_init_wait + "(msec)");
+        return setTimeout((function(_this) {
+          return function() {
+            var i, j, k;
+            for (i = j = 0; j < 6; i = ++j) {
+              _this.write([ArduinoFirmata.REPORT_ANALOG | i, 1]);
+            }
+            for (i = k = 0; k < 2; i = ++k) {
+              _this.write([ArduinoFirmata.REPORT_DIGITAL | i, 1]);
+            }
+            debug('init IO ports');
+            return _this.emit('connect');
+          };
+        })(this), io_init_wait);
+      });
+      this.serialport = new SerialPort(this.serialport_name, opts);
+      this.serialport.once('open', (function(_this) {
+        return function() {
+          var cid;
+          cid = setInterval(function() {
+            debug('request REPORT_VERSION');
+            return _this.write([ArduinoFirmata.REPORT_VERSION]);
+          }, 500);
+          _this.once('boardVersion', function(version) {
+            clearInterval(cid);
+            _this.status = ArduinoFirmata.Status.OPEN;
+            return _this.emit('boardReady');
+          });
+          return _this.serialport.on('data', function(data) {
+            var byte, j, len, results;
+            results = [];
+            for (j = 0, len = data.length; j < len; j++) {
+              byte = data[j];
+              results.push(_this.process_input(byte));
+            }
+            return results;
+          });
+        };
+      })(this));
+      return this;
+    };
+
+    ArduinoFirmata.prototype.isOpen = function() {
+      return this.status === ArduinoFirmata.Status.OPEN;
+    };
+
+    ArduinoFirmata.prototype.close = function(callback) {
+      this.status = ArduinoFirmata.Status.CLOSE;
+      return this.serialport.close(callback);
+    };
+
+    ArduinoFirmata.prototype.reset = function(callback) {
+      return this.write([ArduinoFirmata.SYSTEM_RESET], callback);
+    };
+
+    ArduinoFirmata.prototype.write = function(bytes, callback) {
+      return this.serialport.write(bytes, callback);
+    };
+
+    ArduinoFirmata.prototype.sysex = function(command, data, callback) {
+      var write_data;
+      if (data == null) {
+        data = [];
+      }
+      data = data.map(function(i) {
+        return i & 0x7f;
+      });
+      write_data = [ArduinoFirmata.START_SYSEX, command].concat(data, [ArduinoFirmata.END_SYSEX]);
+      return this.write(write_data, callback);
+    };
+
+    ArduinoFirmata.prototype.pinMode = function(pin, mode, callback) {
+      switch (mode) {
+        case true:
+          mode = ArduinoFirmata.OUTPUT;
+          break;
+        case false:
+          mode = ArduinoFirmata.INPUT;
+      }
+      return this.write([ArduinoFirmata.SET_PIN_MODE, pin, mode], callback);
+    };
+
+    ArduinoFirmata.prototype.digitalWrite = function(pin, value, callback) {
+      var port_num;
+      this.pinMode(pin, ArduinoFirmata.OUTPUT);
+      port_num = (pin >>> 3) & 0x0F;
+      if (value === 0 || value === false) {
+        this.digital_output_data[port_num] &= ~(1 << (pin & 0x07));
+      } else {
+        this.digital_output_data[port_num] |= 1 << (pin & 0x07);
+      }
+      return this.write([ArduinoFirmata.DIGITAL_MESSAGE | port_num, this.digital_output_data[port_num] & 0x7F, this.digital_output_data[port_num] >>> 7], callback);
+    };
+
+    ArduinoFirmata.prototype.analogWrite = function(pin, value, callback) {
+      value = Math.floor(value);
+      this.pinMode(pin, ArduinoFirmata.PWM);
+      return this.write([ArduinoFirmata.ANALOG_MESSAGE | (pin & 0x0F), value & 0x7F, value >>> 7], callback);
+    };
+
+    ArduinoFirmata.prototype.servoWrite = function(pin, angle, callback) {
+      this.pinMode(pin, ArduinoFirmata.SERVO);
+      return this.write([ArduinoFirmata.ANALOG_MESSAGE | (pin & 0x0F), angle & 0x7F, angle >>> 7], callback);
+    };
+
+    ArduinoFirmata.prototype.digitalRead = function(pin) {
+      return ((this.digital_input_data[pin >>> 3] >>> (pin & 0x07)) & 0x01) > 0;
+    };
+
+    ArduinoFirmata.prototype.analogRead = function(pin) {
+      return this.analog_input_data[pin];
+    };
+
+    ArduinoFirmata.prototype.process_input = function(input_data) {
+      var analog_value, command, diff, i, j, old_analog_value, results, stat, sysex_command, sysex_data;
+      if (this.parsing_sysex) {
+        if (input_data === ArduinoFirmata.END_SYSEX) {
+          this.parsing_sysex = false;
+          sysex_command = this.stored_input_data[0];
+          sysex_data = this.stored_input_data.slice(1, this.sysex_bytes_read);
+          return this.emit('sysex', {
+            command: sysex_command,
+            data: sysex_data
+          });
+        } else {
+          this.stored_input_data[this.sysex_bytes_read] = input_data;
+          return this.sysex_bytes_read += 1;
+        }
+      } else if (this.wait_for_data > 0 && input_data < 128) {
+        this.wait_for_data -= 1;
+        this.stored_input_data[this.wait_for_data] = input_data;
+        if (this.execute_multi_byte_command !== 0 && this.wait_for_data === 0) {
+          switch (this.execute_multi_byte_command) {
+            case ArduinoFirmata.DIGITAL_MESSAGE:
+              input_data = (this.stored_input_data[0] << 7) + this.stored_input_data[1];
+              diff = this.digital_input_data[this.multi_byte_channel] ^ input_data;
+              this.digital_input_data[this.multi_byte_channel] = input_data;
+              if (this.listeners('digitalChange').length > 0) {
+                results = [];
+                for (i = j = 0; j <= 13; i = ++j) {
+                  if (((0x01 << i) & diff) > 0) {
+                    stat = (input_data & diff) > 0;
+                    results.push(this.emit('digitalChange', {
+                      pin: i + this.multi_byte_channel * 8,
+                      value: stat,
+                      old_value: !stat
+                    }));
+                  } else {
+                    results.push(void 0);
+                  }
+                }
+                return results;
+              }
+              break;
+            case ArduinoFirmata.ANALOG_MESSAGE:
+              analog_value = (this.stored_input_data[0] << 7) + this.stored_input_data[1];
+              old_analog_value = this.analogRead(this.multi_byte_channel);
+              this.analog_input_data[this.multi_byte_channel] = analog_value;
+              if (old_analog_value !== analog_value) {
+                return this.emit('analogChange', {
+                  pin: this.multi_byte_channel,
+                  value: analog_value,
+                  old_value: old_analog_value
+                });
+              }
+              break;
+            case ArduinoFirmata.REPORT_VERSION:
+              this.boardVersion = this.stored_input_data[1] + "." + this.stored_input_data[0];
+              return this.emit('boardVersion', this.boardVersion);
+          }
+        }
+      } else {
+        if (input_data < 0xF0) {
+          command = input_data & 0xF0;
+          this.multi_byte_channel = input_data & 0x0F;
+        } else {
+          command = input_data;
+        }
+        if (command === ArduinoFirmata.START_SYSEX) {
+          this.parsing_sysex = true;
+          return this.sysex_bytes_read = 0;
+        } else if (command === ArduinoFirmata.DIGITAL_MESSAGE || command === ArduinoFirmata.ANALOG_MESSAGE || command === ArduinoFirmata.REPORT_VERSION) {
+          this.wait_for_data = 2;
+          return this.execute_multi_byte_command = command;
+        }
+      }
+    };
+
+    return ArduinoFirmata;
+
+  })(events.EventEmitter2);
+
+}).call(this);
diff --git a/lang/node-arduino-firmata/patches/000-new-serialport.patch b/lang/node-arduino-firmata/patches/000-new-serialport.patch
new file mode 100644 (file)
index 0000000..10eab64
--- /dev/null
@@ -0,0 +1,10 @@
+--- a/package.json
++++ b/package.json
+@@ -30,7 +30,6 @@
+   "author": "Sho Hashimoto <hashimoto@shokai.org>",
+   "license": "MIT",
+   "dependencies": {
+-    "serialport": "*",
+     "eventemitter2": "*",
+     "debug": "*"
+   },
diff --git a/lang/node-cylon/Makefile b/lang/node-cylon/Makefile
new file mode 100644 (file)
index 0000000..753ae23
--- /dev/null
@@ -0,0 +1,98 @@
+#
+# Copyright (C) 2014 Arduino LLC
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NPM_NAME:=cylon
+PKG_NAME:=node-$(PKG_NPM_NAME)
+PKG_VERSION:=0.22.0
+PKG_RELEASE:=1
+
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL:=https://github.com/hybridgroup/cylon-firmata.git
+PKG_SOURCE_VERSION:=0c37da77e48b3e2cc3a8d566822a17689de91b40
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_SOURCE_VERSION)
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.gz
+
+PKG_BUILD_DEPENDS:=node
+PKG_NODE_VERSION:=0.12.7
+
+PKG_MAINTAINER:=John Crispin <blogic@openwrt.org>
+PKG_LICENSE:=Apache-2.0
+PKG_LICENSE_FILE:=LICENSE
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/node-cylon/default
+  DEPENDS:=+node $(2)
+  SUBMENU:=Node.js
+  SECTION:=lang
+  CATEGORY:=Languages
+  TITLE:=CylonJS - $(1)
+  URL:=https://www.npmjs.org/package/cylon
+endef
+
+define Package/node-cylon
+  $(call Package/node-cylon/default,Core)
+endef
+
+define Package/node-cylon-i2c
+  $(call Package/node-cylon/default,I2C,+node-cylon)
+endef
+
+define Package/node-cylon-gpio
+  $(call Package/node-cylon/default,GPIO,+node-cylon)
+endef
+
+define Package/node-cylon-firmata
+  $(call Package/node-cylon/default,Firmata,+node-cylon-gpio +node-cylon-i2c +node-arduino-firmata)
+endef
+
+define Package/node-cylon/description
+       JavaScript Robotics, By Your Command Next generation robotics framework with support for 36 different platforms Get Started
+endef
+
+define Build/Prepare
+       /bin/tar xzf $(DL_DIR)/$(PKG_SOURCE) -C $(PKG_BUILD_DIR) --strip-components 1
+       $(Build/Patch)
+endef
+
+EXTRA_LDFLAGS="-L$(TOOLCHAIN_DIR)/lib/ -Wl,-rpath-link $(TOOLCHAIN_DIR)/lib/" \
+
+define Build/Compile
+       $(MAKE_FLAGS) \
+       npm_config_arch=$(CONFIG_ARCH) \
+       npm_config_nodedir=$(BUILD_DIR)/node-v$(PKG_NODE_VERSION)/ \
+       PREFIX="$(PKG_INSTALL_DIR)/usr/" \
+       $(STAGING_DIR_HOST)/bin/npm install -g $(PKG_BUILD_DIR)
+endef
+
+define Package/node-cylon/install
+       mkdir -p $(1)/usr/lib/node/cylon
+       $(CP) -r $(PKG_INSTALL_DIR)/usr/lib/node_modules/cylon-firmata/node_modules/cylon/* $(1)/usr/lib/node/cylon/
+endef
+
+define Package/node-cylon-i2c/install
+       mkdir -p $(1)/usr/lib/node/cylon-i2c
+       $(CP) -r $(PKG_INSTALL_DIR)/usr/lib/node_modules/cylon-firmata/node_modules/cylon-i2c/* $(1)/usr/lib/node/cylon-i2c/
+endef
+
+define Package/node-cylon-gpio/install
+       mkdir -p $(1)/usr/lib/node/cylon-gpio
+       $(CP) -r $(PKG_INSTALL_DIR)/usr/lib/node_modules/cylon-firmata/node_modules/cylon-gpio/* $(1)/usr/lib/node/cylon-gpio/
+endef
+
+define Package/node-cylon-firmata/install
+       mkdir -p $(1)/usr/lib/node/cylon-firmata
+       $(CP) -r $(PKG_INSTALL_DIR)/usr/lib/node_modules/cylon-firmata/{index.js,lib,LICENSE,package.json,README.md,RELEASES.md,spec} $(1)/usr/lib/node/cylon-firmata/
+endef
+
+$(eval $(call BuildPackage,node-cylon))
+$(eval $(call BuildPackage,node-cylon-i2c))
+$(eval $(call BuildPackage,node-cylon-gpio))
+$(eval $(call BuildPackage,node-cylon-firmata))
+
diff --git a/lang/node-cylon/patches/0001-serialport.patch b/lang/node-cylon/patches/0001-serialport.patch
new file mode 100644 (file)
index 0000000..08d579c
--- /dev/null
@@ -0,0 +1,12 @@
+Index: node-cylon-0.22.0/package.json
+===================================================================
+--- node-cylon-0.22.0.orig/package.json        2015-10-20 20:32:48.000000000 +0200
++++ node-cylon-0.22.0/package.json     2015-10-21 10:42:20.616109122 +0200
+@@ -38,7 +38,6 @@
+   },
+   "dependencies": {
+-    "firmata":    ">= 0.3.2",
+     "cylon":      "1.1.0",
+     "cylon-gpio": "0.26.0",
+     "cylon-i2c":  "0.22.0"
diff --git a/lang/node-hid/Makefile b/lang/node-hid/Makefile
new file mode 100644 (file)
index 0000000..911e2a4
--- /dev/null
@@ -0,0 +1,62 @@
+#
+# Copyright (C) 2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NPM_NAME:=hid
+PKG_NAME:=node-$(PKG_NPM_NAME)
+PKG_VERSION:=0.4.0
+PKG_RELEASE:=1
+
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL:=https://github.com/node-hid/node-hid.git
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
+PKG_SOURCE_VERSION:=c56c8aa5d113c6f2574d1f7e64d41745702965bb
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
+
+PKG_BUILD_DEPENDS:=node
+PKG_NODE_VERSION:=0.12.7
+
+PKG_MAINTAINER:=John Crispin <blogic@openwrt.org>
+PKG_LICENSE:=Custom
+PKG_LICENSE_FILE:=
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/node-hid
+  DEPENDS:=+node
+  SUBMENU:=Node.js
+  SECTION:=lang
+  CATEGORY:=Languages
+  DEPENDS:=+libusb-1.0 +hidapi +libstdcpp
+  TITLE:=Node.js package to access HID devices
+  URL:=https://github.com/node-hid/node-hid
+endef
+
+define Package/node-hid/description
+ Node.js package to access HID devices
+endef
+
+EXTRA_LDFLAGS+="-lhidapi-libusb"
+EXTRA_CFLAGS+="-I$(STAGING_DIR)/usr/include/hidapi/"
+
+define Build/Compile
+       $(MAKE_VARS) \
+       $(MAKE_FLAGS) \
+       npm_config_arch=$(CONFIG_ARCH) \
+       npm_config_nodedir=$(BUILD_DIR)/node-v$(PKG_NODE_VERSION)/ \
+       PREFIX="$(PKG_INSTALL_DIR)/usr/" \
+       $(STAGING_DIR_HOST)/bin/npm install -g $(PKG_BUILD_DIR)
+endef
+
+define Package/node-hid/install
+       mkdir -p $(1)/usr/lib/node/node-hid/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/node_modules/node-hid/{index.js,package.json,build,node_modules} $(1)/usr/lib/node/node-hid/
+endef
+
+$(eval $(call BuildPackage,node-hid))
+
diff --git a/lang/node-hid/patches/000-compile.patch b/lang/node-hid/patches/000-compile.patch
new file mode 100644 (file)
index 0000000..d44e9b3
--- /dev/null
@@ -0,0 +1,2457 @@
+--- a/package.json
++++ b/package.json
+@@ -14,9 +14,6 @@
+     "type": "git",
+     "url": "git://github.com/hanshuebner/node-hid.git"
+   },
+-  "scripts": {
+-    "prepublish": "git submodule update --init"
+-  },
+   "main": "./index.js",
+   "engines": {
+     "node": ">=0.8.0"
+--- a/src/wscript
++++ b/src/wscript
+@@ -3,10 +3,8 @@
+ import sys;
+ import os;
+-hidapi_home='../hidapi'
+ cflags=["-g", "-D_FILE_OFFSET_BITS=64", "-D_LARGEFILE_SOURCE", "-Wall", "-fPIC" ]
+-includes=[ hidapi_home + "/hidapi" ]
+ def set_options(opt):
+   opt.tool_options("compiler_cxx")
+@@ -16,24 +14,10 @@
+   conf.check_tool("compiler_cxx")
+   conf.check_tool("node_addon")
+   conf.check_tool("compiler_cc")
+-  if sys.platform == 'darwin':
+-    conf.env.append_value('LINKFLAGS', ['Release/libhidapi.a', '-framework', 'IOKit', '-framework', 'CoreFoundation'])
+-  else:
+-    conf.env.append_value('LINKFLAGS', ['Release/libhidapi.a', '-ludev' ])
+-  
+-def build(bld):
+-    bld.add_group("hidapi")
+-    hidapi = bld.new_task_gen("cc", "staticlib")
+-    hidapi.includes = includes
+-    hidapi.cflags = cflags
+-    if sys.platform == 'darwin':
+-      hidapi.source = "../hidapi/mac/hid.c"
+-    else:
+-      hidapi.source = "../hidapi/linux/hid.c"
+-    hidapi.target = "hidapi"
++def build(bld):
+     bld.add_group("adapter")
+-    adapter = bld.new_task_gen("cxx", "shlib", "node_addon", use = ['hidapi'])
++    adapter = bld.new_task_gen("cxx", "shlib", "node_addon")
+     adapter.includes = includes
+     adapter.cxxflags = cflags
+     adapter.target = "HID"
+--- a/binding.gyp
++++ b/binding.gyp
+@@ -4,61 +4,8 @@
+   },\r
+   'targets': [\r
+     {\r
+-      'target_name': 'hidapi',\r
+-      'type': 'static_library',\r
+-      'conditions': [\r
+-        [ 'OS=="mac"', {\r
+-          'sources': [ 'hidapi/mac/hid.c' ],\r
+-          'include_dirs+': [\r
+-            '/usr/include/libusb-1.0/'\r
+-          ]\r
+-        }],\r
+-        [ 'OS=="linux"', {\r
+-          'conditions': [\r
+-            [ 'driver=="libusb"', {\r
+-              'sources': [ 'hidapi/libusb/hid.c' ],\r
+-              'include_dirs+': [\r
+-                '/usr/include/libusb-1.0/'\r
+-              ]\r
+-            }],\r
+-            [ 'driver=="hidraw"', {\r
+-              'sources': [ 'hidapi/linux/hid.c' ]\r
+-            }]\r
+-          ]\r
+-        }],\r
+-        [ 'OS=="win"', {\r
+-          'sources': [ 'hidapi/windows/hid.c' ],\r
+-          'msvs_settings': {\r
+-            'VCLinkerTool': {\r
+-              'AdditionalDependencies': [\r
+-                'setupapi.lib',\r
+-              ]\r
+-            }\r
+-          }\r
+-        }]\r
+-      ],\r
+-      'direct_dependent_settings': {\r
+-        'include_dirs': [\r
+-          'hidapi/hidapi',\r
+-          "<!(node -e \"require('nan')\")"\r
+-        ]\r
+-      },\r
+-      'include_dirs': [\r
+-        'hidapi/hidapi'\r
+-      ],\r
+-      'defines': [\r
+-        '_LARGEFILE_SOURCE',\r
+-        '_FILE_OFFSET_BITS=64',\r
+-      ],\r
+-      'cflags': ['-g'],\r
+-      'cflags!': [\r
+-        '-ansi'\r
+-      ]\r
+-    },\r
+-    {\r
+       'target_name': 'HID',\r
+       'sources': [ 'src/HID.cc' ],\r
+-      'dependencies': ['hidapi'],\r
+       'defines': [\r
+         '_LARGEFILE_SOURCE',\r
+         '_FILE_OFFSET_BITS=64',\r
+@@ -108,4 +55,4 @@
+       'cflags_cc': ['-g', '-exceptions']\r
+     }\r
+   ]\r
+-}
+\ No newline at end of file
++}\r
+--- /dev/null
++++ b/src/nan.h
+@@ -0,0 +1,2331 @@
++/**********************************************************************************
++ * NAN - Native Abstractions for Node.js
++ *
++ * Copyright (c) 2014 NAN contributors:
++ *   - Rod Vagg <https://github.com/rvagg>
++ *   - Benjamin Byholm <https://github.com/kkoopa>
++ *   - Trevor Norris <https://github.com/trevnorris>
++ *   - Nathan Rajlich <https://github.com/TooTallNate>
++ *   - Brett Lawson <https://github.com/brett19>
++ *   - Ben Noordhuis <https://github.com/bnoordhuis>
++ *
++ * MIT +no-false-attribs License <https://github.com/rvagg/nan/blob/master/LICENSE>
++ *
++ * Version 1.3.0: current Node unstable: 0.11.13, Node stable: 0.10.30
++ *
++ * See https://github.com/rvagg/nan for the latest update to this file
++ **********************************************************************************/
++
++#ifndef NAN_H_
++#define NAN_H_
++
++#include <uv.h>
++#include <node.h>
++#include <node_buffer.h>
++#include <node_version.h>
++#include <node_object_wrap.h>
++#include <string.h>
++#include <limits.h>
++#include <string>
++
++#if defined(__GNUC__) && !defined(DEBUG)
++# define NAN_INLINE inline __attribute__((always_inline))
++#elif defined(_MSC_VER) && !defined(DEBUG)
++# define NAN_INLINE __forceinline
++#else
++# define NAN_INLINE inline
++#endif
++
++#if defined(__GNUC__) && !V8_DISABLE_DEPRECATIONS
++# define NAN_DEPRECATED __attribute__((deprecated))
++#elif defined(_MSC_VER) && !V8_DISABLE_DEPRECATIONS
++# define NAN_DEPRECATED __declspec(deprecated)
++#else
++# define NAN_DEPRECATED
++#endif
++
++// some generic helpers
++
++template<typename T> NAN_INLINE bool NanSetPointerSafe(
++    T *var
++  , T val
++) {
++  if (var) {
++    *var = val;
++    return true;
++  } else {
++    return false;
++  }
++}
++
++template<typename T> NAN_INLINE T NanGetPointerSafe(
++    T *var
++  , T fallback = reinterpret_cast<T>(0)
++) {
++  if (var) {
++    return *var;
++  } else {
++    return fallback;
++  }
++}
++
++NAN_INLINE bool NanBooleanOptionValue(
++    v8::Local<v8::Object> optionsObj
++  , v8::Handle<v8::String> opt, bool def
++) {
++  if (def) {
++    return optionsObj.IsEmpty()
++      || !optionsObj->Has(opt)
++      || optionsObj->Get(opt)->BooleanValue();
++  } else {
++    return !optionsObj.IsEmpty()
++      && optionsObj->Has(opt)
++      && optionsObj->Get(opt)->BooleanValue();
++  }
++}
++
++NAN_INLINE bool NanBooleanOptionValue(
++    v8::Local<v8::Object> optionsObj
++  , v8::Handle<v8::String> opt
++) {
++  return NanBooleanOptionValue(optionsObj, opt, false);
++}
++
++NAN_INLINE uint32_t NanUInt32OptionValue(
++    v8::Local<v8::Object> optionsObj
++  , v8::Handle<v8::String> opt
++  , uint32_t def
++) {
++  return !optionsObj.IsEmpty()
++    && optionsObj->Has(opt)
++    && optionsObj->Get(opt)->IsNumber()
++      ? optionsObj->Get(opt)->Uint32Value()
++      : def;
++}
++
++#if (NODE_MODULE_VERSION > 0x000B)
++// Node 0.11+ (0.11.3 and below won't compile with these)
++
++# define _NAN_METHOD_ARGS_TYPE const v8::FunctionCallbackInfo<v8::Value>&
++# define _NAN_METHOD_ARGS _NAN_METHOD_ARGS_TYPE args
++# define _NAN_METHOD_RETURN_TYPE void
++
++# define _NAN_GETTER_ARGS_TYPE const v8::PropertyCallbackInfo<v8::Value>&
++# define _NAN_GETTER_ARGS _NAN_GETTER_ARGS_TYPE args
++# define _NAN_GETTER_RETURN_TYPE void
++
++# define _NAN_SETTER_ARGS_TYPE const v8::PropertyCallbackInfo<void>&
++# define _NAN_SETTER_ARGS _NAN_SETTER_ARGS_TYPE args
++# define _NAN_SETTER_RETURN_TYPE void
++
++# define _NAN_PROPERTY_GETTER_ARGS_TYPE                                        \
++    const v8::PropertyCallbackInfo<v8::Value>&
++# define _NAN_PROPERTY_GETTER_ARGS _NAN_PROPERTY_GETTER_ARGS_TYPE args
++# define _NAN_PROPERTY_GETTER_RETURN_TYPE void
++
++# define _NAN_PROPERTY_SETTER_ARGS_TYPE                                        \
++    const v8::PropertyCallbackInfo<v8::Value>&
++# define _NAN_PROPERTY_SETTER_ARGS _NAN_PROPERTY_SETTER_ARGS_TYPE args
++# define _NAN_PROPERTY_SETTER_RETURN_TYPE void
++
++# define _NAN_PROPERTY_ENUMERATOR_ARGS_TYPE                                    \
++    const v8::PropertyCallbackInfo<v8::Array>&
++# define _NAN_PROPERTY_ENUMERATOR_ARGS _NAN_PROPERTY_ENUMERATOR_ARGS_TYPE args
++# define _NAN_PROPERTY_ENUMERATOR_RETURN_TYPE void
++
++# define _NAN_PROPERTY_DELETER_ARGS_TYPE                                       \
++    const v8::PropertyCallbackInfo<v8::Boolean>&
++# define _NAN_PROPERTY_DELETER_ARGS                                            \
++    _NAN_PROPERTY_DELETER_ARGS_TYPE args
++# define _NAN_PROPERTY_DELETER_RETURN_TYPE void
++
++# define _NAN_PROPERTY_QUERY_ARGS_TYPE                                         \
++    const v8::PropertyCallbackInfo<v8::Integer>&
++# define _NAN_PROPERTY_QUERY_ARGS _NAN_PROPERTY_QUERY_ARGS_TYPE args
++# define _NAN_PROPERTY_QUERY_RETURN_TYPE void
++
++# define _NAN_INDEX_GETTER_ARGS_TYPE                                           \
++    const v8::PropertyCallbackInfo<v8::Value>&
++# define _NAN_INDEX_GETTER_ARGS _NAN_INDEX_GETTER_ARGS_TYPE args
++# define _NAN_INDEX_GETTER_RETURN_TYPE void
++
++# define _NAN_INDEX_SETTER_ARGS_TYPE                                           \
++    const v8::PropertyCallbackInfo<v8::Value>&
++# define _NAN_INDEX_SETTER_ARGS _NAN_INDEX_SETTER_ARGS_TYPE args
++# define _NAN_INDEX_SETTER_RETURN_TYPE void
++
++# define _NAN_INDEX_ENUMERATOR_ARGS_TYPE                                       \
++    const v8::PropertyCallbackInfo<v8::Array>&
++# define _NAN_INDEX_ENUMERATOR_ARGS _NAN_INDEX_ENUMERATOR_ARGS_TYPE args
++# define _NAN_INDEX_ENUMERATOR_RETURN_TYPE void
++
++# define _NAN_INDEX_DELETER_ARGS_TYPE                                          \
++    const v8::PropertyCallbackInfo<v8::Boolean>&
++# define _NAN_INDEX_DELETER_ARGS _NAN_INDEX_DELETER_ARGS_TYPE args
++# define _NAN_INDEX_DELETER_RETURN_TYPE void
++
++# define _NAN_INDEX_QUERY_ARGS_TYPE                                            \
++    const v8::PropertyCallbackInfo<v8::Integer>&
++# define _NAN_INDEX_QUERY_ARGS _NAN_INDEX_QUERY_ARGS_TYPE args
++# define _NAN_INDEX_QUERY_RETURN_TYPE void
++
++  typedef v8::FunctionCallback NanFunctionCallback;
++
++  template<typename T>
++  NAN_INLINE v8::Local<T> NanNew() {
++    return T::New(v8::Isolate::GetCurrent());
++  }
++
++  template<typename T, typename P>
++  NAN_INLINE v8::Local<T> NanNew(P arg1) {
++    return T::New(v8::Isolate::GetCurrent(), arg1);
++  }
++
++  template<typename T>
++  NAN_INLINE v8::Local<v8::Signature> NanNew(
++      v8::Handle<v8::FunctionTemplate> receiver
++    , int argc
++    , v8::Handle<v8::FunctionTemplate> argv[] = 0) {
++    return v8::Signature::New(v8::Isolate::GetCurrent(), receiver, argc, argv);
++  }
++
++  template<typename T>
++  NAN_INLINE v8::Local<v8::FunctionTemplate> NanNew(
++      NanFunctionCallback callback
++    , v8::Handle<v8::Value> data = v8::Handle<v8::Value>()
++    , v8::Handle<v8::Signature> signature = v8::Handle<v8::Signature>()) {
++    return T::New(v8::Isolate::GetCurrent(), callback, data, signature);
++  }
++
++  template<typename T>
++  NAN_INLINE v8::Local<T> NanNew(v8::Handle<T> arg1) {
++    return v8::Local<T>::New(v8::Isolate::GetCurrent(), arg1);
++  }
++
++  template<typename T>
++  NAN_INLINE v8::Local<T> NanNew(const v8::Persistent<T> &arg1) {
++    return v8::Local<T>::New(v8::Isolate::GetCurrent(), arg1);
++  }
++
++  template<typename T, typename P>
++  NAN_INLINE v8::Local<T> NanNew(P arg1, int arg2) {
++    return T::New(v8::Isolate::GetCurrent(), arg1, arg2);
++  }
++
++  template<>
++  NAN_INLINE v8::Local<v8::Array> NanNew<v8::Array>() {
++    return v8::Array::New(v8::Isolate::GetCurrent());
++  }
++
++  template<>
++  NAN_INLINE v8::Local<v8::Array> NanNew<v8::Array>(int length) {
++    return v8::Array::New(v8::Isolate::GetCurrent(), length);
++  }
++
++  template<>
++  NAN_INLINE v8::Local<v8::Date> NanNew<v8::Date>(double time) {
++    return v8::Date::New(v8::Isolate::GetCurrent(), time).As<v8::Date>();
++  }
++
++  template<>
++  NAN_INLINE v8::Local<v8::Date> NanNew<v8::Date>(int time) {
++    return v8::Date::New(v8::Isolate::GetCurrent(), time).As<v8::Date>();
++  }
++
++  typedef v8::UnboundScript NanUnboundScript;
++  typedef v8::Script NanBoundScript;
++
++  template<typename T, typename P>
++  NAN_INLINE v8::Local<T> NanNew(
++      P s
++    , const v8::ScriptOrigin& origin
++  ) {
++    v8::ScriptCompiler::Source source(s, origin);
++    return v8::ScriptCompiler::CompileUnbound(
++        v8::Isolate::GetCurrent(), &source);
++  }
++
++  template<>
++  NAN_INLINE v8::Local<NanUnboundScript> NanNew<NanUnboundScript>(
++      v8::Local<v8::String> s
++  ) {
++    v8::ScriptCompiler::Source source(s);
++    return v8::ScriptCompiler::CompileUnbound(
++        v8::Isolate::GetCurrent(), &source);
++  }
++
++  template<>
++  NAN_INLINE v8::Local<v8::BooleanObject> NanNew(bool value) {
++    return v8::BooleanObject::New(value).As<v8::BooleanObject>();
++  }
++
++  template<>
++  NAN_INLINE v8::Local<v8::StringObject>
++  NanNew<v8::StringObject, v8::Local<v8::String> >(
++      v8::Local<v8::String> value) {
++    return v8::StringObject::New(value).As<v8::StringObject>();
++  }
++
++  template<>
++  NAN_INLINE v8::Local<v8::StringObject>
++  NanNew<v8::StringObject, v8::Handle<v8::String> >(
++      v8::Handle<v8::String> value) {
++    return v8::StringObject::New(value).As<v8::StringObject>();
++  }
++
++  template<>
++  NAN_INLINE v8::Local<v8::NumberObject> NanNew<v8::NumberObject>(double val) {
++    return v8::NumberObject::New(
++        v8::Isolate::GetCurrent(), val).As<v8::NumberObject>();
++  }
++
++  template<typename T>
++  NAN_INLINE v8::Local<v8::RegExp> NanNew(
++      v8::Handle<v8::String> pattern, v8::RegExp::Flags flags) {
++    return v8::RegExp::New(pattern, flags);
++  }
++
++  template<typename T>
++  NAN_INLINE v8::Local<v8::RegExp> NanNew(
++      v8::Local<v8::String> pattern, v8::RegExp::Flags flags) {
++    return v8::RegExp::New(pattern, flags);
++  }
++
++  template<typename T, typename P>
++  NAN_INLINE v8::Local<v8::RegExp> NanNew(
++      v8::Handle<v8::String> pattern, v8::RegExp::Flags flags) {
++    return v8::RegExp::New(pattern, flags);
++  }
++
++  template<typename T, typename P>
++  NAN_INLINE v8::Local<v8::RegExp> NanNew(
++      v8::Local<v8::String> pattern, v8::RegExp::Flags flags) {
++    return v8::RegExp::New(pattern, flags);
++  }
++
++  template<>
++  NAN_INLINE v8::Local<v8::Uint32> NanNew<v8::Uint32, int32_t>(int32_t val) {
++    return v8::Uint32::NewFromUnsigned(
++        v8::Isolate::GetCurrent(), val)->ToUint32();
++  }
++
++  template<>
++  NAN_INLINE v8::Local<v8::Uint32> NanNew<v8::Uint32, uint32_t>(uint32_t val) {
++    return v8::Uint32::NewFromUnsigned(
++        v8::Isolate::GetCurrent(), val)->ToUint32();
++  }
++
++  template<>
++  NAN_INLINE v8::Local<v8::Int32> NanNew<v8::Int32, int32_t>(int32_t val) {
++    return v8::Int32::New(v8::Isolate::GetCurrent(), val)->ToInt32();
++  }
++
++  template<>
++  NAN_INLINE v8::Local<v8::Int32> NanNew<v8::Int32, uint32_t>(uint32_t val) {
++    return v8::Int32::New(v8::Isolate::GetCurrent(), val)->ToInt32();
++  }
++
++  template<>
++  NAN_INLINE v8::Local<v8::String> NanNew<v8::String, char *>(
++      char *arg
++    , int length) {
++    return v8::String::NewFromUtf8(
++        v8::Isolate::GetCurrent()
++      , arg
++      , v8::String::kNormalString
++      , length);
++  }
++
++  template<>
++  NAN_INLINE v8::Local<v8::String> NanNew<v8::String, const char *>(
++      const char *arg
++    , int length) {
++    return v8::String::NewFromUtf8(
++        v8::Isolate::GetCurrent()
++      , arg
++      , v8::String::kNormalString
++      , length);
++  }
++
++  template<>
++  NAN_INLINE v8::Local<v8::String> NanNew<v8::String, char *>(char *arg) {
++    return v8::String::NewFromUtf8(v8::Isolate::GetCurrent(), arg);
++  }
++
++  template<>
++  NAN_INLINE v8::Local<v8::String> NanNew<v8::String, const char *>(
++      const char *arg) {
++    return v8::String::NewFromUtf8(v8::Isolate::GetCurrent(), arg);
++  }
++
++  template<>
++  NAN_INLINE v8::Local<v8::String> NanNew<v8::String, uint8_t *>(
++      uint8_t *arg
++    , int length) {
++    return v8::String::NewFromOneByte(
++        v8::Isolate::GetCurrent()
++      , arg
++      , v8::String::kNormalString
++      , length);
++  }
++
++  template<>
++  NAN_INLINE v8::Local<v8::String> NanNew<v8::String, const uint8_t *>(
++      const uint8_t *arg
++    , int length) {
++    return v8::String::NewFromOneByte(
++        v8::Isolate::GetCurrent()
++      , arg
++      , v8::String::kNormalString
++      , length);
++  }
++
++  template<>
++  NAN_INLINE v8::Local<v8::String> NanNew<v8::String, uint8_t *>(uint8_t *arg) {
++    return v8::String::NewFromOneByte(v8::Isolate::GetCurrent(), arg);
++  }
++
++  template<>
++  NAN_INLINE v8::Local<v8::String> NanNew<v8::String, const uint8_t *>(
++      const uint8_t *arg) {
++    return v8::String::NewFromOneByte(v8::Isolate::GetCurrent(), arg);
++  }
++
++  template<>
++  NAN_INLINE v8::Local<v8::String> NanNew<v8::String, uint16_t *>(
++      uint16_t *arg
++    , int length) {
++    return v8::String::NewFromTwoByte(
++        v8::Isolate::GetCurrent()
++      , arg
++      , v8::String::kNormalString
++      , length);
++  }
++
++  template<>
++  NAN_INLINE v8::Local<v8::String> NanNew<v8::String, const uint16_t *>(
++      const uint16_t *arg
++    , int length) {
++    return v8::String::NewFromTwoByte(
++        v8::Isolate::GetCurrent()
++      , arg
++      , v8::String::kNormalString
++      , length);
++  }
++  template<>
++  NAN_INLINE v8::Local<v8::String> NanNew<v8::String, uint16_t *>(
++      uint16_t *arg) {
++    return v8::String::NewFromTwoByte(v8::Isolate::GetCurrent(), arg);
++  }
++
++  template<>
++  NAN_INLINE v8::Local<v8::String> NanNew<v8::String, const uint16_t *>(
++      const uint16_t *arg) {
++    return v8::String::NewFromTwoByte(v8::Isolate::GetCurrent(), arg);
++  }
++
++  template<>
++  NAN_INLINE v8::Local<v8::String> NanNew<v8::String, std::string>(
++      std::string arg) {
++    return NanNew<v8::String>(arg.c_str(), arg.size());
++  }
++
++  template<>
++  NAN_INLINE v8::Local<v8::String> NanNew<v8::String>() {
++    return v8::String::Empty(v8::Isolate::GetCurrent());
++  }
++
++  NAN_INLINE v8::Local<v8::String> NanNew(const char* arg, int length = -1) {
++    return NanNew<v8::String>(arg, length);
++  }
++
++  NAN_INLINE v8::Local<v8::String> NanNew(
++      const uint8_t* arg
++    , int length = -1) {
++    return NanNew<v8::String>(arg, length);
++  }
++
++  NAN_INLINE v8::Local<v8::String> NanNew(
++      const uint16_t* arg
++    , int length = -1) {
++    return NanNew<v8::String>(arg, length);
++  }
++
++  NAN_INLINE v8::Local<v8::String> NanNew(
++      const std::string& arg) {
++    return NanNew<v8::String>(arg.c_str(), arg.size());
++  }
++
++  NAN_INLINE v8::Local<v8::Number> NanNew(double val) {
++    return NanNew<v8::Number>(val);
++  }
++
++  NAN_INLINE v8::Local<v8::Integer> NanNew(int val) {
++    return NanNew<v8::Integer>(val);
++  }
++
++  NAN_INLINE v8::Local<v8::Uint32> NanNew(unsigned int val) {
++    return NanNew<v8::Uint32>(val);
++  }
++
++  NAN_INLINE v8::Local<v8::Boolean> NanNew(bool val) {
++    return NanNew<v8::Boolean>(val);
++  }
++
++  NAN_INLINE v8::Local<v8::String> NanNew(
++      v8::String::ExternalStringResource *resource) {
++    return v8::String::NewExternal(v8::Isolate::GetCurrent(), resource);
++  }
++
++  NAN_INLINE v8::Local<v8::String> NanNew(
++      v8::String::ExternalAsciiStringResource *resource) {
++    return v8::String::NewExternal(v8::Isolate::GetCurrent(), resource);
++  }
++
++# define NanScope() v8::HandleScope scope(v8::Isolate::GetCurrent())
++# define NanEscapableScope()                                                   \
++  v8::EscapableHandleScope scope(v8::Isolate::GetCurrent())
++
++  template<typename T>
++  NAN_INLINE v8::Local<T> _NanEscapeScopeHelper(v8::Handle<T> val) {
++    return NanNew(val);
++  }
++
++  template<typename T>
++  NAN_INLINE v8::Local<T> _NanEscapeScopeHelper(v8::Local<T> val) {
++    return val;
++  }
++
++# define NanEscapeScope(val) scope.Escape(_NanEscapeScopeHelper(val))
++# define NanLocker() v8::Locker locker(v8::Isolate::GetCurrent())
++# define NanUnlocker() v8::Unlocker unlocker(v8::Isolate::GetCurrent())
++# define NanReturnValue(value) return args.GetReturnValue().Set(value)
++# define NanReturnUndefined() return
++# define NanReturnNull() return args.GetReturnValue().SetNull()
++# define NanReturnEmptyString() return args.GetReturnValue().SetEmptyString()
++
++# define NanObjectWrapHandle(obj) obj->handle()
++
++  NAN_INLINE v8::Local<v8::Primitive> NanUndefined() {
++    NanEscapableScope();
++    return NanEscapeScope(NanNew(v8::Undefined(v8::Isolate::GetCurrent())));
++  }
++
++  NAN_INLINE v8::Local<v8::Primitive> NanNull() {
++    NanEscapableScope();
++    return NanEscapeScope(NanNew(v8::Null(v8::Isolate::GetCurrent())));
++  }
++
++  NAN_INLINE v8::Local<v8::Boolean> NanTrue() {
++    NanEscapableScope();
++    return NanEscapeScope(NanNew(v8::True(v8::Isolate::GetCurrent())));
++  }
++
++  NAN_INLINE v8::Local<v8::Boolean> NanFalse() {
++    NanEscapableScope();
++    return NanEscapeScope(NanNew(v8::False(v8::Isolate::GetCurrent())));
++  }
++
++  NAN_INLINE int NanAdjustExternalMemory(int bc) {
++    return static_cast<int>(
++        v8::Isolate::GetCurrent()->AdjustAmountOfExternalAllocatedMemory(bc));
++  }
++
++  NAN_INLINE void NanSetTemplate(
++      v8::Handle<v8::Template> templ
++    , const char *name
++    , v8::Handle<v8::Data> value) {
++    templ->Set(v8::Isolate::GetCurrent(), name, value);
++  }
++
++  NAN_INLINE void NanSetTemplate(
++      v8::Handle<v8::Template> templ
++    , v8::Handle<v8::String> name
++    , v8::Handle<v8::Data> value
++    , v8::PropertyAttribute attributes) {
++    templ->Set(name, value, attributes);
++  }
++
++  NAN_INLINE v8::Local<v8::Context> NanGetCurrentContext() {
++    return v8::Isolate::GetCurrent()->GetCurrentContext();
++  }
++
++  NAN_INLINE void* NanGetInternalFieldPointer(
++      v8::Handle<v8::Object> object
++    , int index) {
++    return object->GetAlignedPointerFromInternalField(index);
++  }
++
++  NAN_INLINE void NanSetInternalFieldPointer(
++      v8::Handle<v8::Object> object
++    , int index
++    , void* value) {
++    object->SetAlignedPointerInInternalField(index, value);
++  }
++
++  NAN_INLINE void NanAddGCEpilogueCallback(
++      v8::Isolate::GCEpilogueCallback callback
++    , v8::GCType gc_type_filter = v8::kGCTypeAll) {
++    v8::Isolate::GetCurrent()->AddGCEpilogueCallback(callback, gc_type_filter);
++  }
++
++  NAN_INLINE void NanRemoveGCEpilogueCallback(
++      v8::Isolate::GCEpilogueCallback callback) {
++    v8::Isolate::GetCurrent()->RemoveGCEpilogueCallback(callback);
++  }
++
++  NAN_INLINE void NanAddGCPrologueCallback(
++      v8::Isolate::GCPrologueCallback callback
++    , v8::GCType gc_type_filter = v8::kGCTypeAll) {
++    v8::Isolate::GetCurrent()->AddGCPrologueCallback(callback, gc_type_filter);
++  }
++
++  NAN_INLINE void NanRemoveGCPrologueCallback(
++      v8::Isolate::GCPrologueCallback callback) {
++    v8::Isolate::GetCurrent()->RemoveGCPrologueCallback(callback);
++  }
++
++  NAN_INLINE void NanGetHeapStatistics(
++      v8::HeapStatistics *heap_statistics) {
++    v8::Isolate::GetCurrent()->GetHeapStatistics(heap_statistics);
++  }
++
++  NAN_DEPRECATED NAN_INLINE v8::Local<v8::String> NanSymbol(
++      const char* data, int length = -1) {
++    return NanNew<v8::String>(data, length);
++  }
++
++  template<typename T>
++  NAN_INLINE void NanAssignPersistent(
++      v8::Persistent<T>& handle
++    , v8::Handle<T> obj) {
++      handle.Reset(v8::Isolate::GetCurrent(), obj);
++  }
++
++  template<typename T>
++  NAN_INLINE void NanAssignPersistent(
++      v8::Persistent<T>& handle
++    , const v8::Persistent<T>& obj) {
++      handle.Reset(v8::Isolate::GetCurrent(), obj);
++  }
++
++  template<typename T, typename P>
++  class _NanWeakCallbackData;
++
++  template<typename T, typename P>
++  struct _NanWeakCallbackInfo {
++    typedef void (*Callback)(const _NanWeakCallbackData<T, P>& data);
++    NAN_INLINE _NanWeakCallbackInfo(v8::Handle<T> handle, P* param, Callback cb)
++      : parameter(param), callback(cb) {
++       NanAssignPersistent(persistent, handle);
++    }
++
++    NAN_INLINE ~_NanWeakCallbackInfo() {
++      persistent.Reset();
++    }
++
++    P* const parameter;
++    Callback const callback;
++    v8::Persistent<T> persistent;
++  };
++
++  template<typename T, typename P>
++  class _NanWeakCallbackData {
++   public:
++    NAN_INLINE _NanWeakCallbackData(_NanWeakCallbackInfo<T, P> *info)
++      : info_(info) { }
++
++    NAN_INLINE v8::Local<T> GetValue() const {
++      return NanNew(info_->persistent);
++    }
++
++    NAN_INLINE P* GetParameter() const { return info_->parameter; }
++
++    NAN_INLINE bool IsNearDeath() const {
++      return info_->persistent.IsNearDeath();
++    }
++
++    NAN_INLINE void Revive() const;
++
++    NAN_INLINE _NanWeakCallbackInfo<T, P>* GetCallbackInfo() const {
++      return info_;
++    }
++
++    NAN_DEPRECATED NAN_INLINE void Dispose() const {
++    }
++
++   private:
++    _NanWeakCallbackInfo<T, P>* info_;
++  };
++
++  template<typename T, typename P>
++  static void _NanWeakCallbackDispatcher(
++    const v8::WeakCallbackData<T, _NanWeakCallbackInfo<T, P> > &data) {
++      _NanWeakCallbackInfo<T, P> *info = data.GetParameter();
++      _NanWeakCallbackData<T, P> wcbd(info);
++      info->callback(wcbd);
++      if (wcbd.IsNearDeath()) {
++        delete wcbd.GetCallbackInfo();
++      }
++  }
++
++  template<typename T, typename P>
++  NAN_INLINE void _NanWeakCallbackData<T, P>::Revive() const {
++      info_->persistent.SetWeak(info_, &_NanWeakCallbackDispatcher<T, P>);
++  }
++
++template<typename T, typename P>
++NAN_INLINE _NanWeakCallbackInfo<T, P>* NanMakeWeakPersistent(
++    v8::Handle<T> handle
++  , P* parameter
++  , typename _NanWeakCallbackInfo<T, P>::Callback callback) {
++    _NanWeakCallbackInfo<T, P> *cbinfo =
++     new _NanWeakCallbackInfo<T, P>(handle, parameter, callback);
++    cbinfo->persistent.SetWeak(cbinfo, &_NanWeakCallbackDispatcher<T, P>);
++    return cbinfo;
++}
++
++# define NAN_WEAK_CALLBACK(name)                                               \
++    template<typename T, typename P>                                           \
++    static void name(const _NanWeakCallbackData<T, P> &data)
++
++# define _NAN_ERROR(fun, errmsg) fun(NanNew<v8::String>(errmsg))
++
++# define _NAN_THROW_ERROR(fun, errmsg)                                         \
++    do {                                                                       \
++      NanScope();                                                              \
++      v8::Isolate::GetCurrent()->ThrowException(_NAN_ERROR(fun, errmsg));      \
++    } while (0);
++
++  NAN_INLINE v8::Local<v8::Value> NanError(const char* errmsg) {
++    return  _NAN_ERROR(v8::Exception::Error, errmsg);
++  }
++
++  NAN_INLINE void NanThrowError(const char* errmsg) {
++    _NAN_THROW_ERROR(v8::Exception::Error, errmsg);
++  }
++
++  NAN_INLINE void NanThrowError(v8::Handle<v8::Value> error) {
++    NanScope();
++    v8::Isolate::GetCurrent()->ThrowException(error);
++  }
++
++  NAN_INLINE v8::Local<v8::Value> NanError(
++      const char *msg
++    , const int errorNumber
++  ) {
++    v8::Local<v8::Value> err = v8::Exception::Error(NanNew<v8::String>(msg));
++    v8::Local<v8::Object> obj = err.As<v8::Object>();
++    obj->Set(NanNew<v8::String>("code"), NanNew<v8::Integer>(errorNumber));
++    return err;
++  }
++
++  NAN_INLINE void NanThrowError(
++      const char *msg
++    , const int errorNumber
++  ) {
++    NanThrowError(NanError(msg, errorNumber));
++  }
++
++  NAN_INLINE v8::Local<v8::Value> NanTypeError(const char* errmsg) {
++    return _NAN_ERROR(v8::Exception::TypeError, errmsg);
++  }
++
++  NAN_INLINE void NanThrowTypeError(const char* errmsg) {
++    _NAN_THROW_ERROR(v8::Exception::TypeError, errmsg);
++  }
++
++  NAN_INLINE v8::Local<v8::Value> NanRangeError(const char* errmsg) {
++    return _NAN_ERROR(v8::Exception::RangeError, errmsg);
++  }
++
++  NAN_INLINE void NanThrowRangeError(const char* errmsg) {
++    _NAN_THROW_ERROR(v8::Exception::RangeError, errmsg);
++  }
++
++  template<typename T> NAN_INLINE void NanDisposePersistent(
++      v8::Persistent<T> &handle
++  ) {
++    handle.Reset();
++  }
++
++  NAN_INLINE v8::Local<v8::Object> NanNewBufferHandle (
++      char *data
++    , size_t length
++    , node::smalloc::FreeCallback callback
++    , void *hint
++  ) {
++    return node::Buffer::New(
++        v8::Isolate::GetCurrent(), data, length, callback, hint);
++  }
++
++  NAN_INLINE v8::Local<v8::Object> NanNewBufferHandle (
++      const char *data
++    , uint32_t size
++  ) {
++    return node::Buffer::New(v8::Isolate::GetCurrent(), data, size);
++  }
++
++  NAN_INLINE v8::Local<v8::Object> NanNewBufferHandle (uint32_t size) {
++    return node::Buffer::New(v8::Isolate::GetCurrent(), size);
++  }
++
++  NAN_INLINE v8::Local<v8::Object> NanBufferUse(
++      char* data
++    , uint32_t size
++  ) {
++    return node::Buffer::Use(v8::Isolate::GetCurrent(), data, size);
++  }
++
++  NAN_INLINE bool NanHasInstance(
++      v8::Persistent<v8::FunctionTemplate>& function_template
++    , v8::Handle<v8::Value> value
++  ) {
++    return NanNew(function_template)->HasInstance(value);
++  }
++
++  NAN_INLINE v8::Local<v8::Context> NanNewContextHandle(
++      v8::ExtensionConfiguration* extensions = NULL
++    , v8::Handle<v8::ObjectTemplate> tmpl = v8::Handle<v8::ObjectTemplate>()
++    , v8::Handle<v8::Value> obj = v8::Handle<v8::Value>()
++  ) {
++    v8::Isolate* isolate = v8::Isolate::GetCurrent();
++    return v8::Local<v8::Context>::New(
++        isolate
++      , v8::Context::New(isolate, extensions, tmpl, obj)
++    );
++  }
++
++  NAN_INLINE v8::Local<NanBoundScript> NanCompileScript(
++      v8::Local<v8::String> s
++    , const v8::ScriptOrigin& origin
++  ) {
++    v8::ScriptCompiler::Source source(s, origin);
++    return v8::ScriptCompiler::Compile(v8::Isolate::GetCurrent(), &source);
++  }
++
++  NAN_INLINE v8::Local<NanBoundScript> NanCompileScript(
++      v8::Local<v8::String> s
++  ) {
++    v8::ScriptCompiler::Source source(s);
++    return v8::ScriptCompiler::Compile(v8::Isolate::GetCurrent(), &source);
++  }
++
++  NAN_INLINE v8::Local<v8::Value> NanRunScript(
++      v8::Handle<NanUnboundScript> script
++  ) {
++    return script->BindToCurrentContext()->Run();
++  }
++
++  NAN_INLINE v8::Local<v8::Value> NanRunScript(
++      v8::Handle<NanBoundScript> script
++  ) {
++    return script->Run();
++  }
++
++  NAN_INLINE v8::Local<v8::Value> NanMakeCallback(
++      v8::Handle<v8::Object> target
++    , v8::Handle<v8::Function> func
++    , int argc
++    , v8::Handle<v8::Value>* argv) {
++    return NanNew(node::MakeCallback(
++        v8::Isolate::GetCurrent(), target, func, argc, argv));
++  }
++
++  NAN_INLINE v8::Local<v8::Value> NanMakeCallback(
++      v8::Handle<v8::Object> target
++    , v8::Handle<v8::String> symbol
++    , int argc
++    , v8::Handle<v8::Value>* argv) {
++    return NanNew(node::MakeCallback(
++        v8::Isolate::GetCurrent(), target, symbol, argc, argv));
++  }
++
++  NAN_INLINE v8::Local<v8::Value> NanMakeCallback(
++      v8::Handle<v8::Object> target
++    , const char* method
++    , int argc
++    , v8::Handle<v8::Value>* argv) {
++    return NanNew(node::MakeCallback(
++        v8::Isolate::GetCurrent(), target, method, argc, argv));
++  }
++
++  template<typename T>
++  NAN_INLINE void NanSetIsolateData(
++      v8::Isolate *isolate
++    , T *data
++  ) {
++      isolate->SetData(0, data);
++  }
++
++  template<typename T>
++  NAN_INLINE T *NanGetIsolateData(
++      v8::Isolate *isolate
++  ) {
++      return static_cast<T*>(isolate->GetData(0));
++  }
++
++  class NanAsciiString {
++   public:
++    NAN_INLINE explicit NanAsciiString(v8::Handle<v8::Value> from) {
++      v8::Local<v8::String> toStr = from->ToString();
++      int buf_size = toStr->Length() + 1;
++      buf = new char[buf_size];
++      size = toStr->WriteOneByte(
++          reinterpret_cast<unsigned char*>(buf), 0, buf_size);
++    }
++
++    NAN_INLINE int Size() const {
++      return size;
++    }
++
++    NAN_INLINE char* operator*() { return buf; }
++
++    NAN_INLINE ~NanAsciiString() {
++      delete[] buf;
++    }
++
++   private:
++    char *buf;
++    int size;
++  };
++
++  class NanUtf8String {
++   public:
++    NAN_INLINE explicit NanUtf8String(v8::Handle<v8::Value> from) {
++      v8::Local<v8::String> toStr = from->ToString();
++      int buf_size = toStr->Utf8Length() + 1;
++      buf = new char[buf_size];
++      size = toStr->WriteUtf8(buf, buf_size);
++    }
++
++    NAN_INLINE int Size() const {
++      return size;
++    }
++
++    NAN_INLINE char* operator*() { return buf; }
++
++    NAN_INLINE ~NanUtf8String() {
++      delete[] buf;
++    }
++
++   private:
++    char *buf;
++    int size;
++  };
++
++  class NanUcs2String {
++   public:
++    NAN_INLINE explicit NanUcs2String(v8::Handle<v8::Value> from) {
++      v8::Local<v8::String> toStr = from->ToString();
++      int buf_size = toStr->Length() + 1;
++      buf = new uint16_t[buf_size];
++      size = toStr->Write(buf, 0, buf_size);
++    }
++
++    NAN_INLINE int Size() const {
++      return size;
++    }
++
++    NAN_INLINE uint16_t* operator*() { return buf; }
++
++    NAN_INLINE ~NanUcs2String() {
++      delete[] buf;
++    }
++
++   private:
++    uint16_t *buf;
++    int size;
++  };
++
++#else
++// Node 0.8 and 0.10
++
++# define _NAN_METHOD_ARGS_TYPE const v8::Arguments&
++# define _NAN_METHOD_ARGS _NAN_METHOD_ARGS_TYPE args
++# define _NAN_METHOD_RETURN_TYPE v8::Handle<v8::Value>
++
++# define _NAN_GETTER_ARGS_TYPE const v8::AccessorInfo &
++# define _NAN_GETTER_ARGS _NAN_GETTER_ARGS_TYPE args
++# define _NAN_GETTER_RETURN_TYPE v8::Handle<v8::Value>
++
++# define _NAN_SETTER_ARGS_TYPE const v8::AccessorInfo &
++# define _NAN_SETTER_ARGS _NAN_SETTER_ARGS_TYPE args
++# define _NAN_SETTER_RETURN_TYPE void
++
++# define _NAN_PROPERTY_GETTER_ARGS_TYPE const v8::AccessorInfo&
++# define _NAN_PROPERTY_GETTER_ARGS _NAN_PROPERTY_GETTER_ARGS_TYPE args
++# define _NAN_PROPERTY_GETTER_RETURN_TYPE v8::Handle<v8::Value>
++
++# define _NAN_PROPERTY_SETTER_ARGS_TYPE const v8::AccessorInfo&
++# define _NAN_PROPERTY_SETTER_ARGS _NAN_PROPERTY_SETTER_ARGS_TYPE args
++# define _NAN_PROPERTY_SETTER_RETURN_TYPE v8::Handle<v8::Value>
++
++# define _NAN_PROPERTY_ENUMERATOR_ARGS_TYPE const v8::AccessorInfo&
++# define _NAN_PROPERTY_ENUMERATOR_ARGS _NAN_PROPERTY_ENUMERATOR_ARGS_TYPE args
++# define _NAN_PROPERTY_ENUMERATOR_RETURN_TYPE v8::Handle<v8::Array>
++
++# define _NAN_PROPERTY_DELETER_ARGS_TYPE const v8::AccessorInfo&
++# define _NAN_PROPERTY_DELETER_ARGS _NAN_PROPERTY_DELETER_ARGS_TYPE args
++# define _NAN_PROPERTY_DELETER_RETURN_TYPE v8::Handle<v8::Boolean>
++
++# define _NAN_PROPERTY_QUERY_ARGS_TYPE const v8::AccessorInfo&
++# define _NAN_PROPERTY_QUERY_ARGS _NAN_PROPERTY_QUERY_ARGS_TYPE args
++# define _NAN_PROPERTY_QUERY_RETURN_TYPE v8::Handle<v8::Integer>
++
++# define _NAN_INDEX_GETTER_ARGS_TYPE const v8::AccessorInfo&
++# define _NAN_INDEX_GETTER_ARGS _NAN_INDEX_GETTER_ARGS_TYPE args
++# define _NAN_INDEX_GETTER_RETURN_TYPE v8::Handle<v8::Value>
++
++# define _NAN_INDEX_SETTER_ARGS_TYPE const v8::AccessorInfo&
++# define _NAN_INDEX_SETTER_ARGS _NAN_INDEX_SETTER_ARGS_TYPE args
++# define _NAN_INDEX_SETTER_RETURN_TYPE v8::Handle<v8::Value>
++
++# define _NAN_INDEX_ENUMERATOR_ARGS_TYPE const v8::AccessorInfo&
++# define _NAN_INDEX_ENUMERATOR_ARGS _NAN_INDEX_ENUMERATOR_ARGS_TYPE args
++# define _NAN_INDEX_ENUMERATOR_RETURN_TYPE v8::Handle<v8::Array>
++
++# define _NAN_INDEX_DELETER_ARGS_TYPE const v8::AccessorInfo&
++# define _NAN_INDEX_DELETER_ARGS _NAN_INDEX_DELETER_ARGS_TYPE args
++# define _NAN_INDEX_DELETER_RETURN_TYPE v8::Handle<v8::Boolean>
++
++# define _NAN_INDEX_QUERY_ARGS_TYPE const v8::AccessorInfo&
++# define _NAN_INDEX_QUERY_ARGS _NAN_INDEX_QUERY_ARGS_TYPE args
++# define _NAN_INDEX_QUERY_RETURN_TYPE v8::Handle<v8::Integer>
++
++  typedef v8::InvocationCallback NanFunctionCallback;
++
++  NAN_DEPRECATED NAN_INLINE v8::Local<v8::String> NanSymbol(
++      const char* data, int length = -1) {
++    return v8::String::NewSymbol(data, length);
++  }
++
++  template<typename T>
++  NAN_INLINE v8::Local<T> NanNew() {
++    return v8::Local<T>::New(T::New());
++  }
++
++  template<typename T>
++  NAN_INLINE v8::Local<T> NanNew(v8::Handle<T> arg) {
++    return v8::Local<T>::New(arg);
++  }
++
++  template<typename T>
++  NAN_INLINE v8::Local<v8::Signature> NanNew(
++      v8::Handle<v8::FunctionTemplate> receiver
++    , int argc
++    , v8::Handle<v8::FunctionTemplate> argv[] = 0) {
++    return v8::Signature::New(receiver, argc, argv);
++  }
++
++  template<typename T>
++  NAN_INLINE v8::Local<v8::FunctionTemplate> NanNew(
++      NanFunctionCallback callback
++    , v8::Handle<v8::Value> data = v8::Handle<v8::Value>()
++    , v8::Handle<v8::Signature> signature = v8::Handle<v8::Signature>()) {
++    return T::New(callback, data, signature);
++  }
++
++  template<typename T>
++  NAN_INLINE v8::Local<T> NanNew(const v8::Persistent<T> &arg) {
++    return v8::Local<T>::New(arg);
++  }
++
++  template<typename T, typename P>
++  NAN_INLINE v8::Local<T> NanNew(P arg) {
++    return v8::Local<T>::New(T::New(arg));
++  }
++
++  template<typename T, typename P>
++  NAN_INLINE v8::Local<T> NanNew(P arg, int length) {
++    return v8::Local<T>::New(T::New(arg, length));
++  }
++
++  template<typename T>
++  NAN_INLINE v8::Local<v8::RegExp> NanNew(
++      v8::Handle<v8::String> pattern, v8::RegExp::Flags flags) {
++    return v8::RegExp::New(pattern, flags);
++  }
++
++  template<typename T>
++  NAN_INLINE v8::Local<v8::RegExp> NanNew(
++      v8::Local<v8::String> pattern, v8::RegExp::Flags flags) {
++    return v8::RegExp::New(pattern, flags);
++  }
++
++  template<typename T, typename P>
++  NAN_INLINE v8::Local<v8::RegExp> NanNew(
++      v8::Handle<v8::String> pattern, v8::RegExp::Flags flags) {
++    return v8::RegExp::New(pattern, flags);
++  }
++
++  template<typename T, typename P>
++  NAN_INLINE v8::Local<v8::RegExp> NanNew(
++      v8::Local<v8::String> pattern, v8::RegExp::Flags flags) {
++    return v8::RegExp::New(pattern, flags);
++  }
++
++  template<>
++  NAN_INLINE v8::Local<v8::Array> NanNew<v8::Array>() {
++    return v8::Array::New();
++  }
++
++  template<>
++  NAN_INLINE v8::Local<v8::Array> NanNew<v8::Array>(int length) {
++    return v8::Array::New(length);
++  }
++
++  template<>
++  NAN_INLINE v8::Local<v8::Date> NanNew<v8::Date>(double time) {
++    return v8::Date::New(time).As<v8::Date>();
++  }
++
++  template<>
++  NAN_INLINE v8::Local<v8::Date> NanNew<v8::Date>(int time) {
++    return v8::Date::New(time).As<v8::Date>();
++  }
++
++  typedef v8::Script NanUnboundScript;
++  typedef v8::Script NanBoundScript;
++
++  template<typename T, typename P>
++  NAN_INLINE v8::Local<T> NanNew(
++      P s
++    , const v8::ScriptOrigin& origin
++  ) {
++    return v8::Script::New(s, const_cast<v8::ScriptOrigin *>(&origin));
++  }
++
++  template<>
++  NAN_INLINE v8::Local<NanUnboundScript> NanNew<NanUnboundScript>(
++      v8::Local<v8::String> s
++  ) {
++    return v8::Script::New(s);
++  }
++
++  template<>
++  NAN_INLINE v8::Local<v8::BooleanObject> NanNew(bool value) {
++    return v8::BooleanObject::New(value).As<v8::BooleanObject>();
++  }
++
++  template<>
++  NAN_INLINE v8::Local<v8::StringObject>
++  NanNew<v8::StringObject, v8::Local<v8::String> >(
++      v8::Local<v8::String> value) {
++    return v8::StringObject::New(value).As<v8::StringObject>();
++  }
++
++  template<>
++  NAN_INLINE v8::Local<v8::StringObject>
++  NanNew<v8::StringObject, v8::Handle<v8::String> >(
++      v8::Handle<v8::String> value) {
++    return v8::StringObject::New(value).As<v8::StringObject>();
++  }
++
++  template<>
++  NAN_INLINE v8::Local<v8::NumberObject> NanNew<v8::NumberObject>(double val) {
++    return v8::NumberObject::New(val).As<v8::NumberObject>();
++  }
++
++  template<>
++  NAN_INLINE v8::Local<v8::Uint32> NanNew<v8::Uint32, int32_t>(int32_t val) {
++    return v8::Uint32::NewFromUnsigned(val)->ToUint32();
++  }
++
++  template<>
++  NAN_INLINE v8::Local<v8::Uint32> NanNew<v8::Uint32, uint32_t>(uint32_t val) {
++    return v8::Uint32::NewFromUnsigned(val)->ToUint32();
++  }
++
++  template<>
++  NAN_INLINE v8::Local<v8::Int32> NanNew<v8::Int32, int32_t>(int32_t val) {
++    return v8::Int32::New(val)->ToInt32();
++  }
++
++  template<>
++  NAN_INLINE v8::Local<v8::Int32> NanNew<v8::Int32, uint32_t>(uint32_t val) {
++    return v8::Int32::New(val)->ToInt32();
++  }
++
++  template<>
++  NAN_INLINE v8::Local<v8::String> NanNew<v8::String, uint8_t *>(
++      uint8_t *arg
++    , int length) {
++    int len = length;
++    if (len < 0) {
++      size_t temp = strlen(reinterpret_cast<const char *>(arg));
++      assert(temp <= INT_MAX && "too long string");
++      len = static_cast<int>(temp);
++    }
++    uint16_t *warg = new uint16_t[len];
++    for (int i = 0; i < len; i++) {
++      warg[i] = arg[i];
++    }
++    v8::Local<v8::String> retval = v8::String::New(warg, len);
++    delete[] warg;
++    return retval;
++  }
++
++  template<>
++  NAN_INLINE v8::Local<v8::String> NanNew<v8::String, const uint8_t *>(
++      const uint8_t *arg
++    , int length) {
++    int len = length;
++    if (len < 0) {
++      size_t temp = strlen(reinterpret_cast<const char *>(arg));
++      assert(temp <= INT_MAX && "too long string");
++      len = static_cast<int>(temp);
++    }
++    uint16_t *warg = new uint16_t[len];
++    for (int i = 0; i < len; i++) {
++      warg[i] = arg[i];
++    }
++    v8::Local<v8::String> retval = v8::String::New(warg, len);
++    delete[] warg;
++    return retval;
++  }
++
++  template<>
++  NAN_INLINE v8::Local<v8::String> NanNew<v8::String, uint8_t *>(uint8_t *arg) {
++    size_t temp = strlen(reinterpret_cast<char *>(arg));
++    assert(temp <= INT_MAX && "too long string");
++    int length = static_cast<int>(temp);
++    uint16_t *warg = new uint16_t[length];
++    for (int i = 0; i < length; i++) {
++      warg[i] = arg[i];
++    }
++
++    v8::Local<v8::String> retval = v8::String::New(warg, length);
++    delete[] warg;
++    return retval;
++  }
++
++  template<>
++  NAN_INLINE v8::Local<v8::String> NanNew<v8::String, const uint8_t *>(
++      const uint8_t *arg) {
++    size_t temp = strlen(reinterpret_cast<const char *>(arg));
++    assert(temp <= INT_MAX && "too long string");
++    int length = static_cast<int>(temp);
++    uint16_t *warg = new uint16_t[length];
++    for (int i = 0; i < length; i++) {
++      warg[i] = arg[i];
++    }
++    v8::Local<v8::String> retval = v8::String::New(warg, length);
++    delete[] warg;
++    return retval;
++  }
++
++  template<>
++  NAN_INLINE v8::Local<v8::String> NanNew<v8::String, std::string>(
++      std::string arg) {
++    return NanNew<v8::String>(arg.c_str(), arg.size());
++  }
++
++  template<>
++  NAN_INLINE v8::Local<v8::String> NanNew<v8::String>() {
++    return v8::String::Empty();
++  }
++
++  NAN_INLINE v8::Local<v8::String> NanNew(const char* arg, int length = -1) {
++    return NanNew<v8::String>(arg, length);
++  }
++
++  NAN_INLINE v8::Local<v8::String> NanNew(
++      const uint8_t* arg
++    , int length = -1) {
++    return NanNew<v8::String>(arg, length);
++  }
++
++  NAN_INLINE v8::Local<v8::String> NanNew(
++      const uint16_t* arg
++    , int length = -1) {
++    return NanNew<v8::String>(arg, length);
++  }
++
++  NAN_INLINE v8::Local<v8::String> NanNew(
++      std::string& arg) {
++    return NanNew<v8::String>(arg.c_str(), arg.size());
++  }
++
++  NAN_INLINE v8::Local<v8::Number> NanNew(double val) {
++    return NanNew<v8::Number>(val);
++  }
++
++  NAN_INLINE v8::Local<v8::Integer> NanNew(int val) {
++    return NanNew<v8::Integer>(val);
++  }
++
++  NAN_INLINE v8::Local<v8::Uint32> NanNew(unsigned int val) {
++    return NanNew<v8::Uint32>(val);
++  }
++
++  NAN_INLINE v8::Local<v8::Boolean> NanNew(bool val) {
++    return NanNew<v8::Boolean>(val);
++  }
++
++  NAN_INLINE v8::Local<v8::String> NanNew(
++      v8::String::ExternalStringResource *resource) {
++    return v8::String::NewExternal(resource);
++  }
++
++  NAN_INLINE v8::Local<v8::String> NanNew(
++      v8::String::ExternalAsciiStringResource *resource) {
++    return v8::String::NewExternal(resource);
++  }
++
++# define NanScope() v8::HandleScope scope
++# define NanEscapableScope() v8::HandleScope scope
++# define NanEscapeScope(val) scope.Close(val)
++# define NanLocker() v8::Locker locker
++# define NanUnlocker() v8::Unlocker unlocker
++# define NanReturnValue(value) return scope.Close(value)
++# define NanReturnUndefined() return v8::Undefined()
++# define NanReturnNull() return v8::Null()
++# define NanReturnEmptyString() return v8::String::Empty()
++# define NanObjectWrapHandle(obj) v8::Local<v8::Object>::New(obj->handle_)
++
++  NAN_INLINE v8::Local<v8::Primitive> NanUndefined() {
++    NanEscapableScope();
++    return NanEscapeScope(NanNew(v8::Undefined()));
++  }
++
++  NAN_INLINE v8::Local<v8::Primitive> NanNull() {
++    NanEscapableScope();
++    return NanEscapeScope(NanNew(v8::Null()));
++  }
++
++  NAN_INLINE v8::Local<v8::Boolean> NanTrue() {
++    NanEscapableScope();
++    return NanEscapeScope(NanNew(v8::True()));
++  }
++
++  NAN_INLINE v8::Local<v8::Boolean> NanFalse() {
++    NanEscapableScope();
++    return NanEscapeScope(NanNew(v8::False()));
++  }
++
++  NAN_INLINE int NanAdjustExternalMemory(int bc) {
++    return static_cast<int>(v8::V8::AdjustAmountOfExternalAllocatedMemory(bc));
++  }
++
++  NAN_INLINE void NanSetTemplate(
++      v8::Handle<v8::Template> templ
++    , const char *name
++    , v8::Handle<v8::Data> value) {
++    templ->Set(name, value);
++  }
++
++  NAN_INLINE void NanSetTemplate(
++      v8::Handle<v8::Template> templ
++    , v8::Handle<v8::String> name
++    , v8::Handle<v8::Data> value
++    , v8::PropertyAttribute attributes) {
++    templ->Set(name, value, attributes);
++  }
++
++  NAN_INLINE v8::Local<v8::Context> NanGetCurrentContext() {
++    return v8::Context::GetCurrent();
++  }
++
++  NAN_INLINE void* NanGetInternalFieldPointer(
++      v8::Handle<v8::Object> object
++    , int index) {
++    return object->GetPointerFromInternalField(index);
++  }
++
++  NAN_INLINE void NanSetInternalFieldPointer(
++      v8::Handle<v8::Object> object
++    , int index
++    , void* value) {
++    object->SetPointerInInternalField(index, value);
++  }
++
++  NAN_INLINE void NanAddGCEpilogueCallback(
++    v8::GCEpilogueCallback callback
++  , v8::GCType gc_type_filter = v8::kGCTypeAll) {
++    v8::V8::AddGCEpilogueCallback(callback, gc_type_filter);
++  }
++  NAN_INLINE void NanRemoveGCEpilogueCallback(
++    v8::GCEpilogueCallback callback) {
++    v8::V8::RemoveGCEpilogueCallback(callback);
++  }
++  NAN_INLINE void NanAddGCPrologueCallback(
++    v8::GCPrologueCallback callback
++  , v8::GCType gc_type_filter = v8::kGCTypeAll) {
++    v8::V8::AddGCPrologueCallback(callback, gc_type_filter);
++  }
++  NAN_INLINE void NanRemoveGCPrologueCallback(
++    v8::GCPrologueCallback callback) {
++    v8::V8::RemoveGCPrologueCallback(callback);
++  }
++  NAN_INLINE void NanGetHeapStatistics(
++    v8::HeapStatistics *heap_statistics) {
++    v8::V8::GetHeapStatistics(heap_statistics);
++  }
++
++  template<typename T>
++  NAN_INLINE void NanAssignPersistent(
++      v8::Persistent<T>& handle
++    , v8::Handle<T> obj) {
++      handle.Dispose();
++      handle = v8::Persistent<T>::New(obj);
++  }
++
++  template<typename T, typename P>
++  class _NanWeakCallbackData;
++
++  template<typename T, typename P>
++  struct _NanWeakCallbackInfo {
++    typedef void (*Callback)(const _NanWeakCallbackData<T, P> &data);
++    NAN_INLINE _NanWeakCallbackInfo(v8::Handle<T> handle, P* param, Callback cb)
++      : parameter(param)
++      , callback(cb)
++      , persistent(v8::Persistent<T>::New(handle)) { }
++
++    NAN_INLINE ~_NanWeakCallbackInfo() {
++      persistent.Dispose();
++      persistent.Clear();
++    }
++
++    P* const parameter;
++    Callback const callback;
++    v8::Persistent<T> persistent;
++  };
++
++  template<typename T, typename P>
++  class _NanWeakCallbackData {
++   public:
++    NAN_INLINE _NanWeakCallbackData(_NanWeakCallbackInfo<T, P> *info)
++      : info_(info) { }
++
++    NAN_INLINE v8::Local<T> GetValue() const {
++      return NanNew(info_->persistent);
++    }
++
++    NAN_INLINE P* GetParameter() const { return info_->parameter; }
++
++    NAN_INLINE bool IsNearDeath() const {
++      return info_->persistent.IsNearDeath();
++    }
++
++    NAN_INLINE void Revive() const;
++
++    NAN_INLINE _NanWeakCallbackInfo<T, P>* GetCallbackInfo() const {
++      return info_;
++    }
++
++    NAN_DEPRECATED NAN_INLINE void Dispose() const {
++    }
++
++   private:
++    _NanWeakCallbackInfo<T, P>* info_;
++  };
++
++  template<typename T, typename P>
++  static void _NanWeakPersistentDispatcher(
++      v8::Persistent<v8::Value> object, void *data) {
++    _NanWeakCallbackInfo<T, P>* info =
++        static_cast<_NanWeakCallbackInfo<T, P>*>(data);
++    _NanWeakCallbackData<T, P> wcbd(info);
++    info->callback(wcbd);
++    if (wcbd.IsNearDeath()) {
++      delete wcbd.GetCallbackInfo();
++    }
++  }
++
++  template<typename T, typename P>
++  NAN_INLINE void _NanWeakCallbackData<T, P>::Revive() const {
++      info_->persistent.MakeWeak(
++          info_
++        , &_NanWeakPersistentDispatcher<T, P>);
++  }
++
++  template<typename T, typename P>
++  NAN_INLINE _NanWeakCallbackInfo<T, P>* NanMakeWeakPersistent(
++    v8::Handle<T> handle
++  , P* parameter
++  , typename _NanWeakCallbackInfo<T, P>::Callback callback) {
++      _NanWeakCallbackInfo<T, P> *cbinfo =
++        new _NanWeakCallbackInfo<T, P>(handle, parameter, callback);
++      cbinfo->persistent.MakeWeak(
++          cbinfo
++        , &_NanWeakPersistentDispatcher<T, P>);
++      return cbinfo;
++  }
++
++# define NAN_WEAK_CALLBACK(name)                                               \
++    template<typename T, typename P>                                           \
++    static void name(const _NanWeakCallbackData<T, P> &data)
++
++# define _NAN_ERROR(fun, errmsg)                                               \
++    fun(v8::String::New(errmsg))
++
++# define _NAN_THROW_ERROR(fun, errmsg)                                         \
++    do {                                                                       \
++      NanScope();                                                              \
++      return v8::Local<v8::Value>::New(                                        \
++        v8::ThrowException(_NAN_ERROR(fun, errmsg)));                          \
++    } while (0);
++
++  NAN_INLINE v8::Local<v8::Value> NanError(const char* errmsg) {
++    return _NAN_ERROR(v8::Exception::Error, errmsg);
++  }
++
++  NAN_INLINE v8::Local<v8::Value> NanThrowError(const char* errmsg) {
++    _NAN_THROW_ERROR(v8::Exception::Error, errmsg);
++  }
++
++  NAN_INLINE v8::Local<v8::Value> NanThrowError(
++      v8::Handle<v8::Value> error
++  ) {
++    NanScope();
++    return v8::Local<v8::Value>::New(v8::ThrowException(error));
++  }
++
++  NAN_INLINE v8::Local<v8::Value> NanError(
++      const char *msg
++    , const int errorNumber
++  ) {
++    v8::Local<v8::Value> err = v8::Exception::Error(v8::String::New(msg));
++    v8::Local<v8::Object> obj = err.As<v8::Object>();
++    obj->Set(v8::String::New("code"), v8::Int32::New(errorNumber));
++    return err;
++  }
++
++  NAN_INLINE v8::Local<v8::Value> NanThrowError(
++      const char *msg
++    , const int errorNumber
++  ) {
++    return NanThrowError(NanError(msg, errorNumber));
++  }
++
++  NAN_INLINE v8::Local<v8::Value> NanTypeError(const char* errmsg) {
++    return _NAN_ERROR(v8::Exception::TypeError, errmsg);
++  }
++
++  NAN_INLINE v8::Local<v8::Value> NanThrowTypeError(
++      const char* errmsg
++  ) {
++    _NAN_THROW_ERROR(v8::Exception::TypeError, errmsg);
++  }
++
++  NAN_INLINE v8::Local<v8::Value> NanRangeError(
++      const char* errmsg
++  ) {
++    return _NAN_ERROR(v8::Exception::RangeError, errmsg);
++  }
++
++  NAN_INLINE v8::Local<v8::Value> NanThrowRangeError(
++      const char* errmsg
++  ) {
++    _NAN_THROW_ERROR(v8::Exception::RangeError, errmsg);
++  }
++
++  template<typename T>
++  NAN_INLINE void NanDisposePersistent(
++      v8::Persistent<T> &handle) {  // NOLINT(runtime/references)
++    handle.Dispose();
++    handle.Clear();
++  }
++
++  NAN_INLINE v8::Local<v8::Object> NanNewBufferHandle (
++      char *data
++    , size_t length
++    , node::Buffer::free_callback callback
++    , void *hint
++  ) {
++    return NanNew(
++        node::Buffer::New(data, length, callback, hint)->handle_);
++  }
++
++  NAN_INLINE v8::Local<v8::Object> NanNewBufferHandle (
++      const char *data
++    , uint32_t size
++  ) {
++#if NODE_MODULE_VERSION >= 0x000B
++    return NanNew(node::Buffer::New(data, size)->handle_);
++#else
++    return NanNew(
++      node::Buffer::New(const_cast<char*>(data), size)->handle_);
++#endif
++  }
++
++  NAN_INLINE v8::Local<v8::Object> NanNewBufferHandle (uint32_t size) {
++    return NanNew(node::Buffer::New(size)->handle_);
++  }
++
++  NAN_INLINE void FreeData(char *data, void *hint) {
++    delete[] data;
++  }
++
++  NAN_INLINE v8::Local<v8::Object> NanBufferUse(
++      char* data
++    , uint32_t size
++  ) {
++    return NanNew(
++        node::Buffer::New(data, size, FreeData, NULL)->handle_);
++  }
++
++  NAN_INLINE bool NanHasInstance(
++      v8::Persistent<v8::FunctionTemplate>& function_template
++    , v8::Handle<v8::Value> value
++  ) {
++    return function_template->HasInstance(value);
++  }
++
++  NAN_INLINE v8::Local<v8::Context> NanNewContextHandle(
++      v8::ExtensionConfiguration* extensions = NULL
++    , v8::Handle<v8::ObjectTemplate> tmpl = v8::Handle<v8::ObjectTemplate>()
++    , v8::Handle<v8::Value> obj = v8::Handle<v8::Value>()
++  ) {
++    v8::Persistent<v8::Context> ctx = v8::Context::New(extensions, tmpl, obj);
++    v8::Local<v8::Context> lctx = NanNew(ctx);
++    ctx.Dispose();
++    return lctx;
++  }
++
++  NAN_INLINE v8::Local<NanBoundScript> NanCompileScript(
++      v8::Local<v8::String> s
++    , const v8::ScriptOrigin& origin
++  ) {
++    return v8::Script::Compile(s, const_cast<v8::ScriptOrigin *>(&origin));
++  }
++
++  NAN_INLINE v8::Local<NanBoundScript> NanCompileScript(
++    v8::Local<v8::String> s
++  ) {
++    return v8::Script::Compile(s);
++  }
++
++  NAN_INLINE v8::Local<v8::Value> NanRunScript(v8::Handle<v8::Script> script) {
++    return script->Run();
++  }
++
++  NAN_INLINE v8::Local<v8::Value> NanMakeCallback(
++      v8::Handle<v8::Object> target
++    , v8::Handle<v8::Function> func
++    , int argc
++    , v8::Handle<v8::Value>* argv) {
++# if NODE_VERSION_AT_LEAST(0, 8, 0)
++    return NanNew(node::MakeCallback(target, func, argc, argv));
++# else
++    v8::TryCatch try_catch;
++    v8::Local<v8::Value> result = NanNew(func->Call(target, argc, argv));
++    if (try_catch.HasCaught()) {
++        node::FatalException(try_catch);
++    }
++    return result;
++# endif
++  }
++
++  NAN_INLINE v8::Local<v8::Value> NanMakeCallback(
++      v8::Handle<v8::Object> target
++    , v8::Handle<v8::String> symbol
++    , int argc
++    , v8::Handle<v8::Value>* argv) {
++# if NODE_VERSION_AT_LEAST(0, 8, 0)
++    return NanNew(node::MakeCallback(target, symbol, argc, argv));
++# else
++    v8::Local<v8::Function> callback = target->Get(symbol).As<v8::Function>();
++    return NanMakeCallback(target, callback, argc, argv);
++# endif
++  }
++
++  NAN_INLINE v8::Local<v8::Value> NanMakeCallback(
++      v8::Handle<v8::Object> target
++    , const char* method
++    , int argc
++    , v8::Handle<v8::Value>* argv) {
++# if NODE_VERSION_AT_LEAST(0, 8, 0)
++    return NanNew(node::MakeCallback(target, method, argc, argv));
++# else
++    return NanMakeCallback(target, NanNew(method), argc, argv);
++# endif
++  }
++
++  template<typename T>
++  NAN_INLINE void NanSetIsolateData(
++      v8::Isolate *isolate
++    , T *data
++  ) {
++      isolate->SetData(data);
++  }
++
++  template<typename T>
++  NAN_INLINE T *NanGetIsolateData(
++      v8::Isolate *isolate
++  ) {
++      return static_cast<T*>(isolate->GetData());
++  }
++
++  class NanAsciiString {
++   public:
++    NAN_INLINE explicit NanAsciiString(v8::Handle<v8::Value> from) {
++      v8::Local<v8::String> toStr = from->ToString();
++      int buf_size = toStr->Length() + 1;
++      buf = new char[buf_size];
++      size = toStr->WriteAscii(buf, 0, buf_size);
++    }
++
++    NAN_INLINE int Size() const {
++      return size;
++    }
++
++    NAN_INLINE char* operator*() { return buf; }
++
++    NAN_INLINE ~NanAsciiString() {
++      delete[] buf;
++    }
++
++   private:
++    char *buf;
++    int size;
++  };
++
++  class NanUtf8String {
++   public:
++    NAN_INLINE explicit NanUtf8String(v8::Handle<v8::Value> from) {
++      v8::Local<v8::String> toStr = from->ToString();
++      int buf_size = toStr->Utf8Length() + 1;
++      buf = new char[buf_size];
++      size = toStr->WriteUtf8(buf, buf_size);
++    }
++
++    NAN_INLINE int Size() const {
++      return size;
++    }
++
++    NAN_INLINE char* operator*() { return buf; }
++
++    NAN_INLINE ~NanUtf8String() {
++      delete[] buf;
++    }
++
++   private:
++    char *buf;
++    int size;
++  };
++
++  class NanUcs2String {
++   public:
++    NAN_INLINE explicit NanUcs2String(v8::Handle<v8::Value> from) {
++      v8::Local<v8::String> toStr = from->ToString();
++      int buf_size = toStr->Length() + 1;
++      buf = new uint16_t[buf_size];
++      size = toStr->Write(buf, 0, buf_size);
++    }
++
++    NAN_INLINE int Size() const {
++      return size;
++    }
++
++    NAN_INLINE uint16_t* operator*() { return buf; }
++
++    NAN_INLINE ~NanUcs2String() {
++      delete[] buf;
++    }
++
++   private:
++    uint16_t *buf;
++    int size;
++  };
++
++#endif  // NODE_MODULE_VERSION
++
++typedef void (*NanFreeCallback)(char *data, void *hint);
++
++#define NAN_METHOD(name) _NAN_METHOD_RETURN_TYPE name(_NAN_METHOD_ARGS)
++#define NAN_GETTER(name)                                                       \
++    _NAN_GETTER_RETURN_TYPE name(                                              \
++        v8::Local<v8::String> property                                         \
++      , _NAN_GETTER_ARGS)
++#define NAN_SETTER(name)                                                       \
++    _NAN_SETTER_RETURN_TYPE name(                                              \
++        v8::Local<v8::String> property                                         \
++      , v8::Local<v8::Value> value                                             \
++      , _NAN_SETTER_ARGS)
++#define NAN_PROPERTY_GETTER(name)                                              \
++    _NAN_PROPERTY_GETTER_RETURN_TYPE name(                                     \
++        v8::Local<v8::String> property                                         \
++      , _NAN_PROPERTY_GETTER_ARGS)
++#define NAN_PROPERTY_SETTER(name)                                              \
++    _NAN_PROPERTY_SETTER_RETURN_TYPE name(                                     \
++        v8::Local<v8::String> property                                         \
++      , v8::Local<v8::Value> value                                             \
++      , _NAN_PROPERTY_SETTER_ARGS)
++#define NAN_PROPERTY_ENUMERATOR(name)                                          \
++    _NAN_PROPERTY_ENUMERATOR_RETURN_TYPE name(_NAN_PROPERTY_ENUMERATOR_ARGS)
++#define NAN_PROPERTY_DELETER(name)                                             \
++    _NAN_PROPERTY_DELETER_RETURN_TYPE name(                                    \
++        v8::Local<v8::String> property                                         \
++      , _NAN_PROPERTY_DELETER_ARGS)
++#define NAN_PROPERTY_QUERY(name)                                               \
++    _NAN_PROPERTY_QUERY_RETURN_TYPE name(                                      \
++        v8::Local<v8::String> property                                         \
++      , _NAN_PROPERTY_QUERY_ARGS)
++# define NAN_INDEX_GETTER(name)                                                \
++    _NAN_INDEX_GETTER_RETURN_TYPE name(uint32_t index, _NAN_INDEX_GETTER_ARGS)
++#define NAN_INDEX_SETTER(name)                                                 \
++    _NAN_INDEX_SETTER_RETURN_TYPE name(                                        \
++        uint32_t index                                                         \
++      , v8::Local<v8::Value> value                                             \
++      , _NAN_INDEX_SETTER_ARGS)
++#define NAN_INDEX_ENUMERATOR(name)                                             \
++    _NAN_INDEX_ENUMERATOR_RETURN_TYPE name(_NAN_INDEX_ENUMERATOR_ARGS)
++#define NAN_INDEX_DELETER(name)                                                \
++    _NAN_INDEX_DELETER_RETURN_TYPE name(                                       \
++        uint32_t index                                                         \
++      , _NAN_INDEX_DELETER_ARGS)
++#define NAN_INDEX_QUERY(name)                                                  \
++    _NAN_INDEX_QUERY_RETURN_TYPE name(uint32_t index, _NAN_INDEX_QUERY_ARGS)
++
++class NanCallback {
++ public:
++  NanCallback() {
++    NanScope();
++    v8::Local<v8::Object> obj = NanNew<v8::Object>();
++    NanAssignPersistent(handle, obj);
++  }
++
++  explicit NanCallback(const v8::Handle<v8::Function> &fn) {
++    NanScope();
++    v8::Local<v8::Object> obj = NanNew<v8::Object>();
++    NanAssignPersistent(handle, obj);
++    SetFunction(fn);
++  }
++
++  ~NanCallback() {
++    if (handle.IsEmpty()) return;
++    NanDisposePersistent(handle);
++  }
++
++  NAN_INLINE void SetFunction(const v8::Handle<v8::Function> &fn) {
++    NanScope();
++    NanNew(handle)->Set(kCallbackIndex, fn);
++  }
++
++  NAN_INLINE v8::Local<v8::Function> GetFunction() const {
++    NanEscapableScope();
++    return NanEscapeScope(NanNew(handle)->Get(kCallbackIndex)
++        .As<v8::Function>());
++  }
++
++  NAN_INLINE bool IsEmpty() const {
++    NanScope();
++    return NanNew(handle)->Get(kCallbackIndex)->IsUndefined();
++  }
++
++  v8::Handle<v8::Value> Call(int argc, v8::Handle<v8::Value> argv[]) const {
++    NanEscapableScope();
++#if (NODE_MODULE_VERSION > 0x000B)  // 0.11.12+
++    v8::Isolate* isolate = v8::Isolate::GetCurrent();
++    v8::Local<v8::Function> callback = NanNew(handle)->
++        Get(kCallbackIndex).As<v8::Function>();
++    return NanEscapeScope(node::MakeCallback(
++        isolate
++      , isolate->GetCurrentContext()->Global()
++      , callback
++      , argc
++      , argv
++    ));
++#else
++#if NODE_VERSION_AT_LEAST(0, 8, 0)
++    v8::Local<v8::Function> callback = handle->
++        Get(kCallbackIndex).As<v8::Function>();
++    return NanEscapeScope(node::MakeCallback(
++        v8::Context::GetCurrent()->Global()
++      , callback
++      , argc
++      , argv
++    ));
++#else
++    v8::Local<v8::Function> callback = handle->
++        Get(kCallbackIndex).As<v8::Function>();
++    return NanEscapeScope(NanMakeCallback(
++        v8::Context::GetCurrent()->Global(), callback, argc, argv));
++#endif
++#endif
++  }
++
++ private:
++  v8::Persistent<v8::Object> handle;
++  static const uint32_t kCallbackIndex = 0;
++};
++
++/* abstract */ class NanAsyncWorker {
++ public:
++  explicit NanAsyncWorker(NanCallback *callback)
++      : callback(callback), errmsg_(NULL) {
++    request.data = this;
++
++    NanScope();
++    v8::Local<v8::Object> obj = NanNew<v8::Object>();
++    NanAssignPersistent(persistentHandle, obj);
++  }
++
++  virtual ~NanAsyncWorker() {
++    NanScope();
++
++    if (!persistentHandle.IsEmpty())
++      NanDisposePersistent(persistentHandle);
++    if (callback)
++      delete callback;
++    if (errmsg_)
++      delete[] errmsg_;
++  }
++
++  virtual void WorkComplete() {
++    NanScope();
++
++    if (errmsg_ == NULL)
++      HandleOKCallback();
++    else
++      HandleErrorCallback();
++    delete callback;
++    callback = NULL;
++  }
++
++  NAN_INLINE void SaveToPersistent(
++      const char *key, const v8::Local<v8::Object> &obj) {
++    v8::Local<v8::Object> handle = NanNew(persistentHandle);
++    handle->Set(NanNew<v8::String>(key), obj);
++  }
++
++  v8::Local<v8::Object> GetFromPersistent(const char *key) const {
++    NanEscapableScope();
++    v8::Local<v8::Object> handle = NanNew(persistentHandle);
++    return NanEscapeScope(handle->Get(NanNew(key)).As<v8::Object>());
++  }
++
++  virtual void Execute() = 0;
++
++  uv_work_t request;
++
++ protected:
++  v8::Persistent<v8::Object> persistentHandle;
++  NanCallback *callback;
++
++  virtual void HandleOKCallback() {
++    NanScope();
++
++    callback->Call(0, NULL);
++  }
++
++  virtual void HandleErrorCallback() {
++    NanScope();
++
++    v8::Local<v8::Value> argv[] = {
++        v8::Exception::Error(NanNew<v8::String>(ErrorMessage()))
++    };
++    callback->Call(1, argv);
++  }
++
++  void SetErrorMessage(const char *msg) {
++    if (errmsg_) {
++      delete[] errmsg_;
++    }
++
++    size_t size = strlen(msg) + 1;
++    errmsg_ = new char[size];
++    memcpy(errmsg_, msg, size);
++  }
++
++  const char* ErrorMessage() const {
++    return errmsg_;
++  }
++
++ private:
++  char *errmsg_;
++};
++
++NAN_INLINE void NanAsyncExecute (uv_work_t* req) {
++  NanAsyncWorker *worker = static_cast<NanAsyncWorker*>(req->data);
++  worker->Execute();
++}
++
++NAN_INLINE void NanAsyncExecuteComplete (uv_work_t* req) {
++  NanAsyncWorker* worker = static_cast<NanAsyncWorker*>(req->data);
++  worker->WorkComplete();
++  delete worker;
++}
++
++NAN_INLINE void NanAsyncQueueWorker (NanAsyncWorker* worker) {
++  uv_queue_work(
++      uv_default_loop()
++    , &worker->request
++    , NanAsyncExecute
++    , (uv_after_work_cb)NanAsyncExecuteComplete
++  );
++}
++
++//// Base 64 ////
++
++#define _nan_base64_encoded_size(size) ((size + 2 - ((size + 2) % 3)) / 3 * 4)
++
++// Doesn't check for padding at the end.  Can be 1-2 bytes over.
++NAN_INLINE size_t _nan_base64_decoded_size_fast(size_t size) {
++  size_t remainder = size % 4;
++
++  size = (size / 4) * 3;
++  if (remainder) {
++    if (size == 0 && remainder == 1) {
++      // special case: 1-byte input cannot be decoded
++      size = 0;
++    } else {
++      // non-padded input, add 1 or 2 extra bytes
++      size += 1 + (remainder == 3);
++    }
++  }
++
++  return size;
++}
++
++template<typename T>
++NAN_INLINE size_t _nan_base64_decoded_size(
++    const T* src
++  , size_t size
++) {
++  if (size == 0)
++    return 0;
++
++  if (src[size - 1] == '=')
++    size--;
++  if (size > 0 && src[size - 1] == '=')
++    size--;
++
++  return _nan_base64_decoded_size_fast(size);
++}
++
++// supports regular and URL-safe base64
++static const int _nan_unbase64_table[] = {
++    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -2, -1, -1, -2, -1, -1
++  , -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
++  , -2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, 62, -1, 63
++  , 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1
++  , -1,  0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14
++  , 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, 63
++  , -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40
++  , 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1
++  , -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
++  , -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
++  , -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
++  , -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
++  , -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
++  , -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
++  , -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
++  , -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
++};
++
++#define _nan_unbase64(x) _nan_unbase64_table[(uint8_t)(x)]
++
++template<typename T> static size_t _nan_base64_decode(
++    char* buf
++  , size_t len
++  , const T* src
++  , const size_t srcLen
++) {
++  char* dst = buf;
++  char* dstEnd = buf + len;
++  const T* srcEnd = src + srcLen;
++
++  while (src < srcEnd && dst < dstEnd) {
++    ptrdiff_t remaining = srcEnd - src;
++    char a, b, c, d;
++
++    while (_nan_unbase64(*src) < 0 && src < srcEnd) src++, remaining--;
++    if (remaining == 0 || *src == '=') break;
++    a = _nan_unbase64(*src++);
++
++    while (_nan_unbase64(*src) < 0 && src < srcEnd) src++, remaining--;
++    if (remaining <= 1 || *src == '=') break;
++    b = _nan_unbase64(*src++);
++
++    *dst++ = (a << 2) | ((b & 0x30) >> 4);
++    if (dst == dstEnd) break;
++
++    while (_nan_unbase64(*src) < 0 && src < srcEnd) src++, remaining--;
++    if (remaining <= 2 || *src == '=') break;
++    c = _nan_unbase64(*src++);
++
++    *dst++ = ((b & 0x0F) << 4) | ((c & 0x3C) >> 2);
++    if (dst == dstEnd) break;
++
++    while (_nan_unbase64(*src) < 0 && src < srcEnd) src++, remaining--;
++    if (remaining <= 3 || *src == '=') break;
++    d = _nan_unbase64(*src++);
++
++    *dst++ = ((c & 0x03) << 6) | (d & 0x3F);
++  }
++
++  return dst - buf;
++}
++
++//// HEX ////
++
++template<typename T> unsigned _nan_hex2bin(T c) {
++  if (c >= '0' && c <= '9') return c - '0';
++  if (c >= 'A' && c <= 'F') return 10 + (c - 'A');
++  if (c >= 'a' && c <= 'f') return 10 + (c - 'a');
++  return static_cast<unsigned>(-1);
++}
++
++template<typename T> static size_t _nan_hex_decode(
++    char* buf
++  , size_t len
++  , const T* src
++  , const size_t srcLen
++) {
++  size_t i;
++  for (i = 0; i < len && i * 2 + 1 < srcLen; ++i) {
++    unsigned a = _nan_hex2bin(src[i * 2 + 0]);
++    unsigned b = _nan_hex2bin(src[i * 2 + 1]);
++    if (!~a || !~b) return i;
++    buf[i] = a * 16 + b;
++  }
++
++  return i;
++}
++
++static bool _NanGetExternalParts(
++    v8::Handle<v8::Value> val
++  , const char** data
++  , size_t* len
++) {
++  if (node::Buffer::HasInstance(val)) {
++    *data = node::Buffer::Data(val.As<v8::Object>());
++    *len = node::Buffer::Length(val.As<v8::Object>());
++    return true;
++  }
++
++  assert(val->IsString());
++  v8::Local<v8::String> str = NanNew(val.As<v8::String>());
++
++  if (str->IsExternalAscii()) {
++    const v8::String::ExternalAsciiStringResource* ext;
++    ext = str->GetExternalAsciiStringResource();
++    *data = ext->data();
++    *len = ext->length();
++    return true;
++
++  } else if (str->IsExternal()) {
++    const v8::String::ExternalStringResource* ext;
++    ext = str->GetExternalStringResource();
++    *data = reinterpret_cast<const char*>(ext->data());
++    *len = ext->length();
++    return true;
++  }
++
++  return false;
++}
++
++namespace Nan {
++  enum Encoding {ASCII, UTF8, BASE64, UCS2, BINARY, HEX, BUFFER};
++}
++
++/* NAN_DEPRECATED */ NAN_INLINE void* _NanRawString(
++    v8::Handle<v8::Value> from
++  , enum Nan::Encoding encoding
++  , size_t *datalen
++  , void *buf
++  , size_t buflen
++  , int flags
++) {
++  NanScope();
++
++  size_t sz_;
++  size_t term_len = !(flags & v8::String::NO_NULL_TERMINATION);
++  char *data = NULL;
++  size_t len;
++  bool is_extern = _NanGetExternalParts(
++      from
++    , const_cast<const char**>(&data)
++    , &len);
++
++  if (is_extern && !term_len) {
++    NanSetPointerSafe(datalen, len);
++    return data;
++  }
++
++  v8::Local<v8::String> toStr = from->ToString();
++
++  char *to = static_cast<char *>(buf);
++
++  switch (encoding) {
++    case Nan::ASCII:
++#if NODE_MODULE_VERSION < 0x000C
++      sz_ = toStr->Length();
++      if (to == NULL) {
++        to = new char[sz_ + term_len];
++      } else {
++        assert(buflen >= sz_ + term_len && "too small buffer");
++      }
++      NanSetPointerSafe<size_t>(
++          datalen
++        , toStr->WriteAscii(to, 0, static_cast<int>(sz_ + term_len), flags));
++      return to;
++#endif
++    case Nan::BINARY:
++    case Nan::BUFFER:
++      sz_ = toStr->Length();
++      if (to == NULL) {
++        to = new char[sz_ + term_len];
++      } else {
++        assert(buflen >= sz_ + term_len && "too small buffer");
++      }
++#if NODE_MODULE_VERSION < 0x000C
++      {
++        uint16_t* twobytebuf = new uint16_t[sz_ + term_len];
++
++        size_t len = toStr->Write(twobytebuf, 0,
++          static_cast<int>(sz_ + term_len), flags);
++
++        for (size_t i = 0; i < sz_ + term_len && i < len + term_len; i++) {
++          unsigned char *b = reinterpret_cast<unsigned char*>(&twobytebuf[i]);
++          to[i] = *b;
++        }
++
++        NanSetPointerSafe<size_t>(datalen, len);
++
++        delete[] twobytebuf;
++        return to;
++      }
++#else
++      NanSetPointerSafe<size_t>(
++        datalen,
++        toStr->WriteOneByte(
++            reinterpret_cast<uint8_t *>(to)
++          , 0
++          , static_cast<int>(sz_ + term_len)
++          , flags));
++      return to;
++#endif
++    case Nan::UTF8:
++      sz_ = toStr->Utf8Length();
++      if (to == NULL) {
++        to = new char[sz_ + term_len];
++      } else {
++        assert(buflen >= sz_ + term_len && "too small buffer");
++      }
++      NanSetPointerSafe<size_t>(
++          datalen
++        , toStr->WriteUtf8(to, static_cast<int>(sz_ + term_len)
++            , NULL, flags)
++          - term_len);
++      return to;
++    case Nan::BASE64:
++      {
++        v8::String::Value value(toStr);
++        sz_ = _nan_base64_decoded_size(*value, value.length());
++        if (to == NULL) {
++          to = new char[sz_ + term_len];
++        } else {
++          assert(buflen >= sz_ + term_len);
++        }
++        NanSetPointerSafe<size_t>(
++            datalen
++          , _nan_base64_decode(to, sz_, *value, value.length()));
++        if (term_len) {
++          to[sz_] = '\0';
++        }
++        return to;
++      }
++    case Nan::UCS2:
++      {
++        sz_ = toStr->Length();
++        if (to == NULL) {
++          to = new char[(sz_ + term_len) * 2];
++        } else {
++          assert(buflen >= (sz_ + term_len) * 2 && "too small buffer");
++        }
++
++        int bc = 2 * toStr->Write(
++            reinterpret_cast<uint16_t *>(to)
++          , 0
++          , static_cast<int>(sz_ + term_len)
++          , flags);
++        NanSetPointerSafe<size_t>(datalen, bc);
++        return to;
++      }
++    case Nan::HEX:
++      {
++        v8::String::Value value(toStr);
++        sz_ = value.length();
++        assert(!(sz_ & 1) && "bad hex data");
++        if (to == NULL) {
++          to = new char[sz_ / 2 + term_len];
++        } else {
++          assert(buflen >= sz_ / 2 + term_len && "too small buffer");
++        }
++        NanSetPointerSafe<size_t>(
++            datalen
++          , _nan_hex_decode(to, sz_ / 2, *value, value.length()));
++      }
++      if (term_len) {
++        to[sz_ / 2] = '\0';
++      }
++      return to;
++    default:
++      assert(0 && "unknown encoding");
++  }
++  return to;
++}
++
++NAN_DEPRECATED NAN_INLINE void* NanRawString(
++    v8::Handle<v8::Value> from
++  , enum Nan::Encoding encoding
++  , size_t *datalen
++  , void *buf
++  , size_t buflen
++  , int flags
++) {
++  return _NanRawString(from, encoding, datalen, buf, buflen, flags);
++}
++
++
++NAN_DEPRECATED NAN_INLINE char* NanCString(
++    v8::Handle<v8::Value> from
++  , size_t *datalen
++  , char *buf = NULL
++  , size_t buflen = 0
++  , int flags = v8::String::NO_OPTIONS
++) {
++    return static_cast<char *>(
++      _NanRawString(from, Nan::UTF8, datalen, buf, buflen, flags)
++    );
++}
++
++NAN_INLINE void NanSetPrototypeTemplate(
++    v8::Local<v8::FunctionTemplate> templ
++  , const char *name
++  , v8::Handle<v8::Data> value
++) {
++  NanSetTemplate(templ->PrototypeTemplate(), name, value);
++}
++
++NAN_INLINE void NanSetPrototypeTemplate(
++    v8::Local<v8::FunctionTemplate> templ
++  , v8::Handle<v8::String> name
++  , v8::Handle<v8::Data> value
++  , v8::PropertyAttribute attributes
++) {
++  NanSetTemplate(templ->PrototypeTemplate(), name, value, attributes);
++}
++
++NAN_INLINE void NanSetInstanceTemplate(
++    v8::Local<v8::FunctionTemplate> templ
++  , const char *name
++  , v8::Handle<v8::Data> value
++) {
++  NanSetTemplate(templ->InstanceTemplate(), name, value);
++}
++
++NAN_INLINE void NanSetInstanceTemplate(
++    v8::Local<v8::FunctionTemplate> templ
++  , v8::Handle<v8::String> name
++  , v8::Handle<v8::Data> value
++  , v8::PropertyAttribute attributes
++) {
++  NanSetTemplate(templ->InstanceTemplate(), name, value, attributes);
++}
++
++#endif  // NAN_H_
diff --git a/lang/node-serialport/Makefile b/lang/node-serialport/Makefile
new file mode 100644 (file)
index 0000000..ad4b7af
--- /dev/null
@@ -0,0 +1,62 @@
+#
+# Copyright (C) 2014 Arduino LLC
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NPM_NAME:=serialport
+PKG_NAME:=node-$(PKG_NPM_NAME)
+PKG_VERSION:=1.4.6
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NPM_NAME)-$(PKG_VERSION).tgz
+PKG_SOURCE_URL:=http://registry.npmjs.org/$(PKG_NPM_NAME)/-/
+PKG_MD5SUM:=1eb21082e0aa676b8350182a60230808
+
+PKG_BUILD_DEPENDS:=node
+PKG_NODE_VERSION:=0.12.7
+
+PKG_MAINTAINER:=John Crispin <blogic@openwrt.org>
+PKG_LICENSE:=Custom
+PKG_LICENSE_FILE:=LICENSE
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/node-serialport
+  DEPENDS:=+node
+  SUBMENU:=Node.js
+  SECTION:=lang
+  CATEGORY:=Languages
+  TITLE:=Node.js package to access serial ports for reading and writing
+  URL:=https://www.npmjs.org/package/serialport
+endef
+
+define Package/node-serialport/description
+ Node.js package to access serial ports for reading and writing OR Welcome your robotic JavaScript overlords. Better yet, program them!
+endef
+
+define Build/Prepare
+       /bin/tar xzf $(DL_DIR)/$(PKG_SOURCE) -C $(PKG_BUILD_DIR) --strip-components 1
+       $(Build/Patch)
+endef
+
+EXTRA_LDFLAGS="-L$(TOOLCHAIN_DIR)/lib/ -Wl,-rpath-link $(TOOLCHAIN_DIR)/lib/" \
+
+define Build/Compile
+       $(MAKE_FLAGS) \
+       npm_config_arch=$(CONFIG_ARCH) \
+       npm_config_nodedir=$(BUILD_DIR)/node-v$(PKG_NODE_VERSION)/ \
+       PREFIX="$(PKG_INSTALL_DIR)/usr/" \
+       $(STAGING_DIR_HOST)/bin/npm install -g $(PKG_BUILD_DIR)
+endef
+
+define Package/node-serialport/install
+       mkdir -p $(1)/usr/lib/node/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/node_modules/* $(1)/usr/lib/node/
+endef
+
+$(eval $(call BuildPackage,node-serialport))
+
diff --git a/lang/node-serialport/patches/package.json.patch b/lang/node-serialport/patches/package.json.patch
new file mode 100644 (file)
index 0000000..a20c6a5
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/package.json     2014-05-02 12:02:02.940515727 +0200
++++ b/package.json     2014-05-02 12:03:08.488512762 +0200
+@@ -69,7 +71,7 @@
+     "serialportterm": "./bin/serialportTerminal.js"
+   },
+   "scripts": {
+-    "install": "node-pre-gyp install --fallback-to-build",
++    "install": "node-pre-gyp reinstall --build-from-source --target_arch=${npm_config_arch}",
+     "test": "grunt --verbose"
+   }
+ }
diff --git a/lang/node/Makefile b/lang/node/Makefile
new file mode 100644 (file)
index 0000000..243c8a5
--- /dev/null
@@ -0,0 +1,74 @@
+#
+# Copyright (C) 2006-2011 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=node
+PKG_VERSION:=v0.12.7
+PKG_RELEASE:=1
+
+PKG_SOURCE:=node-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://nodejs.org/dist/${PKG_VERSION}
+
+HOST_BUILD_DEPENDS:=python/host
+PKG_BUILD_DEPENDS:=python/host
+PKG_INSTALL:=1
+PKG_USE_MIPS16:=0
+
+PKG_MAINTAINER:=John Crispin <blogic@openwrt.org>
+PKG_LICENSE:=
+
+include $(INCLUDE_DIR)/host-build.mk
+include $(INCLUDE_DIR)/package.mk
+
+define Package/node
+  SECTION:=lang
+  CATEGORY:=Languages
+  SUBMENU:=Node.js
+  TITLE:=Node.js is a platform built on Chrome's JavaScript runtime
+  URL:=http://nodejs.org/
+  DEPENDS:=+libpthread +librt +libstdcpp +libopenssl +libuv
+endef
+
+define Package/node/description
+  Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. Node.js uses
+  an event-driven, non-blocking I/O model that makes it lightweight and efficient. Node.js'
+   package ecosystem, npm, is the largest ecosystem of open source libraries in the world.
+endef
+
+CONFIGURE_ARGS= \
+       --dest-cpu=$(CONFIG_ARCH) \
+       --dest-os=linux \
+       --without-snapshot \
+       --shared-zlib \
+       --shared-openssl \
+       --prefix=/usr
+
+HOST_CONFIGURE_VARS:=
+HOST_CONFIGURE_ARGS:= \
+       --dest-os=linux \
+       --without-snapshot \
+       --prefix=$(STAGING_DIR_HOST)/
+
+HOST_CONFIGURE_CMD:=python ./configure
+
+define Build/InstallDev
+       $(INSTALL_DIR) $(1)/usr/include
+       $(CP) $(PKG_INSTALL_DIR)/usr/include/* $(1)/usr/include/
+endef
+
+define Package/node/install
+       mkdir -p $(1)/usr/bin $(1)/usr/lib/node_modules/npm/{bin,lib,node_modules}
+       $(CP) $(PKG_INSTALL_DIR)/usr/bin/{node,npm} $(1)/usr/bin/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/node_modules/npm/{package.json,LICENSE,cli.js} $(1)/usr/lib/node_modules/npm
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/node_modules/npm/bin/npm-cli.js $(1)/usr/lib/node_modules/npm/bin
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/node_modules/npm/lib/* $(1)/usr/lib/node_modules/npm/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/node_modules/npm/node_modules/* $(1)/usr/lib/node_modules/npm/node_modules/
+endef
+
+$(eval $(call HostBuild))
+$(eval $(call BuildPackage,node))
diff --git a/lang/node/patches/001-mips-no-fpu.patch b/lang/node/patches/001-mips-no-fpu.patch
new file mode 100644 (file)
index 0000000..5bf8142
--- /dev/null
@@ -0,0 +1,15 @@
+--- a/deps/v8/build/toolchain.gypi
++++ b/deps/v8/build/toolchain.gypi
+@@ -50,10 +50,10 @@
+     'arm_test_noprobe%': 'off',
+     # Similar to vfp but on MIPS.
+-    'v8_can_use_fpu_instructions%': 'true',
++    'v8_can_use_fpu_instructions%': 'false',
+     # Similar to the ARM hard float ABI but on MIPS.
+-    'v8_use_mips_abi_hardfloat%': 'true',
++    'v8_use_mips_abi_hardfloat%': 'false',
+     # Default arch variant for MIPS.
+     'mips_arch_variant%': 'r2',
diff --git a/lang/node/patches/002-addr_info.patch b/lang/node/patches/002-addr_info.patch
new file mode 100644 (file)
index 0000000..78225db
--- /dev/null
@@ -0,0 +1,10 @@
+--- a/deps/uv/src/unix/getaddrinfo.c
++++ b/deps/uv/src/unix/getaddrinfo.c
+@@ -99,6 +99,7 @@
+   int err;
+   req = container_of(w, uv_getaddrinfo_t, work_req);
++   req->hints->ai_flags &= ~AI_V4MAPPED;
+   err = getaddrinfo(req->hostname, req->service, req->hints, &req->addrinfo);
+   req->retcode = uv__getaddrinfo_translate_error(err);
+ }
diff --git a/lang/node/patches/003-path.patch b/lang/node/patches/003-path.patch
new file mode 100644 (file)
index 0000000..723fe9d
--- /dev/null
@@ -0,0 +1,12 @@
+--- a/lib/module.js
++++ b/lib/module.js
+@@ -512,7 +512,8 @@
+     var homeDir = process.env.HOME;
+   }
+-  var paths = [path.resolve(process.execPath, '..', '..', 'lib', 'node')];
++  var paths = [path.resolve(process.execPath, '..', '..', 'lib', 'node'),
++    path.resolve(process.execPath, '..', '..', 'lib', 'node_modules')];
+   if (homeDir) {
+     paths.unshift(path.resolve(homeDir, '.node_libraries'));
index b23c7833ff486c05c25bca17d18d406e309c4401..51af315141a9f42d9cbd36f09a84911593d4cd0b 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=perl-cgi
-PKG_VERSION:=4.21
+PKG_VERSION:=4.22
 PKG_RELEASE:=1
 
 PKG_SOURCE_URL:=http://www.cpan.org/authors/id/L/LE/LEEJO
 PKG_SOURCE:=CGI-$(PKG_VERSION).tar.gz
-PKG_MD5SUM:=78b427bfee2dd21b2e612b5bfe5f038c
+PKG_MD5SUM:=8289aa6f2cba9589134d517f4a25da9e
 
 PKG_LICENSE:=GPL Artistic-2.0
 PKG_MAINTAINER:=Marcel Denia <naoir@gmx.net>
diff --git a/lang/perl-device-usb/Makefile b/lang/perl-device-usb/Makefile
new file mode 100644 (file)
index 0000000..0a2c737
--- /dev/null
@@ -0,0 +1,73 @@
+#
+# Copyright (C) 2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=perl-device-usb
+PKG_VERSION:=0.36
+PKG_RELEASE:=1
+
+PKG_SOURCE_URL:=http://www.cpan.org/authors/id/G/GW/GWADEJ/
+PKG_SOURCE:=Device-USB-$(PKG_VERSION).tar.gz
+PKG_MD5SUM:=aa91bee777f7ed7a18225a84f8795344
+
+PKG_LICENSE:=GPL-1.0+ Artistic-1.0-Perl
+PKG_MAINTAINER:=Marcel Denia <naoir@gmx.net>
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/perl/Device-USB-$(PKG_VERSION)
+PKG_BUILD_DEPENDS:=perl-inline-c/host
+
+include $(INCLUDE_DIR)/package.mk
+include ../perl/perlmod.mk
+
+define Package/perl-device-usb
+  SUBMENU:=Perl
+  SECTION:=lang
+  CATEGORY:=Languages
+  TITLE:=libusb library wrapper
+  URL:=http://search.cpan.org/dist/Device-USB/
+  DEPENDS:=perl +libusb-compat +perl-inline +perl-inline-c +perlbase-essential +perlbase-test
+endef
+
+# Device::USB will generate a second Makefile.PL to build it's native code
+# using Inline::C under _Inline/. The goal here is to prevent Inline::C from
+# running that one automatically, as we need to supply a bunch of overrides via
+# perlmod/Configure.
+# _INLINE_C_NO_COMPILE_ is an OpenWRT-specific environment variable to Inline::C
+# that does just that.
+define Build/Configure
+       $(call perlmod/Configure,,)
+       
+       # Prepare a library directory where we can link againt lusb-0.1(as
+       # opposed to -lusb) to avoid confusion at runtime
+       mkdir $(PKG_BUILD_DIR)/syslib
+       $(LN) $(STAGING_DIR)/usr/lib/libusb.so $(PKG_BUILD_DIR)/syslib/libusb-0.1.so
+       
+       # Generate _Inline
+       $(call perlmod/Compile,config,LIBUSB_LIBDIR=$(PKG_BUILD_DIR)/syslib \
+                                     _INLINE_C_NO_COMPILE_=1 \
+                                     _INLINE_C_SYSTEM_TYPEMAP_=$(STAGING_DIR)/usr/lib/perl5/$(PERL_VERSION)/ExtUtils/typemap)
+       $(call perlmod/Compile,dynamic,_INLINE_C_NO_COMPILE_=1)
+       
+       # Configure _Inline
+       $(call perlmod/Configure,,,$(PKG_BUILD_DIR)/_Inline/build/Device/USB)
+       
+       # Prevent re-configuring Inline code
+       sed 's/^dynamic :: D.*$$$$//' -i $(PKG_BUILD_DIR)/Makefile
+endef
+
+define Build/Compile
+       $(call perlmod/Compile,,,$(PKG_BUILD_DIR)/_Inline/build/Device/USB)
+       $(call perlmod/Compile,,)
+endef
+
+define Package/perl-device-usb/install
+        $(call perlmod/Install,$(1),Device auto/Device)
+endef
+
+
+$(eval $(call BuildPackage,perl-device-usb))
diff --git a/lang/perl-device-usb/README.patches b/lang/perl-device-usb/README.patches
new file mode 100644 (file)
index 0000000..66ece00
--- /dev/null
@@ -0,0 +1,8 @@
+This package contains some patches taken directly from Debian Jessie(stable at 
+the time of writing). 
+Namely, these are:
+- 100-fix_buildsystem.patch
+- 110-just_assume_libusb_is_there.diff
+
+The other patches are specific to OpenWRT, fixing bugs and resolving conflicts
+where necessary.
\ No newline at end of file
diff --git a/lang/perl-device-usb/patches/100-fix_buildsystem.patch b/lang/perl-device-usb/patches/100-fix_buildsystem.patch
new file mode 100644 (file)
index 0000000..5201894
--- /dev/null
@@ -0,0 +1,20 @@
+Description: Ignore files we do not want installed.
+Forwarded: not-needed
+Author: Tim Retout <diocles@debian.org>
+Reviewed-by: gregor herrmann <gregoa@debian.org>
+Last-Update: 2013-10-28
+
+--- a/Makefile.PL
++++ b/Makefile.PL
+@@ -2,6 +2,11 @@
+ use warnings;
+ use Inline::MakeMaker;
++sub MY::libscan {
++      return if ($_[1] eq 'USB.pm' or $_[1] eq 'dump_usb.pl');
++      return $_[1];
++}
++
+ if($^O eq 'MSWin32')
+ {
+     if(!$ENV{LIBUSB_LIBDIR} or !$ENV{LIBUSB_INCDIR})
diff --git a/lang/perl-device-usb/patches/110-just_assume_libusb_is_there.diff b/lang/perl-device-usb/patches/110-just_assume_libusb_is_there.diff
new file mode 100644 (file)
index 0000000..9365eb4
--- /dev/null
@@ -0,0 +1,30 @@
+Subject: Just assume libusb is out there
+ Makefile.PL should not try to check for libusb in a given list of directories
+ as the compiler might look in other places as well.
+Origin: vendor
+Bug-Debian: http://bugs.debian.org/639677
+Forwarded: not-needed
+From: Ansgar Burchardt <ansgar@debian.org>
+Reviewed-by: gregor herrmann <gregoa@debian.org>
+Last-Update: 2013-10-28
+
+--- libdevice-usb-perl.orig/Makefile.PL
++++ libdevice-usb-perl/Makefile.PL
+@@ -21,7 +21,7 @@
+     }
+ }
+-unless(header_found())
++unless(1 || header_found())
+ {
+     die <<"END";
+ ERROR: Can't find usb.h header.
+@@ -36,7 +36,7 @@
+ END
+ }
+-unless(lib_found())
++unless(1 || lib_found())
+ {
+     die <<"END";
+ ERROR: Can't find libusb library.
diff --git a/lang/perl-device-usb/patches/120-use_libusb_0_1.patch b/lang/perl-device-usb/patches/120-use_libusb_0_1.patch
new file mode 100644 (file)
index 0000000..7d43e73
--- /dev/null
@@ -0,0 +1,13 @@
+--- a/lib/Device/USB.pm
++++ b/lib/Device/USB.pm
+@@ -9,8 +9,8 @@ use Inline (
+         C => "DATA",
+         ($ENV{LIBUSB_LIBDIR}
+             ? ( LIBS => "-L\"$ENV{LIBUSB_LIBDIR}\" " .
+-                        ($^O eq 'MSWin32' ? ' -llibusb -L\"$ENV{WINDDK}\\lib\\crt\\i386\" -lmsvcrt ' : '-lusb') )
+-            : ( LIBS => '-lusb', )
++                        ($^O eq 'MSWin32' ? ' -llibusb -L\"$ENV{WINDDK}\\lib\\crt\\i386\" -lmsvcrt ' : '-lusb-0.1') )
++            : ( LIBS => '-lusb-0.1', )
+         ),
+         ($ENV{LIBUSB_INCDIR} ? ( INC => "-I\"$ENV{LIBUSB_INCDIR}\"" ) : () ),
+         NAME => 'Device::USB',
diff --git a/lang/perl-device-usb/patches/130-provide-proper-library-paths.patch b/lang/perl-device-usb/patches/130-provide-proper-library-paths.patch
new file mode 100644 (file)
index 0000000..3fce75a
--- /dev/null
@@ -0,0 +1,13 @@
+--- a/lib/Device/USB.pm
++++ b/lib/Device/USB.pm
+@@ -8,8 +8,8 @@ use Carp;
+ use Inline (
+         C => "DATA",
+         ($ENV{LIBUSB_LIBDIR}
+-            ? ( LIBS => "-L\"$ENV{LIBUSB_LIBDIR}\" " .
+-                        ($^O eq 'MSWin32' ? ' -llibusb -L\"$ENV{WINDDK}\\lib\\crt\\i386\" -lmsvcrt ' : '-lusb-0.1') )
++            ? ( LIBS => "-L$ENV{LIBUSB_LIBDIR} " .
++                        ($^O eq 'MSWin32' ? ' -llibusb -L$ENV{WINDDK}\\lib\\crt\\i386 -lmsvcrt ' : '-lusb-0.1') )
+             : ( LIBS => '-lusb-0.1', )
+         ),
+         ($ENV{LIBUSB_INCDIR} ? ( INC => "-I\"$ENV{LIBUSB_INCDIR}\"" ) : () ),
diff --git a/lang/perl-device-usb/patches/140-avoid-libusb-name-conflicts.patch b/lang/perl-device-usb/patches/140-avoid-libusb-name-conflicts.patch
new file mode 100644 (file)
index 0000000..55e5cc3
--- /dev/null
@@ -0,0 +1,219 @@
+--- a/lib/Device/USB.pm
++++ b/lib/Device/USB.pm
+@@ -15,6 +15,7 @@ use Inline (
+         ($ENV{LIBUSB_INCDIR} ? ( INC => "-I\"$ENV{LIBUSB_INCDIR}\"" ) : () ),
+         NAME => 'Device::USB',
+         VERSION => '0.36',
++        PREFIX => 'deviceusb_',
+    );
+ Inline->init();
+@@ -540,74 +541,74 @@ unsigned DeviceUSBDebugLevel()
+     return debugLevel;
+ }
+-void libusb_init()
++void deviceusb_libusb_init()
+ {
+     usb_init();
+ }
+-int libusb_find_busses()
++int deviceusb_libusb_find_busses()
+ {
+     return usb_find_busses();
+ }
+-int libusb_find_devices()
++int deviceusb_libusb_find_devices()
+ {
+     return usb_find_devices();
+ }
+-void *libusb_get_busses()
++void *deviceusb_libusb_get_busses()
+ {
+     return usb_get_busses();
+ }
+-void *libusb_open(void *dev)
++void *deviceusb_libusb_open(void *dev)
+ {
+     return usb_open( (struct usb_device*)dev );
+ }
+-int libusb_close(void *dev)
++int deviceusb_libusb_close(void *dev)
+ {
+     return usb_close((usb_dev_handle *)dev);
+ }
+-int libusb_set_configuration(void *dev, int configuration)
++int deviceusb_libusb_set_configuration(void *dev, int configuration)
+ {
+     if(DeviceUSBDebugLevel())
+     {
+-        printf( "libusb_set_configuration( %d )\n", configuration );
++        printf( "deviceusb_libusb_set_configuration( %d )\n", configuration );
+     }
+     return usb_set_configuration((usb_dev_handle *)dev, configuration);
+ }
+-int libusb_set_altinterface(void *dev, int alternate)
++int deviceusb_libusb_set_altinterface(void *dev, int alternate)
+ {
+     if(DeviceUSBDebugLevel())
+     {
+-        printf( "libusb_set_altinterface( %d )\n", alternate );
++        printf( "deviceusb_libusb_set_altinterface( %d )\n", alternate );
+     }
+     return usb_set_altinterface((usb_dev_handle *)dev, alternate);
+ }
+-int libusb_clear_halt(void *dev, unsigned int ep)
++int deviceusb_libusb_clear_halt(void *dev, unsigned int ep)
+ {
+     if(DeviceUSBDebugLevel())
+     {
+-        printf( "libusb_clear_halt( %d )\n", ep );
++        printf( "deviceusb_libusb_clear_halt( %d )\n", ep );
+     }
+     return usb_clear_halt((usb_dev_handle *)dev, ep);
+ }
+-int libusb_reset(void *dev)
++int deviceusb_libusb_reset(void *dev)
+ {
+     return usb_reset((usb_dev_handle *)dev);
+ }
+-int libusb_get_driver_np(void *dev, int interface, char *name, unsigned int namelen)
++int deviceusb_libusb_get_driver_np(void *dev, int interface, char *name, unsigned int namelen)
+ {
+     int ret = 0;
+     if(DeviceUSBDebugLevel())
+     {
+-        printf( "libusb_get_driver_np( %d )\n", interface );
++        printf( "deviceusb_libusb_get_driver_np( %d )\n", interface );
+     }
+ #if LIBUSB_HAS_GET_DRIVER_NP
+     ret = usb_get_driver_np((usb_dev_handle *)dev, interface, name, namelen);
+@@ -618,11 +619,11 @@ int libusb_get_driver_np(void *dev, int
+ #endif
+ }
+-int libusb_detach_kernel_driver_np(void *dev, int interface)
++int deviceusb_libusb_detach_kernel_driver_np(void *dev, int interface)
+ {
+     if(DeviceUSBDebugLevel())
+     {
+-        printf( "libusb_detach_kernel_driver_np( %d )\n", interface );
++        printf( "deviceusb_libusb_detach_kernel_driver_np( %d )\n", interface );
+     }
+ #if LIBUSB_HAS_DETACH_KERNEL_DRIVER_NP
+     return usb_detach_kernel_driver_np((usb_dev_handle *)dev, interface);
+@@ -631,25 +632,25 @@ int libusb_detach_kernel_driver_np(void
+ #endif
+ }
+-int libusb_claim_interface(void *dev, int interface)
++int deviceusb_libusb_claim_interface(void *dev, int interface)
+ {
+     if(DeviceUSBDebugLevel())
+     {
+-        printf( "libusb_claim_interface( %d )\n", interface );
++        printf( "deviceusb_libusb_claim_interface( %d )\n", interface );
+     }
+     return usb_claim_interface((usb_dev_handle *)dev, interface);
+ }
+-int libusb_release_interface(void *dev, int interface)
++int deviceusb_libusb_release_interface(void *dev, int interface)
+ {
+     if(DeviceUSBDebugLevel())
+     {
+-        printf( "libusb_release_interface( %d )\n", interface );
++        printf( "deviceusb_libusb_release_interface( %d )\n", interface );
+     }
+     return usb_release_interface((usb_dev_handle *)dev, interface);
+ }
+-void libusb_control_msg(void *dev, int requesttype, int request, int value, int index, char *bytes, int size, int timeout)
++void deviceusb_libusb_control_msg(void *dev, int requesttype, int request, int value, int index, char *bytes, int size, int timeout)
+ {
+     int i = 0;
+     int retval = 0;
+@@ -658,7 +659,7 @@ void libusb_control_msg(void *dev, int r
+     if(DeviceUSBDebugLevel())
+     {
+-        printf( "libusb_control_msg( %#04x, %#04x, %#04x, %#04x, %p, %d, %d )\n",
++        printf( "deviceusb_libusb_control_msg( %#04x, %#04x, %#04x, %#04x, %p, %d, %d )\n",
+             requesttype, request, value, index, bytes, size, timeout
+         );
+         /* maybe need to add support for printing the bytes string. */
+@@ -691,54 +692,54 @@ void libusb_control_msg(void *dev, int r
+     Inline_Stack_Done;
+ }
+-int libusb_get_string(void *dev, int index, int langid, char *buf, size_t buflen)
++int deviceusb_libusb_get_string(void *dev, int index, int langid, char *buf, size_t buflen)
+ {
+     if(DeviceUSBDebugLevel())
+     {
+-        printf( "libusb_get_string( %d, %d, %p, %lu )\n",
++        printf( "deviceusb_libusb_get_string( %d, %d, %p, %lu )\n",
+             index, langid, buf, (unsigned long)buflen
+         );
+     }
+     return usb_get_string((usb_dev_handle *)dev, index, langid, buf, buflen);
+ }
+-int libusb_get_string_simple(void *dev, int index, char *buf, size_t buflen)
++int deviceusb_libusb_get_string_simple(void *dev, int index, char *buf, size_t buflen)
+ {
+     if(DeviceUSBDebugLevel())
+     {
+-        printf( "libusb_get_string_simple( %d, %p, %lu )\n",
++        printf( "deviceusb_libusb_get_string_simple( %d, %p, %lu )\n",
+             index, buf, (unsigned long)buflen
+         );
+     }
+     return usb_get_string_simple((usb_dev_handle *)dev, index, buf, buflen);
+ }
+-int libusb_get_descriptor(void *dev, unsigned char type, unsigned char index, char *buf, int size)
++int deviceusb_libusb_get_descriptor(void *dev, unsigned char type, unsigned char index, char *buf, int size)
+ {
+     return usb_get_descriptor((usb_dev_handle *)dev, type, index, buf, size);
+ }
+-int libusb_get_descriptor_by_endpoint(void *dev, int ep, unsigned char type, unsigned char index, char *buf, int size)
++int deviceusb_libusb_get_descriptor_by_endpoint(void *dev, int ep, unsigned char type, unsigned char index, char *buf, int size)
+ {
+     return usb_get_descriptor_by_endpoint((usb_dev_handle *)dev, ep, type, index, buf, size);
+ }
+-int libusb_bulk_write(void *dev, int ep, char *bytes, int size, int timeout)
++int deviceusb_libusb_bulk_write(void *dev, int ep, char *bytes, int size, int timeout)
+ {
+     return usb_bulk_write((usb_dev_handle *)dev, ep, bytes, size, timeout);
+ }
+-int libusb_bulk_read(void *dev, int ep, char *bytes, int size, int timeout)
++int deviceusb_libusb_bulk_read(void *dev, int ep, char *bytes, int size, int timeout)
+ {
+     return usb_bulk_read((usb_dev_handle *)dev, ep, bytes, size, timeout);
+ }
+-int libusb_interrupt_write(void *dev, int ep, char *bytes, int size, int timeout)
++int deviceusb_libusb_interrupt_write(void *dev, int ep, char *bytes, int size, int timeout)
+ {
+     return usb_interrupt_write((usb_dev_handle *)dev, ep, bytes, size, timeout);
+ }
+-int libusb_interrupt_read(void *dev, int ep, char *bytes, int size, int timeout)
++int deviceusb_libusb_interrupt_read(void *dev, int ep, char *bytes, int size, int timeout)
+ {
+     return usb_interrupt_read((usb_dev_handle *)dev, ep, bytes, size, timeout);
+ }
diff --git a/lang/perl-file-sharedir-install/Makefile b/lang/perl-file-sharedir-install/Makefile
new file mode 100644 (file)
index 0000000..d107d70
--- /dev/null
@@ -0,0 +1,64 @@
+#
+# Copyright (C) 2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=perl-file-sharedir-install
+PKG_VERSION:=0.10
+PKG_RELEASE:=1
+
+PKG_SOURCE_URL:=http://www.cpan.org/authors/id/G/GW/GWYN
+PKG_SOURCE:=File-ShareDir-Install-$(PKG_VERSION).tar.gz
+PKG_MD5SUM:=37fb7fa72ce7184516dd022aba62f524
+
+PKG_LICENSE:=GPL-1.0+ Artistic-1.0-Perl
+PKG_MAINTAINER:=Marcel Denia <naoir@gmx.net>
+
+HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/perl/File-ShareDir-Install-$(PKG_VERSION)
+HOST_BUILD_DEPENDS:=perl/host
+PKG_BUILD_DIR:=$(BUILD_DIR)/perl/File-ShareDir-Install-$(PKG_VERSION)
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/host-build.mk
+include ../perl/perlmod.mk
+
+define Package/perl-file-sharedir-install
+  SUBMENU:=Perl
+  SECTION:=lang
+  CATEGORY:=Languages
+  TITLE:=Install read-only data files
+  URL:=http://search.cpan.org/dist/File-ShareDir-Install/
+  DEPENDS:=perl +perlbase-essential +perlbase-extutils +perlbase-file +perlbase-io
+endef
+
+define Host/Configure
+        $(call perlmod/host/Configure,,,)
+endef
+
+define Host/Compile
+        $(call perlmod/host/Compile,,)
+endef
+
+define Host/Install
+        $(call perlmod/host/Install,$(1),)
+endef
+
+define Build/Configure
+        $(call perlmod/Configure,,)
+endef
+
+define Build/Compile
+        $(call perlmod/Compile,,)
+endef
+
+define Package/perl-file-sharedir-install/install
+        $(call perlmod/Install,$(1),File auto/File)
+endef
+
+
+$(eval $(call BuildPackage,perl-file-sharedir-install))
+$(eval $(call HostBuild))
index f0bc5cb4436f044875e4b484213bcadf0bc0acd1..2b90e2add65d940fd6b41f51367863d731c3daca 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=perl-http-message
-PKG_VERSION:=6.10
+PKG_VERSION:=6.11
 PKG_RELEASE:=1
 
 PKG_SOURCE_URL:=http://www.cpan.org/authors/id/E/ET/ETHER
 PKG_SOURCE:=HTTP-Message-$(PKG_VERSION).tar.gz
-PKG_MD5SUM:=b8a68ce1898691c536714eeae3f963d4
+PKG_MD5SUM:=4ed7add10daea3ab30abfeab6d03872f
 
 PKG_LICENSE:=GPL-1.0+ Artistic-1.0-Perl
 PKG_MAINTAINER:=Marcel Denia <naoir@gmx.net>
@@ -29,7 +29,7 @@ define Package/perl-http-message
   CATEGORY:=Languages
   TITLE:=HTTP style messages
   URL:=http://search.cpan.org/dist/HTTP-Message/
-  DEPENDS:=perl +perl-encode-locale +perl-http-date +perl-io-html +perl-lwp-mediatypes +perl-uri +perlbase-compress +perlbase-encode +perlbase-essential +perlbase-io +perlbase-mime
+  DEPENDS:=perl +perl-encode-locale +perl-http-date +perl-io-html +perl-lwp-mediatypes +perl-uri +perlbase-base +perlbase-compress +perlbase-encode +perlbase-essential +perlbase-io +perlbase-mime
 endef
 
 define Build/Configure
index a9671380287693ee1afb2a654d20b32603349f3b..9a41da61603c0257405856ff325c76b3accb80b4 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=perl-http-server-simple
-PKG_VERSION:=0.50
+PKG_VERSION:=0.51
 PKG_RELEASE:=1
 
-PKG_SOURCE_URL:=http://www.cpan.org/authors/id/F/FA/FALCONE
+PKG_SOURCE_URL:=http://www.cpan.org/authors/id/B/BP/BPS
 PKG_SOURCE:=HTTP-Server-Simple-$(PKG_VERSION).tar.gz
-PKG_MD5SUM:=09704b016bc276ca78df6ad4a7d36af6
+PKG_MD5SUM:=ef736daddc7a32a29207fa4ed5f5d62e
 
 PKG_LICENSE:=GPL-1.0+ Artistic-1.0-Perl
 PKG_MAINTAINER:=Marcel Denia <naoir@gmx.net>
diff --git a/lang/perl-inline-c/Makefile b/lang/perl-inline-c/Makefile
new file mode 100644 (file)
index 0000000..52826d2
--- /dev/null
@@ -0,0 +1,65 @@
+#
+# Copyright (C) 2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=perl-inline-c
+PKG_VERSION:=0.76
+PKG_RELEASE:=1
+
+PKG_SOURCE_URL:=http://www.cpan.org/authors/id/I/IN/INGY
+PKG_SOURCE:=Inline-C-$(PKG_VERSION).tar.gz
+PKG_MD5SUM:=c0fbfdd058075c9271a1384c822c9a87
+
+PKG_LICENSE:=GPL-1.0+ Artistic-1.0-Perl
+PKG_MAINTAINER:=Marcel Denia <naoir@gmx.net>
+
+HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/perl/Inline-C-$(PKG_VERSION)
+HOST_BUILD_DEPENDS:=perl/host perl-inline/host perl-parse-recdescent/host perl-file-sharedir-install/host
+PKG_BUILD_DIR:=$(BUILD_DIR)/perl/Inline-C-$(PKG_VERSION)
+PKG_BUILD_DEPENDS:=perl-inline/host perl-parse-recdescent/host perl-file-sharedir-install/host
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/host-build.mk
+include ../perl/perlmod.mk
+
+define Package/perl-inline-c
+  SUBMENU:=Perl
+  SECTION:=lang
+  CATEGORY:=Languages
+  TITLE:=C Language Support for Inline
+  URL:=http://search.cpan.org/dist/Inline-C/
+  DEPENDS:=perl +perl-inline +perl-parse-recdescent +perlbase-config +perlbase-cwd +perlbase-data +perlbase-essential +perlbase-extutils +perlbase-file +perlbase-if
+endef
+
+define Host/Configure
+        $(call perlmod/host/Configure,,,)
+endef
+
+define Host/Compile
+        $(call perlmod/host/Compile,,)
+endef
+
+define Host/Install
+        $(call perlmod/host/Install,$(1),)
+endef
+
+define Build/Configure
+        $(call perlmod/Configure,,)
+endef
+
+define Build/Compile
+        $(call perlmod/Compile,,)
+endef
+
+define Package/perl-inline-c/install
+        $(call perlmod/Install,$(1),Inline auto/Inline)
+endef
+
+
+$(eval $(call BuildPackage,perl-inline-c))
+$(eval $(call HostBuild))
diff --git a/lang/perl-inline-c/patches/100-inline_c-no_compile_hack.patch b/lang/perl-inline-c/patches/100-inline_c-no_compile_hack.patch
new file mode 100644 (file)
index 0000000..dcfe2bb
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/lib/Inline/C.pm
++++ b/lib/Inline/C.pm
+@@ -361,7 +361,7 @@ sub build {
+     $o->call('write_XS', 'Build Glue 1');
+     $o->call('write_Inline_headers', 'Build Glue 2');
+     $o->call('write_Makefile_PL', 'Build Glue 3');
+-    $o->call('compile', 'Build Compile');
++    $o->call('compile', 'Build Compile') unless $ENV{'_INLINE_C_NO_COMPILE_'};
+     if (IS_WIN32) {
+         $lockfh->release or die "releasemutex $file: $^E";
+     }
diff --git a/lang/perl-inline-c/patches/110-inline_c-make_system_typemap_overridable.patch b/lang/perl-inline-c/patches/110-inline_c-make_system_typemap_overridable.patch
new file mode 100644 (file)
index 0000000..b2ae09e
--- /dev/null
@@ -0,0 +1,46 @@
+--- a/lib/Inline/C.pm
++++ b/lib/Inline/C.pm
+@@ -438,22 +438,28 @@ sub get_maps {
+     print STDERR "get_maps Stage\n" if $o->{CONFIG}{BUILD_NOISY};
+     my $typemap = '';
+     my $file;
+-    $file = File::Spec->catfile(
+-        $Config::Config{installprivlib},
+-        "ExtUtils",
+-        "typemap",
+-    );
+-    $typemap = $file if -f $file;
+-    $file = File::Spec->catfile(
+-        $Config::Config{privlibexp}
+-        ,"ExtUtils","typemap"
+-    );
+-    $typemap = $file
+-        if (not $typemap and -f $file);
+-    warn "Can't find the default system typemap file"
+-        if (not $typemap and $^W);
++    
++    unless ($ENV{'_INLINE_C_SYSTEM_TYPEMAP_'}) {
++        $file = File::Spec->catfile(
++            $Config::Config{installprivlib},
++            "ExtUtils",
++            "typemap",
++        );
++        $typemap = $file if -f $file;
++        $file = File::Spec->catfile(
++            $Config::Config{privlibexp}
++            ,"ExtUtils","typemap"
++        );
++        $typemap = $file
++            if (not $typemap and -f $file);
++        warn "Can't find the default system typemap file"
++            if (not $typemap and $^W);
+-    unshift(@{$o->{ILSM}{MAKEFILE}{TYPEMAPS}}, $typemap) if $typemap;
++        unshift(@{$o->{ILSM}{MAKEFILE}{TYPEMAPS}}, $typemap) if $typemap;
++    }
++    else {
++        unshift(@{$o->{ILSM}{MAKEFILE}{TYPEMAPS}}, $ENV{'_INLINE_C_SYSTEM_TYPEMAP_'});
++    }
+     if (not $o->UNTAINT) {
+         require FindBin;
diff --git a/lang/perl-inline/Makefile b/lang/perl-inline/Makefile
new file mode 100644 (file)
index 0000000..a120705
--- /dev/null
@@ -0,0 +1,65 @@
+#
+# Copyright (C) 2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=perl-inline
+PKG_VERSION:=0.80
+PKG_RELEASE:=1
+
+PKG_SOURCE_URL:=http://www.cpan.org/authors/id/I/IN/INGY
+PKG_SOURCE:=Inline-$(PKG_VERSION).tar.gz
+PKG_MD5SUM:=510bbac46e727bcaf240b7feac2646c9
+
+PKG_LICENSE:=GPL-1.0+ Artistic-1.0-Perl
+PKG_MAINTAINER:=Marcel Denia <naoir@gmx.net>
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/perl/Inline-$(PKG_VERSION)
+HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/perl/Inline-$(PKG_VERSION)
+
+HOST_BUILD_DEPENDS:=perl/host
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/host-build.mk
+include ../perl/perlmod.mk
+
+define Package/perl-inline
+  SUBMENU:=Perl
+  SECTION:=lang
+  CATEGORY:=Languages
+  TITLE:=Write subroutines in other languages
+  URL:=http://search.cpan.org/dist/Inline/
+  DEPENDS:=perl +perlbase-base +perlbase-config +perlbase-cwd +perlbase-digest +perlbase-essential +perlbase-fcntl +perlbase-file
+endef
+
+define Build/Configure
+        $(call perlmod/Configure,,)
+endef
+
+define Build/Compile
+        $(call perlmod/Compile,,)
+endef
+
+define Package/perl-inline/install
+        $(call perlmod/Install,$(1),Inline.pm Inline auto/Inline)
+endef
+
+define Host/Configure
+       $(call perlmod/host/Configure,,,)
+endef
+
+define Host/Compile
+       $(call perlmod/host/Compile,,)
+endef
+
+define Host/Install
+       $(call perlmod/host/Install,$(1),)
+endef
+
+
+$(eval $(call BuildPackage,perl-inline))
+$(eval $(call HostBuild))
diff --git a/lang/perl-parse-recdescent/Makefile b/lang/perl-parse-recdescent/Makefile
new file mode 100644 (file)
index 0000000..bbeff7b
--- /dev/null
@@ -0,0 +1,64 @@
+#
+# Copyright (C) 2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=perl-parse-recdescent
+PKG_VERSION:=1.967013
+PKG_RELEASE:=1
+
+PKG_SOURCE_URL:=http://www.cpan.org/authors/id/J/JT/JTBRAUN
+PKG_SOURCE:=Parse-RecDescent-$(PKG_VERSION).tar.gz
+PKG_MD5SUM:=98f582240556a4a92e5d57e480f9d39d
+
+PKG_LICENSE:=GPL-1.0+ Artistic-1.0-Perl
+PKG_MAINTAINER:=Marcel Denia <naoir@gmx.net>
+
+HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/perl/Parse-RecDescent-$(PKG_VERSION)
+HOST_BUILD_DEPENDS:=perl/host
+PKG_BUILD_DIR:=$(BUILD_DIR)/perl/Parse-RecDescent-$(PKG_VERSION)
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/host-build.mk
+include ../perl/perlmod.mk
+
+define Package/perl-parse-recdescent
+  SUBMENU:=Perl
+  SECTION:=lang
+  CATEGORY:=Languages
+  TITLE:=Generate Recursive-Descent Parsers
+  URL:=http://search.cpan.org/dist/Parse-RecDescent/
+  DEPENDS:=perl +perlbase-essential +perlbase-test +perlbase-text
+endef
+
+define Host/Configure
+        $(call perlmod/host/Configure,,,)
+endef
+
+define Host/Compile
+        $(call perlmod/host/Compile,,)
+endef
+
+define Host/Install
+        $(call perlmod/host/Install,$(1),)
+endef
+
+define Build/Configure
+        $(call perlmod/Configure,,)
+endef
+
+define Build/Compile
+        $(call perlmod/Compile,,)
+endef
+
+define Package/perl-parse-recdescent/install
+        $(call perlmod/Install,$(1),Parse auto/Parse)
+endef
+
+
+$(eval $(call BuildPackage,perl-parse-recdescent))
+$(eval $(call HostBuild))
index 3259861b436c7d2b848d5d482a3269b5e0046d03..4906ee227b0993093f28d458905612de5ae833e5 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=perl
 PKG_VERSION:=5.22.0
-PKG_RELEASE:=0
+PKG_RELEASE:=4
 
 PKG_SOURCE_URL:=ftp://ftp.cpan.org/pub/CPAN/src/5.0 \
                http://www.cpan.org/src/5.0 \
@@ -36,35 +36,17 @@ HOST_BUILD_PARALLEL:=1
 
 # Variables used during configuration/build
 HOST_PERL_PREFIX:=$(STAGING_DIR_HOST)/usr
-ifneq ($(CONFIG_USE_GLIBC),)
-       EXTRA_LIBS:=bsd
-       EXTRA_LIBDIRS:=$(STAGING_DIR)/lib
-endif
 
 # Filter -g3, it will break Compress-Raw-Zlib
 TARGET_CFLAGS_PERL:=$(patsubst -g3,-g,$(TARGET_CFLAGS))
 TARGET_CPPFLAGS_PERL:=$(patsubst -g3,-g,$(TARGET_CPPFLAGS))
 
-# Handle threading
-ifdef CONFIG_PERL_THREADS
-       PERL_CONFIG_SUFFIX:=-mt
-
-       # uclibc doesn't provide crypt_r(). Enable crypt() usage for glibc builds only
-       ifdef CONFIG_USE_GLIBC
-               CRYPT_R_PROTO:=REENTRANT_PROTO_B_CCS
-               CRYPT:=define
-       else
-               CRYPT_R_PROTO:=0
-               CRYPT:=undef
-       endif
-endif
-
 # A list of disabled tests
 # ExtUtils tests are disabled for now as we don't support building
 # native extensions on the target machine at the moment
 PERL_DISABLEDTESTS:=cpan/ExtUtils-Constant cpan/ExtUtils-MakeMaker
 # We're on Linux, so don't even package them
-PERL_DISABLEDTESTS+=cpan/Win32API-File cpan/Win32 ext/VMS-DCLsym ext/VMS-Filespec ext/VMS-Stdio ext/Win32CORE
+PERL_DISABLEDTESTS+=cpan/Win32API-File cpan/Win32 ext/VMS-DCLsym ext/VMS-Filespec ext/VMS-Stdio ext/Win32CORE os2/
 # NDBM and ODBM not supported
 PERL_DISABLEDTESTS+=ext/NDBM_File ext/ODBM_File
 
@@ -110,45 +92,24 @@ endef
 
 # Target perl
 define Build/Configure
-       sed \
-               -e 's!%%CC%%!$(TARGET_CC)!g' \
-               -e 's!%%CFLAGS%%!$(TARGET_CFLAGS_PERL) $(TARGET_CPPFLAGS_PERL)!g' \
-               -e 's!%%CPP%%!$(TARGET_CROSS)gcc -E!g' \
-               -e 's!%%AR%%!$(TARGET_CROSS)ar!g' \
-               -e 's!%%LD%%!$(TARGET_CROSS)gcc!g' \
-               -e 's!%%LDFLAGS%%!-rdynamic $(TARGET_LDFLAGS)!g' \
-               -e 's!%%LIBDIRS%%!$(STAGING_DIR)/lib $(STAGING_DIR)/usr/lib!g' \
-               -e 's!%%INCDIRS%%!$(STAGING_DIR)/include $(STAGING_DIR)/usr/include!g' \
-               -e 's!%%EXTRA_PERLLIBS%%!$(EXTRA_LIBS:%=-l%)!g' \
-               -e 's!%%EXTRA_PERLLIBDIRS%%!$(EXTRA_LIBDIRS:%=-L%)!g' \
-               -e 's!%%IPV6%%!$(if $($(CONFIG_IPV6)),define,undef)!g' \
-               -e 's!%%HOSTMINIPERL%%!$(HOST_PERL_PREFIX)/bin/perl!g' \
-               -e 's!%%CRYPT_R_PROTO%%!$(CRYPT_R_PROTO)!g' \
-               -e 's!%%CRYPT%%!$(CRYPT)!g' \
-               -e 's!%%HOSTGENERATE%%!$(HOST_PERL_PREFIX)/bin/generate_uudmap!g' \
-               files/config.sh-$(patsubst i386,i486,$(ARCH))$(PERL_CONFIG_SUFFIX).in \
-               > $(PKG_BUILD_DIR)/config.sh
-  ifeq ($(CONFIG_USE_MUSL),y)
-       sed -i \
-               -e "s,\(d_stdio_ptr_lval=\)'define',\1'undef',g" \
-               -e "s,\(d_stdio_ptr_lval_sets_cnt=\)'define',\1'undef',g" \
-               -e "s,\(d_stdiobase=\)'define',\1'undef',g" \
-               -e "s,\(d_stdstdio=\)'define',\1'undef',g" \
-               -e "s,\(d_getnetbyname_r=\)'define',\1'undef',g" \
-               -e "s,\(getprotobyname_r=\)'define',\1'undef',g" \
-               -e "s,\(getpwent_r=\)'define',\1'undef',g" \
-               -e "s,\(getservent_r=\)'define',\1'undef',g" \
-               -e "s,\(gethostent_r=\)'define',\1'undef',g" \
-               -e "s,\(getnetent_r=\)'define',\1'undef',g" \
-               -e "s,\(getnetbyaddr_r=\)'define',\1'undef',g" \
-               -e "s,\(getprotoent_r=\)'define',\1'undef',g" \
-               -e "s,\(getprotobynumber_r=\)'define',\1'undef',g" \
-               -e "s,\(getgrent_r=\)'define',\1'undef',g" \
-               -e "s,\(i_fcntl=\)'undef',\1'define',g" \
-               -e "s,\(h_fcntl=\)'false',\1'true',g" \
-               -e "s,\(d_strerror_r=\)'define',\1'undef',g" \
-               $(PKG_BUILD_DIR)/config.sh
-  endif
+       $(PERL_CMD) files/perlconfig.pl -Dowrt:target_cc='$(TARGET_CC)' \
+                                       -Dowrt:target_cross='$(TARGET_CROSS)' \
+                                       -Dowrt:cflags='$(TARGET_CFLAGS_PERL) $(TARGET_CPPFLAGS_PERL)' \
+                                       -Dowrt:ldflags='-rdynamic $(TARGET_LDFLAGS)' \
+                                       -Dowrt:libc=$(CONFIG_LIBC) \
+                                       -Dowrt:ipv6=$(if $($(CONFIG_IPV6)),define,undef) \
+                                       -Dowrt:threads=$(if $(CONFIG_PERL_THREADS),yes,no) \
+                                       -Dowrt:staging_dir='$(STAGING_DIR)' \
+                                       -Dowrt:host_perl_prefix='$(HOST_PERL_PREFIX)' \
+                                       files/version.config \
+                                       files/base.config \
+                                       files/$(patsubst i386,i486,$(ARCH)).config \
+                                       files/architecture.config \
+                                       files/signal.config \
+                                       files/threads.config \
+                                       files/libc.config \
+                                       files/misc.config \
+                                       > $(PKG_BUILD_DIR)/config.sh
        (cd $(PKG_BUILD_DIR) && ./Configure -S)
        install -m 0644 $(PKG_BUILD_DIR)/config.h $(PKG_BUILD_DIR)/xconfig.h
 endef
@@ -192,6 +153,7 @@ define Package/perl-tests-common/install
        $(INSTALL_DIR) $(1)/$(PERL_TESTSDIR)
        $(INSTALL_DIR) $(1)/$(PERL_TESTSDIR)/Porting
        $(INSTALL_DIR) $(1)/$(PERL_TESTSDIR)/regen
+       $(INSTALL_DIR) $(1)/$(PERL_TESTSDIR)/lib
        $(INSTALL_DIR) $(1)/usr/lib/perl5/$(PERL_VERSION)/XS
        $(INSTALL_DIR) $(1)/usr/lib/perl5/$(PERL_VERSION)/auto/XS
        $(INSTALL_DIR) $(1)/usr/lib/perl5/$(PERL_VERSION)/unicore
@@ -206,6 +168,8 @@ define Package/perl-tests-common/install
        $(CP) $(PKG_BUILD_DIR)/lib/XS $(1)/usr/lib/perl5/$(PERL_VERSION)/
        $(CP) $(PKG_BUILD_DIR)/lib/auto/XS $(1)/usr/lib/perl5/$(PERL_VERSION)/auto
        $(CP) $(PKG_BUILD_DIR)/lib/vmsish.pm $(1)/usr/lib/perl5/$(PERL_VERSION)/
+       $(CP) $(PKG_BUILD_DIR)/lib/vmsish.t $(1)/$(PERL_TESTSDIR)/lib
+       $(CP) $(PKG_BUILD_DIR)/lib/Internals.t $(1)/$(PERL_TESTSDIR)/lib
        $(CP) $(PKG_BUILD_DIR)/lib/unicore/TestProp.pl $(1)/usr/lib/perl5/$(PERL_VERSION)/unicore
        $(CP) files/perl-run_tests.sh $(1)/$(PERL_TESTSDIR)/run_tests.sh
        sed \
diff --git a/lang/perl/README.patches b/lang/perl/README.patches
new file mode 100644 (file)
index 0000000..5f3b595
--- /dev/null
@@ -0,0 +1,9 @@
+The patches in this package are loosely sorted into the following categories:
+
+0xx - Bugfixes
+1xx - Cross-compile fixes
+3xx - Workarounds
+7xx - Testsuite fixes
+
+Feel free to add another one if your new patch doesn't seem to fit into an
+existing category.
\ No newline at end of file
diff --git a/lang/perl/files/README.config b/lang/perl/files/README.config
new file mode 100644 (file)
index 0000000..a7d14a7
--- /dev/null
@@ -0,0 +1,58 @@
+-- Perl configuration --
+
+Perl uses a huge configuration file, normally generated via the Configure script
+at build-time. This fails when cross-compiling though, so we need to supply our
+own.
+
+We're using perlconfig.pl to piece together the final configuration from a bunch
+of configuration files(all ending in .config). Please refer to perlconfig.pl's
+POD for information on usage and syntax.
+
+Throughout the files, you will see a bunch of references to private symbols with
+the prefix "owrt". These are used to control output in an effort to both
+simplify writing configuration files, as well as to provide switchable options
+to select the feature set of the resulting perl installation.
+
+The following will be a summary/quick reference of all private symbols we're
+currently using:
+
+Passed via architecture configuration file(mipsel.config, i486.config, ...)
+---------------------------------------------------------------------------
+Symbol              Values              Description
+owrt:bits           32/64               Target's native word length.
+owrt:endian         little/big          Target's endianness.
+owrt:arch           mipsel, i486, ...   Target's architecture name.
+owrt:sig_count      64/128              Number of signals the target
+                                        provides(NSIG - 1).
+owrt:sigs           *                   Symbolic names of the first 32 signals
+                                        this architecture provides, in numeric
+                                        order. Seperated by whitespaces.
+owrt:sig_name_extra *                   Symbolic names of any additional signals
+                                        this architecture provides after
+                                        owrt:sig_count. Seperated by
+                                        whitespaces.
+owrt:sig_num_extra  *                   Numeric values associated with the
+                                        signal names provided in
+                                        owrt:sig_name_extra. Seperated by
+                                        whitespaces.
+
+Passed via command line
+-----------------------
+Symbol                Values              Description
+owrt:libc             glibc/uclibc/musl   Which C library implementation is in
+                                          use.
+owrt:threads          yes/no              Whether to enable threading support.
+owrt:ipv6             define/undef        Whether to enable IPv6 support.
+owrt:target_cross     *                   Target architecture's host triplet.
+owrt:target_cc        *                   C compiler to use.
+owrt:cflags           *                   Additional C compiler flags.
+owrt:ldflags          *                   Additional linker flags.
+owrt:staging_dir      *                   Same as OpenWRT buildroot's
+                                          $(STAGING_DIR).
+owrt:host_perl_prefix *                   host-perl installation prefix.
+
+Passed via version.config
+-------------------------
+Symbol           Values              Description
+owrt:perllibpath *                   Path to perl library files, from the
+                                     target's point of view.
diff --git a/lang/perl/files/architecture.config b/lang/perl/files/architecture.config
new file mode 100644 (file)
index 0000000..cc97281
--- /dev/null
@@ -0,0 +1,121 @@
+alignbytes='8'
+
+($owrt:bits eq '32') {
+       ($owrt:endian eq 'little') {
+               byteorder='1234'
+       }
+       ($owrt:endian eq 'big') {
+               byteorder='4321'
+       }
+       
+       # Types
+       ivsize='4'
+       uvsize='4'
+       longsize='4'
+       longdblsize='8'
+       ptrsize='4'
+       
+       #quadkind='3'
+       #doublekind='3'
+       #longdblkind='0'
+       
+       i8type='signed char'
+       i16type='signed short'
+       i32type='signed long'
+       i64type='signed long long'
+       u32type='unsigned long'
+       u64type='unsigned long long'
+       quadtype='long long'
+       uquadtype='unsigned long long'
+       
+       sizesize='4'
+       
+       use64bitall='undef'
+       use64bitint='undef'
+       
+       uidformat='"lu"'
+       gidformat='"lu"'
+       
+       selectminbits='32'
+       
+       sGMTIME_max='2147483647'
+       sGMTIME_min='-2147483648'
+       sLOCALTIME_max='2147483647'
+       sLOCALTIME_min='-2147483648'
+       
+       sPRIi64='"Li"'
+       sPRIo64='"Lo"'
+       sPRIu64='"Lu"'
+       sPRIx64='"Lx"'
+       sPRId64='"Ld"'
+       
+       netdb_host_type='const void *'
+       nv_preserves_uv_bits='32'
+       d_nv_preserves_uv='define'
+       d_printf_format_null='define'
+       d_u32align='undef'
+}
+($owrt:bits eq '64') {
+       ($owrt:endian eq 'little') {
+               byteorder='12345678'
+       }
+       ($owrt:endian eq 'big') {
+               byteorder='87654321'
+       }
+       
+       # Types
+       ivsize='8'
+       uvsize='8'
+       longsize='8'
+       longdblsize='16'
+       ptrsize='8'
+       
+       quadtype='long'
+       
+       i16type='signed short'
+       i32type='signed int'
+       i64type='signed long'
+       i8type='signed char'
+       
+       u32type='unsigned int'
+       u64type='unsigned long'
+       uquadtype='unsigned long'
+       
+       sizesize='8'
+       
+       uidformat='"u"'
+       gidformat='"u"'
+       
+       selectminbits='64'
+       
+       sGMTIME_max='67768036191676799'
+       sGMTIME_min='-62167219200'
+       sLOCALTIME_max='67768036191673199'
+       sLOCALTIME_min='-62167222408'
+       
+       sPRIi64='"li"'
+       sPRIo64='"lo"'
+       sPRIu64='"lu"'
+       sPRIx64='"lx"'
+       sPRId64='"ld"'
+       
+       netdb_host_type='char *'
+       nv_preserves_uv_bits='53'
+       d_nv_preserves_uv='undef'
+       d_printf_format_null='undef'
+       d_u32align='define'
+       use64bitall='define'
+       use64bitint='define'
+}
+
+# Only defined by i486 and x86_64. Provide defaults for all others
+(!defined($sPRIEUldbl)) {
+       sPRIEUldbl='"E"'
+       sPRIFUldbl='"F"'
+       sPRIGUldbl='"G"'
+       sPRIXU64='"LX"'
+       sPRIeldbl='"e"'
+       sPRIfldbl='"f"'
+       sPRIgldbl='"g"'
+       sSCNfldbl='"f"'
+}
diff --git a/lang/perl/files/arm.config b/lang/perl/files/arm.config
new file mode 100644 (file)
index 0000000..75fe254
--- /dev/null
@@ -0,0 +1,19 @@
+owrt:arch=arm
+owrt:bits=32
+owrt:endian=little
+
+ccsymbols='__ARM_ARCH_3__=1'
+cppccsymbols=''
+cppsymbols='__ELF__=1 _FILE_OFFSET_BITS=64 __GLIBC__=2 __GLIBC_MINOR__=2 __GNUC__=3 __GNUC_MINOR__=4 __GNU_LIBRARY__=6 _LARGEFILE_SOURCE=1 _POSIX_C_SOURCE=199506L _POSIX_SOURCE=1 __STDC__=1 __USE_BSD=1 __USE_FILE_OFFSET64=1 __USE_LARGEFILE=1 __USE_MISC=1 __USE_POSIX=1 __USE_POSIX199309=1 __USE_POSIX199506=1 __USE_POSIX2=1 __USE_SVID=1 linux=1 __linux=1 __linux__=1 unix=1 __unix=1 __unix__=1'
+d_casti32='define'
+d_modflproto='undef'
+doublekind='3'
+fpossize='20'
+longdblkind='0'
+need_va_copy='undef'
+quadkind='3'
+
+owrt:sig_count='64'
+owrt:sigs='ZERO HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS'
+owrt:sig_name_extra='IOT CLD POLL UNUSED'
+owrt:sig_num_extra='6 17 29 31'
diff --git a/lang/perl/files/armeb.config b/lang/perl/files/armeb.config
new file mode 100644 (file)
index 0000000..081300c
--- /dev/null
@@ -0,0 +1,19 @@
+owrt:arch=armeb
+owrt:bits=32
+owrt:endian=big
+
+ccsymbols='__ARM_ARCH_3__=1'
+cppccsymbols=''
+cppsymbols='__ELF__=1 _FILE_OFFSET_BITS=64 __GLIBC__=2 __GLIBC_MINOR__=2 __GNUC__=3 __GNUC_MINOR__=4 __GNU_LIBRARY__=6 _LARGEFILE_SOURCE=1 _POSIX_C_SOURCE=199506L _POSIX_SOURCE=1 __STDC__=1 __USE_BSD=1 __USE_FILE_OFFSET64=1 __USE_LARGEFILE=1 __USE_MISC=1 __USE_POSIX=1 __USE_POSIX199309=1 __USE_POSIX199506=1 __USE_POSIX2=1 __USE_SVID=1 linux=1 __linux=1 __linux__=1 unix=1 __unix=1 __unix__=1'
+d_casti32='define'
+d_modflproto='undef'
+doublekind='4'
+fpossize='20'
+longdblkind='0'
+need_va_copy='undef'
+quadkind='3'
+
+owrt:sig_count='64'
+owrt:sigs='ZERO HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS'
+owrt:sig_name_extra='IOT CLD POLL UNUSED'
+owrt:sig_num_extra='6 17 29 31'
diff --git a/lang/perl/files/base.config b/lang/perl/files/base.config
new file mode 100644 (file)
index 0000000..edc3bd4
--- /dev/null
@@ -0,0 +1,1005 @@
+Author=''
+Date=''
+Header=''
+Id=''
+Locker=''
+Log=''
+PERL_CONFIG_SH=true
+PERL_PATCHLEVEL=
+RCSfile=''
+Revision=''
+Source=''
+State=''
+_a='.a'
+_exe=''
+_o='.o'
+afs='false'
+afsroot='/afs'
+ansi2knr=''
+aphostname='/bin/hostname'
+ar='ar'
+archname64=''
+archobjs=''
+awk='awk'
+baserev='5.0'
+bash=''
+bin='/usr/bin'
+bin_ELF='define'
+binexp='/usr/bin'
+bison='bison'
+byacc='byacc'
+c=''
+castflags='0'
+cat='cat'
+ccname='gcc'
+ccversion=''
+cf_by='root'
+charbits='8'
+charsize='1'
+chgrp=''
+chmod='chmod'
+chown=''
+clocktype='clock_t'
+comm='comm'
+compress=''
+config_arg0='./Configure'
+config_arg1='-der'
+contains='grep'
+cp='cp'
+cpio=''
+cpp='cpp'
+cpp_stuff='42'
+cpplast='-'
+cppminus='-'
+cryptlib=''
+csh='csh'
+ctermid_r_proto='0'
+d_Gconvert='sprintf((b),"%.*g",(n),(x))'
+d_PRIEUldbl='define'
+d_PRIFUldbl='define'
+d_PRIGUldbl='define'
+d_PRIXU64='define'
+d_PRId64='define'
+d_PRIeldbl='define'
+d_PRIfldbl='define'
+d_PRIgldbl='define'
+d_PRIi64='define'
+d_PRIo64='define'
+d_PRIu64='define'
+d_PRIx64='define'
+d_SCNfldbl='define'
+d__fwalk='undef'
+d_access='define'
+d_accessx='undef'
+d_acosh='define'
+d_aintl='undef'
+d_alarm='define'
+d_archlib='undef'
+d_asctime64='undef'
+d_asinh='define'
+d_atanh='define'
+d_atolf='undef'
+d_atoll='define'
+d_attribute_deprecated='define'
+d_attribute_format='define'
+d_attribute_malloc='define'
+d_attribute_nonnull='define'
+d_attribute_noreturn='define'
+d_attribute_pure='define'
+d_attribute_unused='define'
+d_attribute_warn_unused_result='define'
+d_backtrace='define'
+d_bcmp='define'
+d_bcopy='define'
+d_bsd='undef'
+d_bsdgetpgrp='undef'
+d_bsdsetpgrp='undef'
+d_builtin_choose_expr='define'
+d_builtin_expect='undef'
+d_bzero='define'
+d_c99_variadic_macros='define'
+d_castneg='define'
+d_cbrt='define'
+d_charvspr='undef'
+d_chown='define'
+d_chroot='define'
+d_chsize='undef'
+d_class='undef'
+d_clearenv='define'
+d_clock='define'
+d_clock_getres='define'
+d_clock_gettime='define'
+d_clock_nanosleep='define'
+d_closedir='define'
+d_cmsghdr_s='define'
+d_const='define'
+d_copysign='define'
+d_copysignl='undef'
+d_cplusplus='undef'
+d_csh='undef'
+d_ctermid='define'
+d_ctermid_r='undef'
+d_ctime64='undef'
+d_cuserid='define'
+d_dbl_dig='define'
+d_dbminitproto='undef'
+d_difftime='define'
+d_difftime64='undef'
+d_dir_dd_fd='undef'
+d_dirfd='define'
+d_dirnamlen='undef'
+d_dladdr='define'
+d_dlerror='define'
+d_dlopen='define'
+d_dlsymun='undef'
+d_dosuid='undef'
+d_drand48proto='define'
+d_dup2='define'
+d_eaccess='undef'
+d_endgrent='define'
+d_endgrent_r='undef'
+d_endhent='define'
+d_endhostent_r='undef'
+d_endnent='define'
+d_endnetent_r='undef'
+d_endpent='define'
+d_endprotoent_r='undef'
+d_endpwent='define'
+d_endpwent_r='undef'
+d_endsent='define'
+d_endservent_r='undef'
+d_eofnblk='define'
+d_erf='define'
+d_erfc='define'
+d_eunice='undef'
+d_exp2='define'
+d_expm1='define'
+d_faststdio='undef'
+d_fchdir='define'
+d_fchmod='define'
+d_fchown='define'
+d_fcntl='define'
+d_fcntl_can_lock='define'
+d_fd_macros='define'
+d_fd_set='define'
+d_fdim='define'
+d_fgetpos='define'
+d_finite='define'
+d_finitel='undef'
+d_flexfnam='define'
+d_flock='define'
+d_flockproto='define'
+d_fma='define'
+d_fmax='define'
+d_fmin='define'
+d_fork='define'
+d_fp_class='undef'
+d_fp_classify='undef'
+d_fp_classl='undef'
+d_fpathconf='define'
+d_fpclass='undef'
+d_fpclassify='define'
+d_fpclassl='undef'
+d_fpgetround='undef'
+d_fpos64_t='undef'
+d_frexpl='undef'
+d_fs_data_s='undef'
+d_fseeko='define'
+d_fsetpos='define'
+d_fstatfs='define'
+d_fstatvfs='define'
+d_fsync='define'
+d_ftello='define'
+d_ftime='undef'
+d_futimes='undef'
+d_gdbm_ndbm_h_uses_prototypes='undef'
+d_gdbmndbm_h_uses_prototypes='undef'
+d_getaddrinfo='define'
+d_getcwd='define'
+d_getespwnam='undef'
+d_getfsstat='undef'
+d_getgrent='define'
+d_getgrps='define'
+d_gethbyaddr='define'
+d_gethbyname='define'
+d_gethent='define'
+d_gethname='define'
+d_gethostprotos='define'
+d_getitimer='define'
+d_getlogin='define'
+d_getmnt='undef'
+d_getmntent='define'
+d_getnameinfo='define'
+d_getnbyaddr='define'
+d_getnbyname='define'
+d_getnent='define'
+d_getnetprotos='define'
+d_getpagsz='define'
+d_getpbyname='define'
+d_getpbynumber='define'
+d_getpent='define'
+d_getpgid='define'
+d_getpgrp='define'
+d_getpgrp2='undef'
+d_getppid='define'
+d_getprior='define'
+d_getprotoprotos='define'
+d_getprpwnam='undef'
+d_getpwent='define'
+d_getsbyname='define'
+d_getsbyport='define'
+d_getsent='define'
+d_getservprotos='define'
+d_getspnam='define'
+d_gettimeod='define'
+d_gmtime64='undef'
+d_gnulibc='undef'
+d_grpasswd='define'
+d_hasmntopt='define'
+d_htonl='define'
+d_hypot='define'
+d_ilogb='define'
+d_ilogbl='undef'
+d_inc_version_list='undef'
+d_index='undef'
+d_inetaton='define'
+d_inetntop='define'
+d_inetpton='define'
+d_int64_t='define'
+d_ip_mreq='define'
+d_ip_mreq_source='define'
+d_ipv6_mreq="$owrt:ipv6"
+d_ipv6_mreq_source='undef'
+d_isascii='define'
+d_isblank='define'
+d_isfinite='define'
+d_isfinitel='undef'
+d_isinf='define'
+d_isinfl='define'
+d_isless='undef'
+d_isnan='define'
+d_isnanl='undef'
+d_isnormal='define'
+d_killpg='define'
+d_lc_monetary_2008='define'
+d_lchown='define'
+d_ldbl_dig='define'
+d_ldexpl='define'
+d_lgamma='define'
+d_lgamma_r='define'
+d_libm_lib_version='define'
+d_libname_unique='undef'
+d_link='define'
+d_llrint='define'
+d_llrintl='define'
+d_llround='define'
+d_llroundl='define'
+d_localtime64='undef'
+d_locconv='define'
+d_lockf='define'
+d_log1p='define'
+d_log2='define'
+d_logb='define'
+d_longdbl='define'
+d_longlong='define'
+d_lrint='define'
+d_lrintl='define'
+d_lround='define'
+d_lroundl='define'
+d_lseekproto='define'
+d_lstat='define'
+d_madvise='define'
+d_malloc_good_size='undef'
+d_malloc_size='undef'
+d_mblen='define'
+d_mbstowcs='define'
+d_mbtowc='define'
+d_memchr='define'
+d_memcmp='define'
+d_memcpy='define'
+d_memmove='define'
+d_memset='define'
+d_mkdir='define'
+d_mkdtemp='define'
+d_mkfifo='define'
+d_mkstemp='define'
+d_mkstemps='undef'
+d_mktime='define'
+d_mktime64='undef'
+d_mmap='define'
+d_modfl='undef'
+d_modfl_pow32_bug='undef'
+d_mprotect='define'
+d_msg='define'
+d_msg_ctrunc='define'
+d_msg_dontroute='define'
+d_msg_oob='define'
+d_msg_peek='define'
+d_msg_proxy='define'
+d_msgctl='define'
+d_msgget='define'
+d_msghdr_s='define'
+d_msgrcv='define'
+d_msgsnd='define'
+d_msync='define'
+d_munmap='define'
+d_mymalloc='undef'
+d_nan='define'
+d_nanosleep='define'
+d_ndbm='undef'
+d_ndbm_h_uses_prototypes='undef'
+d_nearbyint='define'
+d_nextafter='define'
+d_nice='define'
+d_nl_langinfo='define'
+d_nv_zero_is_allbits_zero='define'
+d_old_pthread_create_joinable='undef'
+d_oldpthreads='undef'
+d_oldsock='undef'
+d_open3='define'
+d_pathconf='define'
+d_pause='define'
+d_perl_otherlibdirs='undef'
+d_phostname='undef'
+d_pipe='define'
+d_poll='define'
+d_portable='define'
+d_prctl='define'
+d_prctl_set_name='define'
+d_procselfexe='define'
+d_pseudofork='undef'
+d_pthread_attr_setscope='define'
+d_ptrdiff_t='define'
+d_pwage='undef'
+d_pwchange='undef'
+d_pwclass='undef'
+d_pwcomment='undef'
+d_pwexpire='undef'
+d_pwgecos='define'
+d_pwpasswd='define'
+d_pwquota='undef'
+d_qgcvt='undef'
+d_quad='define'
+d_re_comp='undef'
+d_readdir='define'
+d_readlink='define'
+d_readv='define'
+d_recvmsg='define'
+d_regcmp='undef'
+d_regcomp='define'
+d_remainder='define'
+d_remquo='define'
+d_rename='define'
+d_rewinddir='define'
+d_rint='define'
+d_rmdir='define'
+d_round='define'
+d_safebcpy='undef'
+d_safemcpy='undef'
+d_sanemcmp='define'
+d_sbrkproto='define'
+d_scalbn='define'
+d_scalbnl='undef'
+d_sched_yield='define'
+d_scm_rights='define'
+d_seekdir='define'
+d_select='define'
+d_sem='define'
+d_semctl='define'
+d_semctl_semid_ds='define'
+d_semctl_semun='define'
+d_semget='define'
+d_semop='define'
+d_sendmsg='define'
+d_setegid='define'
+d_seteuid='define'
+d_setgrent='define'
+d_setgrent_r='undef'
+d_setgrps='define'
+d_sethent='define'
+d_sethostent_r='undef'
+d_setitimer='define'
+d_setlinebuf='define'
+d_setlocale='define'
+d_setlocale_r='undef'
+d_setnent='define'
+d_setnetent_r='undef'
+d_setpent='define'
+d_setpgid='define'
+d_setpgrp='define'
+d_setpgrp2='undef'
+d_setprior='define'
+d_setproctitle='undef'
+d_setprotoent_r='undef'
+d_setpwent='define'
+d_setpwent_r='undef'
+d_setregid='define'
+d_setresgid='define'
+d_setresuid='define'
+d_setreuid='define'
+d_setrgid='undef'
+d_setruid='undef'
+d_setsent='define'
+d_setservent_r='undef'
+d_setsid='define'
+d_setvbuf='define'
+d_sfio='undef'
+d_shm='define'
+d_shmat='define'
+d_shmatprototype='define'
+d_shmctl='define'
+d_shmdt='define'
+d_shmget='define'
+d_sigaction='define'
+d_signbit='undef'
+d_sigprocmask='define'
+d_sigsetjmp='define'
+d_sin6_scope_id="$owrt:ipv6"
+d_sitearch='define'
+d_snprintf='define'
+d_sockaddr_in6="$owrt:ipv6"
+d_sockaddr_sa_len='undef'
+d_sockatmark='undef'
+d_sockatmarkproto='undef'
+d_socket='define'
+d_socklen_t='define'
+d_sockpair='define'
+d_socks5_init='undef'
+d_sprintf_returns_strlen='define'
+d_sqrtl='undef'
+d_stat='define'
+d_statblks='define'
+d_statfs_f_flags='undef'
+d_statfs_s='define'
+d_static_inline='define'
+d_statvfs='define'
+d_stdio_cnt_lval='undef'
+d_stdio_ptr_lval='undef'
+d_stdio_ptr_lval_nochange_cnt='undef'
+d_stdio_ptr_lval_sets_cnt='undef'
+d_stdio_stream_array='undef'
+d_stdiobase='undef'
+d_stdstdio='undef'
+d_strchr='define'
+d_strcoll='define'
+d_strctcpy='define'
+d_strerrm='strerror(e)'
+d_strerror='define'
+d_strftime='define'
+d_strlcat='define'
+d_strlcpy='define'
+d_strtod='define'
+d_strtol='define'
+d_strtold='define'
+d_strtoll='define'
+d_strtoq='define'
+d_strtoul='define'
+d_strtoull='define'
+d_strtouq='define'
+d_strxfrm='define'
+d_suidsafe='undef'
+d_symlink='define'
+d_syscall='define'
+d_syscallproto='define'
+d_sysconf='define'
+d_sysernlst=''
+d_syserrlst='undef'
+d_system='define'
+d_tcgetpgrp='define'
+d_tcsetpgrp='define'
+d_telldir='define'
+d_telldirproto='define'
+d_tgamma='define'
+d_time='define'
+d_timegm='define'
+d_times='define'
+d_tm_tm_gmtoff='define'
+d_tm_tm_zone='define'
+d_trunc='define'
+d_truncate='define'
+d_truncl='define'
+d_tzname='define'
+d_ualarm='define'
+d_umask='define'
+d_uname='define'
+d_union_semun='undef'
+d_unordered='undef'
+d_unsetenv='define'
+d_usleep='define'
+d_usleepproto='define'
+d_ustat='define'
+d_vendorarch='undef'
+d_vendorbin='undef'
+d_vendorlib='undef'
+d_vendorscript='undef'
+d_vfork='undef'
+d_void_closedir='undef'
+d_voidsig='define'
+d_voidtty=''
+d_volatile='define'
+d_vprintf='define'
+d_vsnprintf='define'
+d_wait4='define'
+d_waitpid='define'
+d_wcscmp='define'
+d_wcstombs='define'
+d_wcsxfrm='define'
+d_wctomb='define'
+d_writev='define'
+d_xenix='undef'
+date='date'
+db_hashtype='u_int32_t'
+db_prefixtype='size_t'
+db_version_major=''
+db_version_minor=''
+db_version_patch=''
+defvoidused='15'
+direntrytype='struct dirent'
+dlext='so'
+dlsrc='dl_dlopen.xs'
+doublesize='8'
+drand01='drand48()'
+dtrace=''
+eagain='EAGAIN'
+ebcdic='undef'
+echo='echo'
+egrep='egrep'
+emacs=''
+endgrent_r_proto='0'
+endhostent_r_proto='0'
+endnetent_r_proto='0'
+endprotoent_r_proto='0'
+endpwent_r_proto='0'
+endservent_r_proto='0'
+eunicefix=':'
+exe_ext=''
+expr='expr'
+extern_C='extern'
+extras=''
+fflushNULL='define'
+fflushall='undef'
+find=''
+firstmakefile='makefile'
+flex=''
+fpostype='fpos_t'
+freetype='void'
+from=':'
+full_csh='csh'
+full_sed='sed'
+gccansipedantic=''
+gccosandvers=''
+gidsign='1'
+gidsize='4'
+gidtype='gid_t'
+glibpth='/usr/shlib  /lib /usr/lib /usr/lib/386 /lib/386 /usr/ccs/lib /usr/ucblib /usr/local/lib '
+gmake='gmake'
+gnulibc_version=''
+grep='grep'
+groupcat='cat /etc/group'
+groupstype='gid_t'
+gzip='gzip'
+h_fcntl='false'
+h_sysfile='true'
+hint='recommended'
+hostcat='cat /etc/hosts'
+hostgenerate="$owrt:host_perl_prefix/bin/generate_uudmap"
+hostosname=''
+hostperl="$owrt:host_perl_prefix/bin/perl"
+html1dir=' '
+html1direxp=''
+html3dir=' '
+html3direxp=''
+i16size='2'
+i32size='4'
+i64size='8'
+i8size='1'
+i_arpainet='define'
+i_assert='define'
+i_bfd='undef'
+i_bsdioctl=''
+i_db='define'
+i_dbm='undef'
+i_dirent='define'
+i_dld='undef'
+i_dlfcn='define'
+i_execinfo='define'
+i_fcntl='undef'
+i_fenv='undef'
+i_float='define'
+i_fp='undef'
+i_fp_class='undef'
+i_gdbm='define'
+i_gdbm_ndbm='undef'
+i_gdbmndbm='undef'
+i_grp='define'
+i_ieeefp='undef'
+i_inttypes='define'
+i_langinfo='define'
+i_libutil='undef'
+i_limits='define'
+i_locale='define'
+i_machcthr='undef'
+i_malloc='define'
+i_mallocmalloc='undef'
+i_math='define'
+i_memory='undef'
+i_mntent='define'
+i_ndbm='undef'
+i_netdb='define'
+i_neterrno='undef'
+i_netinettcp='define'
+i_niin='define'
+i_poll='define'
+i_prot='undef'
+i_pthread='define'
+i_pwd='define'
+i_quadmath='define'
+i_rpcsvcdbm='undef'
+i_sfio='undef'
+i_sgtty='undef'
+i_shadow='define'
+i_socks='undef'
+i_stdarg='define'
+i_stdbool='define'
+i_stddef='define'
+i_stdint='define'
+i_stdlib='define'
+i_string='define'
+i_sunmath='undef'
+i_sysaccess='undef'
+i_sysdir='define'
+i_sysfile='define'
+i_sysfilio='undef'
+i_sysin='undef'
+i_sysioctl='define'
+i_syslog='define'
+i_sysmman='define'
+i_sysmode='undef'
+i_sysmount='define'
+i_sysndir='undef'
+i_sysparam='define'
+i_syspoll='define'
+i_sysresrc='define'
+i_syssecrt='undef'
+i_sysselct='define'
+i_syssockio='undef'
+i_sysstat='define'
+i_sysstatfs='define'
+i_sysstatvfs='define'
+i_systime='define'
+i_systimek='undef'
+i_systimes='define'
+i_systypes='define'
+i_sysuio='define'
+i_sysun='define'
+i_sysutsname='define'
+i_sysvfs='define'
+i_syswait='define'
+i_termio='undef'
+i_termios='define'
+i_time='define'
+i_unistd='define'
+i_ustat='define'
+i_utime='define'
+i_values='define'
+i_varargs='undef'
+i_varhdr='stdarg.h'
+i_vfork='undef'
+ignore_versioned_solibs='y'
+inc_version_list=' '
+inc_version_list_init='0'
+incpath=''
+inews=''
+initialinstalllocation='/usr/bin'
+installbin='/usr/bin'
+installhtml1dir=''
+installhtml3dir=''
+installman1dir=''
+installman3dir=''
+installprefix='/usr'
+installprefixexp='/usr'
+installscript='/usr/bin'
+installsitebin='/usr/bin'
+installsitehtml1dir=''
+installsitehtml3dir=''
+installsiteman1dir=''
+installsiteman3dir=''
+installsitescript='/usr/bin'
+installstyle='lib/perl5'
+installusrbinperl='define'
+installvendorarch=''
+installvendorbin=''
+installvendorhtml1dir=''
+installvendorhtml3dir=''
+installvendorlib=''
+installvendorman1dir=''
+installvendorman3dir=''
+installvendorscript=''
+intsize='4'
+issymlink='test -h'
+ivdformat='"ld"'
+ivtype='long'
+ksh=''
+ld_can_script='define'
+ldlibpthname='LD_LIBRARY_PATH'
+less='less'
+lib_ext='.a'
+libc=''
+libdb_needs_pthread='N'
+libperl='libperl.so'
+libpth="$owrt:staging_dir/lib $owrt:staging_dir/usr/lib"
+libsdirs="$owrt:staging_dir/lib $owrt:staging_dir/usr/lib"
+libspath="$owrt:staging_dir/lib $owrt:staging_dir/usr/lib"
+libswanted_uselargefiles=''
+line=''
+lint=''
+lkflags=''
+ln='ln'
+lns='/bin/ln -s'
+locincpth=' '
+loclibpth=' '
+longlongsize='8'
+lp=''
+lpr=''
+ls='ls'
+lseeksize='8'
+lseektype='off_t'
+mail=''
+mailx=''
+make='make'
+make_set_make='#'
+mallocobj=''
+mallocsrc=''
+malloctype='void *'
+man1dir=' '
+man1direxp=''
+man1ext='0'
+man3dir=' '
+man3direxp=''
+man3ext='0'
+mips_type=''
+mistrustnm=''
+mkdir='mkdir'
+mmaptype='void *'
+modetype='mode_t'
+more='more'
+multiarch='undef'
+mv=''
+mydomain='.dev.null'
+n='-n'
+netdb_hlen_type='size_t'
+netdb_name_type='const char *'
+netdb_net_type='in_addr_t'
+nm='nm'
+nm_opt=''
+nm_so_opt='--dynamic'
+nroff='nroff'
+nvEUformat='"E"'
+nvFUformat='"F"'
+nvGUformat='"G"'
+nv_overflows_integers_at='256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0'
+nveformat='"e"'
+nvfformat='"f"'
+nvgformat='"g"'
+nvsize='8'
+nvtype='double'
+o_nonblock='O_NONBLOCK'
+obj_ext='.o'
+old_pthread_create_joinable=''
+optimize='-O2'
+orderlib='false'
+osname='linux'
+otherlibdirs=' '
+package='perl5'
+pager='/usr/bin/less'
+passcat='cat /etc/passwd'
+path_sep=':'
+perl=''
+perl5=''
+perl_patchlevel=''
+perl_static_inline='static __inline__'
+perlpath='/usr/bin/perl'
+pg='pg'
+phostname='hostname'
+pidtype='pid_t'
+plibpth=''
+pmake=''
+pr=''
+prefix='/usr'
+prefixexp='/usr'
+procselfexe='"/proc/self/exe"'
+prototype='define'
+randbits='48'
+randfunc='drand48'
+randseedtype='long'
+ranlib=':'
+rd_nodata='-1'
+rm='rm'
+rm_try='/bin/rm -f try try a.out .out try.[cho] try..o core core.try* try.core*'
+rmail=''
+run=''
+runnm='false'
+sched_yield='sched_yield()'
+scriptdir='/usr/bin'
+scriptdirexp='/usr/bin'
+sed='sed'
+seedfunc='srand48'
+selecttype='fd_set *'
+sendmail=''
+setgrent_r_proto='0'
+sethostent_r_proto='0'
+setlocale_r_proto='0'
+setnetent_r_proto='0'
+setprotoent_r_proto='0'
+setpwent_r_proto='0'
+setservent_r_proto='0'
+sh='/bin/sh'
+shar=''
+sharpbang='#!'
+shmattype='void *'
+shortsize='2'
+shrpenv=''
+shsharp='true'
+signal_t='void'
+sitearch=''
+sitearchexp=''
+sitebin='/usr/bin'
+sitebinexp='/usr/bin'
+sitehtml1dir=''
+sitehtml1direxp=''
+sitehtml3dir=''
+sitehtml3direxp=''
+sitelib=''
+sitelibexp=''
+siteman1dir=''
+siteman1direxp=''
+siteman3dir=''
+siteman3direxp=''
+siteprefix='/usr'
+siteprefixexp='/usr'
+sitescript='/usr/bin'
+sitescriptexp='/usr/bin'
+sizetype='size_t'
+sleep=''
+smail=''
+so='so'
+sockethdr=''
+socketlib=''
+socksizetype='socklen_t'
+sort='sort'
+spackage='Perl5'
+spitshell='cat'
+src='.'
+ssizetype='ssize_t'
+st_ino_sign='1'
+st_ino_size='8'
+startperl='#!/usr/bin/perl'
+startsh='#!/bin/sh'
+static_ext=' '
+stdchar='char'
+stdio_base='((fp)->_base)'
+stdio_bufsiz='((fp)->_cnt + (fp)->_ptr - (fp)->_base)'
+stdio_cnt='((fp)->_cnt)'
+stdio_filbuf=''
+stdio_ptr='((fp)->_ptr)'
+stdio_stream_array=''
+submit=''
+sysman='/usr/share/man/man1'
+sysroot=''
+tail=''
+tar=''
+targetdir=''
+targetenv=''
+targethost=''
+targetmkdir=''
+targetport=''
+targetsh='/bin/sh'
+tbl=''
+tee=''
+test='test'
+timetype='time_t'
+to=':'
+touch='touch'
+tr='tr'
+trnl='\n'
+troff=''
+u16size='2'
+u16type='unsigned short'
+u32size='4'
+u64size='8'
+u8size='1'
+u8type='unsigned char'
+uidsign='1'
+uidsize='4'
+uidtype='uid_t'
+uname='uname'
+uniq='uniq'
+use5005threads='undef'
+usecbacktrace='undef'
+usecrosscompile='define'
+usedevel='undef'
+usedl='define'
+usedtrace='undef'
+usefaststdio='undef'
+usekernprocpathname='undef'
+uselargefiles='define'
+uselongdouble='undef'
+usemallocwrap='define'
+usemorebits='undef'
+usemymalloc='n'
+usenm='true'
+usensgetexecutablepath='undef'
+useopcode='true'
+useperlio='define'
+useposix='true'
+usequadmath='undef'
+usereentrant='undef'
+userelocatableinc='undef'
+usesfio='false'
+useshrplib='true'
+usesitecustomize='undef'
+usesocks='undef'
+usevendorprefix='undef'
+useversionedarchname='undef'
+usevfork='false'
+usrinc="$owrt:staging_dir/include $owrt:staging_dir/usr/include"
+uuname=''
+uvXUformat='"lX"'
+uvoformat='"lo"'
+uvtype='unsigned long'
+uvuformat='"lu"'
+uvxformat='"lx"'
+vaproto='define'
+vendorarch=''
+vendorarchexp=''
+vendorbin=''
+vendorbinexp=''
+vendorhtml1dir=' '
+vendorhtml1direxp=''
+vendorhtml3dir=' '
+vendorhtml3direxp=''
+vendorlib=''
+vendorlib_stem=''
+vendorlibexp=''
+vendorman1dir=' '
+vendorman1direxp=''
+vendorman3dir=' '
+vendorman3direxp=''
+vendorprefix=''
+vendorprefixexp=''
+vendorscript=''
+vendorscriptexp=''
+versiononly='undef'
+vi=''
+voidflags='15'
+xlibpth='/usr/lib/386 /lib/386'
+yacc='yacc'
+yaccflags=''
+zcat=''
+zip='zip'
+
+config_argc=1
+config_args='-der'
+
+# Tools
+cpprun="$owrt:target_cc -E"
+cppstdin="$owrt:target_cc -E"
+cc="$owrt:target_cc"
+ld="$cc"
+full_ar="${owrt:target_cross}ar"
+
+# Tool flags
+cppflags="$owrt:cflags"
+ccflags="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 $owrt:cflags"
+ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
+ccdlflags="-fPIC -Wl,-rpath,$owrt:perllibpath/CORE"
+cccdlflags='-fPIC'
+ldflags=''
+ldflags_uselargefiles=''
+lddlflags="-shared $owrt:ldflags"
+
+# Libraries
+perllibs='-ldl -lm -lcrypt -lutil -lc'
+libs='-lgdbm -ldb -ldl -lm -lcrypt -lutil -lc'
+libsfiles='libdl.so libm.so libcrypt.so libutil.so libc.so'
+libswanted='sfio socket inet nm ndbm gdbm dbm db malloc dl dld ld sun m crypt sec util c cposix posix ucb BSD'
diff --git a/lang/perl/files/config.sh-arm-mt.in b/lang/perl/files/config.sh-arm-mt.in
deleted file mode 100644 (file)
index 2a7a3db..0000000
+++ /dev/null
@@ -1,1227 +0,0 @@
-#!/bin/sh
-#
-# This file was produced by running the Configure script. It holds all the
-# definitions figured out by Configure. Should you modify one of these values,
-# do not forget to propagate your changes by running "Configure -der". You may
-# instead choose to run each of the .SH files by yourself, or "Configure -S".
-#
-
-# Package name      : perl5
-# Source directory  : .
-# Configuration time: Fri Jul 20 04:18:17 MDT 2007
-# Configured by     : root
-# Target system     : linux maia 2.6.22 #1 wed jul 11 12:24:09 cest 2007 armv5tel unknown unknown gnulinux 
-
-Author=''
-Date=''
-Header=''
-Id=''
-Locker=''
-Log=''
-RCSfile=''
-Revision=''
-Source=''
-State=''
-_a='.a'
-_exe=''
-_o='.o'
-afs='false'
-afsroot='/afs'
-alignbytes='4'
-ansi2knr=''
-aphostname='/bin/hostname'
-api_revision='5'
-api_subversion='0'
-
-
-ar='ar'
-archname64=''
-archname='arm-linux-uclibc'
-archobjs=''
-asctime_r_proto='REENTRANT_PROTO_B_SB'
-awk='awk'
-baserev='5.0'
-bash=''
-bin='/usr/bin'
-binexp='/usr/bin'
-bison='bison'
-byacc='byacc'
-byteorder='1234'
-c=''
-castflags='0'
-cat='cat'
-cc='%%CC%%'
-cccdlflags='-fPIC'
-ccflags='-D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 %%CFLAGS%%'
-ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
-ccname='gcc'
-ccsymbols='__ARM_ARCH_3__=1'
-ccversion=''
-cf_by='root'
-cf_email='root@maia.dev.null'
-cf_time='Fri Jul 20 04:18:17 MDT 2007'
-chgrp=''
-chmod='chmod'
-chown=''
-clocktype='clock_t'
-comm='comm'
-compress=''
-contains='grep'
-cp='cp'
-cpio=''
-cpp='cpp'
-cpp_stuff='42'
-cppccsymbols=''
-cppflags='-D_REENTRANT -D_GNU_SOURCE %%CFLAGS%%'
-cpplast='-'
-cppminus='-'
-cpprun='%%CPP%%'
-cppstdin='%%CPP%%'
-cppsymbols='__ELF__=1 _FILE_OFFSET_BITS=64 __GLIBC__=2 __GLIBC_MINOR__=2 __GNUC__=3 __GNUC_MINOR__=4 __GNU_LIBRARY__=6 _LARGEFILE_SOURCE=1 _POSIX_C_SOURCE=199506L _POSIX_SOURCE=1 __STDC__=1 __USE_BSD=1 __USE_FILE_OFFSET64=1 __USE_LARGEFILE=1 __USE_MISC=1 __USE_POSIX=1 __USE_POSIX199309=1 __USE_POSIX199506=1 __USE_POSIX2=1 __USE_SVID=1 linux=1 __linux=1 __linux__=1 unix=1 __unix=1 __unix__=1'
-crypt_r_proto='%%CRYPT_R_PROTO%%'
-cryptlib=''
-csh='csh'
-ctermid_r_proto='0'
-ctime_r_proto='REENTRANT_PROTO_B_SB'
-d_Gconvert='sprintf((b),"%.*g",(n),(x))'
-d_PRIEUldbl='define'
-d_PRIFUldbl='define'
-d_PRIGUldbl='define'
-d_PRIXU64='define'
-d_PRId64='define'
-d_PRIeldbl='define'
-d_PRIfldbl='define'
-d_PRIgldbl='define'
-d_PRIi64='define'
-d_PRIo64='define'
-d_PRIu64='define'
-d_PRIx64='define'
-d_SCNfldbl='define'
-d__fwalk='undef'
-d_access='define'
-d_accessx='undef'
-d_acosh='define'
-d_aintl='undef'
-d_alarm='define'
-d_archlib='undef'
-d_asctime_r='define'
-d_asinh='define'
-d_atanh='define'
-d_atolf='undef'
-d_atoll='define'
-d_attribute_format='define'
-d_attribute_malloc='define'
-d_attribute_nonnull='define'
-d_attribute_noreturn='define'
-d_attribute_pure='define'
-d_attribute_unused='define'
-d_attribute_warn_unused_result='define'
-d_backtrace='define'
-d_bcmp='define'
-d_bcopy='define'
-d_bsd='undef'
-d_bsdgetpgrp='undef'
-d_bsdsetpgrp='undef'
-d_builtin_choose_expr='define'
-d_builtin_expect='undef'
-d_bzero='define'
-d_c99_variadic_macros='define'
-d_casti32='define'
-d_castneg='define'
-d_cbrt='define'
-d_charvspr='undef'
-d_chown='define'
-d_chroot='define'
-d_chsize='undef'
-d_class='undef'
-d_clearenv='define'
-d_closedir='define'
-d_cmsghdr_s='define'
-d_const='define'
-d_copysign='define'
-d_copysignl='undef'
-d_cplusplus='undef'
-d_crypt='%%CRYPT%%'
-d_crypt_r='%%CRYPT%%'
-d_csh='undef'
-d_ctermid='define'
-d_ctermid_r='undef'
-d_ctime_r='define'
-d_cuserid='define'
-d_dbl_dig='define'
-d_dbminitproto='undef'
-d_difftime='define'
-d_dir_dd_fd='undef'
-d_dirfd='define'
-d_dirnamlen='undef'
-d_dladdr='define'
-d_dlerror='define'
-d_dlopen='define'
-d_dlsymun='undef'
-d_dosuid='undef'
-d_drand48_r='define'
-d_drand48proto='define'
-d_dup2='define'
-d_eaccess='undef'
-d_endgrent='define'
-d_endgrent_r='undef'
-d_endhent='define'
-d_endhostent_r='undef'
-d_endnent='define'
-d_endnetent_r='undef'
-d_endpent='define'
-d_endprotoent_r='undef'
-d_endpwent='define'
-d_endpwent_r='undef'
-d_endsent='define'
-d_endservent_r='undef'
-d_eofnblk='define'
-d_erf='define'
-d_erfc='define'
-d_eunice='undef'
-d_exp2='define'
-d_expm1='define'
-d_faststdio='undef'
-d_fchdir='define'
-d_fchmod='define'
-d_fchown='define'
-d_fcntl='define'
-d_fcntl_can_lock='define'
-d_fd_macros='define'
-d_fd_set='define'
-d_fdim='define'
-d_fds_bits='define'
-d_fegetround='undef'
-d_fgetpos='define'
-d_finite='define'
-d_finitel='undef'
-d_flexfnam='define'
-d_flock='define'
-d_flockproto='define'
-d_fma='define'
-d_fmax='define'
-d_fmin='define'
-d_fork='define'
-d_fp_class='undef'
-d_fp_classify='undef'
-d_fp_classl='undef'
-d_fpathconf='define'
-d_fpclass='undef'
-d_fpclassify='define'
-d_fpclassl='undef'
-d_fpgetround='undef'
-d_fpos64_t='undef'
-d_frexpl='undef'
-d_fs_data_s='undef'
-d_fseeko='define'
-d_fsetpos='define'
-d_fstatfs='define'
-d_fstatvfs='define'
-d_fsync='define'
-d_ftello='define'
-d_ftime='undef'
-d_futimes='undef'
-d_getcwd='define'
-d_getespwnam='undef'
-d_getfsstat='undef'
-d_getgrent='define'
-d_getgrent_r='define'
-d_getgrgid_r='define'
-d_getgrnam_r='define'
-d_getgrps='define'
-d_gethbyaddr='define'
-d_gethbyname='define'
-d_gethent='define'
-d_gethname='define'
-d_gethostbyaddr_r='define'
-d_gethostbyname_r='define'
-d_gethostent_r='define'
-d_gethostprotos='define'
-d_getitimer='define'
-d_getlogin='define'
-d_getlogin_r='define'
-d_getmnt='undef'
-d_getmntent='define'
-d_getnbyaddr='define'
-d_getnbyname='define'
-d_getnent='define'
-d_getnetbyaddr_r='define'
-d_getnetbyname_r='define'
-d_getnetent_r='define'
-d_getnetprotos='define'
-d_getpagsz='define'
-d_getpbyname='define'
-d_getpbynumber='define'
-d_getpent='define'
-d_getpgid='define'
-d_getpgrp2='undef'
-d_getpgrp='define'
-d_getppid='define'
-d_getprior='define'
-d_getprotobyname_r='define'
-d_getprotobynumber_r='define'
-d_getprotoent_r='define'
-d_getprotoprotos='define'
-d_getprpwnam='undef'
-d_getpwent='define'
-d_getpwent_r='define'
-d_getpwnam_r='define'
-d_getpwuid_r='define'
-d_getsbyname='define'
-d_getsbyport='define'
-d_getsent='define'
-d_getservbyname_r='define'
-d_getservbyport_r='define'
-d_getservent_r='define'
-d_getservprotos='define'
-d_getspnam='define'
-d_getspnam_r='define'
-d_gettimeod='define'
-d_gmtime_r='define'
-d_gnulibc='undef'
-d_grpasswd='define'
-d_hasmntopt='define'
-d_htonl='define'
-d_hypot='define'
-d_ilogb='define'
-d_ilogbl='undef'
-d_inc_version_list='undef'
-d_index='undef'
-d_inetaton='define'
-d_int64_t='define'
-d_isascii='define'
-d_isfinite='define'
-d_isfinitel='undef'
-d_isinf='define'
-d_isinfl='define'
-d_isless='undef'
-d_isnan='define'
-d_isnanl='undef'
-d_isnormal='define'
-d_j0='undef'
-d_j0l='undef'
-d_killpg='define'
-d_lc_monetary_2008='define'
-d_lchown='define'
-d_ldbl_dig='define'
-d_ldexpl='define'
-d_lgamma='define'
-d_lgamma_r='define'
-d_libm_lib_version='define'
-d_link='define'
-d_llrint='define'
-d_llrintl='define'
-d_llround='define'
-d_llroundl='define'
-d_localtime_r='define'
-d_localtime_r_needs_tzset='define'
-d_locconv='define'
-d_lockf='define'
-d_log1p='define'
-d_log2='define'
-d_logb='define'
-d_longdbl='define'
-d_longlong='define'
-d_lrint='define'
-d_lrintl='define'
-d_lround='define'
-d_lroundl='define'
-d_lseekproto='define'
-d_lstat='define'
-d_madvise='define'
-d_malloc_good_size='undef'
-d_malloc_size='undef'
-d_mblen='define'
-d_mbstowcs='define'
-d_mbtowc='define'
-d_memchr='define'
-d_memcmp='define'
-d_memcpy='define'
-d_memmove='define'
-d_memset='define'
-d_mkdir='define'
-d_mkdtemp='define'
-d_mkfifo='define'
-d_mkstemp='define'
-d_mkstemps='undef'
-d_mktime='define'
-d_mmap='define'
-d_modfl='undef'
-d_modfl_pow32_bug='undef'
-d_modflproto='undef'
-d_mprotect='define'
-d_msg='define'
-d_msg_ctrunc='define'
-d_msg_dontroute='define'
-d_msg_oob='define'
-d_msg_peek='define'
-d_msg_proxy='define'
-d_msgctl='define'
-d_msgget='define'
-d_msghdr_s='define'
-d_msgrcv='define'
-d_msgsnd='define'
-d_msync='define'
-d_munmap='define'
-d_mymalloc='undef'
-d_nan='define'
-d_nearbyint='define'
-d_nextafter='define'
-d_nexttoward='undef'
-d_nice='define'
-d_nl_langinfo='define'
-d_nv_preserves_uv='define'
-d_nv_zero_is_allbits_zero='define'
-d_off64_t='define'
-d_old_pthread_create_joinable='undef'
-d_oldpthreads='undef'
-d_oldsock='undef'
-d_open3='define'
-d_pathconf='define'
-d_pause='define'
-d_perl_otherlibdirs='undef'
-d_phostname='undef'
-d_pipe='define'
-d_poll='define'
-d_portable='define'
-d_printf_format_null='define'
-d_procselfexe='define'
-d_pseudofork='undef'
-d_pthread_atfork='define'
-d_pthread_attr_setscope='define'
-d_pthread_yield='define'
-d_ptrdiff_t='define'
-d_pwage='undef'
-d_pwchange='undef'
-d_pwclass='undef'
-d_pwcomment='undef'
-d_pwexpire='undef'
-d_pwgecos='define'
-d_pwpasswd='define'
-d_pwquota='undef'
-d_qgcvt='undef'
-d_quad='define'
-d_random_r='define'
-d_re_comp='undef'
-d_readdir64_r='define'
-d_readdir='define'
-d_readdir_r='define'
-d_readlink='define'
-d_readv='define'
-d_recvmsg='define'
-d_regcmp='undef'
-d_regcomp='define'
-d_remainder='define'
-d_remquo='define'
-d_rename='define'
-d_rewinddir='define'
-d_rint='define'
-d_rmdir='define'
-d_round='define'
-d_safebcpy='undef'
-d_safemcpy='undef'
-d_sanemcmp='define'
-d_sbrkproto='define'
-d_scalbn='define'
-d_scalbnl='undef'
-d_sched_yield='define'
-d_scm_rights='define'
-d_seekdir='define'
-d_select='define'
-d_sem='define'
-d_semctl='define'
-d_semctl_semid_ds='define'
-d_semctl_semun='define'
-d_semget='define'
-d_semop='define'
-d_sendmsg='define'
-d_setegid='define'
-d_seteuid='define'
-d_setgrent='define'
-d_setgrent_r='undef'
-d_setgrps='define'
-d_sethent='define'
-d_sethostent_r='undef'
-d_setitimer='define'
-d_setlinebuf='define'
-d_setlocale='define'
-d_setlocale_r='undef'
-d_setnent='define'
-d_setnetent_r='undef'
-d_setpent='define'
-d_setpgid='define'
-d_setpgrp2='undef'
-d_setpgrp='define'
-d_setprior='define'
-d_setproctitle='undef'
-d_setprotoent_r='undef'
-d_setpwent='define'
-d_setpwent_r='undef'
-d_setregid='define'
-d_setresgid='define'
-d_setresuid='define'
-d_setreuid='define'
-d_setrgid='undef'
-d_setruid='undef'
-d_setsent='define'
-d_setservent_r='undef'
-d_setsid='define'
-d_setvbuf='define'
-d_sfio='undef'
-d_shm='define'
-d_shmat='define'
-d_shmatprototype='define'
-d_shmctl='define'
-d_shmdt='define'
-d_shmget='define'
-d_sigaction='define'
-d_signbit='undef'
-d_sigprocmask='define'
-d_sigsetjmp='define'
-d_sitearch='define'
-d_snprintf='define'
-d_sockatmark='undef'
-d_sockatmarkproto='undef'
-d_socket='define'
-d_socklen_t='define'
-d_sockpair='define'
-d_socks5_init='undef'
-d_sprintf_returns_strlen='define'
-d_sqrtl='undef'
-d_srand48_r='define'
-d_srandom_r='define'
-d_sresgproto='define'
-d_sresuproto='define'
-d_stat='define'
-d_statblks='define'
-d_statfs_f_flags='undef'
-d_statfs_s='define'
-d_statvfs='define'
-d_stdio_cnt_lval='undef'
-d_stdio_ptr_lval='undef'
-d_stdio_ptr_lval_nochange_cnt='undef'
-d_stdio_ptr_lval_sets_cnt='undef'
-d_stdio_stream_array='undef'
-d_stdiobase='undef'
-d_stdstdio='undef'
-d_strchr='define'
-d_strcoll='define'
-d_strctcpy='define'
-d_strerrm='strerror(e)'
-d_strerror='define'
-d_strerror_r='define'
-d_strftime='define'
-d_strlcat='define'
-d_strlcpy='define'
-d_strtod='define'
-d_strtol='define'
-d_strtold='define'
-d_strtoll='define'
-d_strtoq='define'
-d_strtoul='define'
-d_strtoull='define'
-d_strtouq='define'
-d_strxfrm='define'
-d_suidsafe='undef'
-d_symlink='define'
-d_syscall='define'
-d_syscallproto='define'
-d_sysconf='define'
-d_sysernlst=''
-d_syserrlst='undef'
-d_system='define'
-d_tcgetpgrp='define'
-d_tcsetpgrp='define'
-d_telldir='define'
-d_telldirproto='define'
-d_tgamma='define'
-d_time='define'
-d_times='define'
-d_tm_tm_gmtoff='define'
-d_tm_tm_zone='define'
-d_tmpnam_r='define'
-d_trunc='define'
-d_truncate='define'
-d_truncl='define'
-d_ttyname_r='define'
-d_tzname='define'
-d_u32align='undef'
-d_ualarm='define'
-d_umask='define'
-d_uname='define'
-d_union_semun='undef'
-d_unordered='undef'
-d_unsetenv='define'
-d_usleep='define'
-d_usleepproto='define'
-d_ustat='define'
-d_vendorarch='undef'
-d_vendorbin='undef'
-d_vendorlib='undef'
-d_vendorscript='undef'
-d_vfork='undef'
-d_void_closedir='undef'
-d_voidsig='define'
-d_voidtty=''
-d_volatile='define'
-d_vprintf='define'
-d_vsnprintf='define'
-d_wait4='define'
-d_waitpid='define'
-d_wcscmp='define'
-d_wcstombs='define'
-d_wcsxfrm='define'
-d_wctomb='define'
-d_writev='define'
-d_xenix='undef'
-date='date'
-db_hashtype='u_int32_t'
-db_prefixtype='size_t'
-db_version_major=''
-db_version_minor=''
-db_version_patch=''
-defvoidused='15'
-direntrytype='struct dirent'
-dlext='so'
-dlsrc='dl_dlopen.xs'
-doublekind='3'
-doublesize='8'
-drand01='drand48()'
-drand48_r_proto='REENTRANT_PROTO_I_ST'
-
-eagain='EAGAIN'
-ebcdic='undef'
-echo='echo'
-egrep='egrep'
-emacs=''
-endgrent_r_proto='0'
-endhostent_r_proto='0'
-endnetent_r_proto='0'
-endprotoent_r_proto='0'
-endpwent_r_proto='0'
-endservent_r_proto='0'
-eunicefix=':'
-exe_ext=''
-expr='expr'
-extras=''
-fflushNULL='define'
-fflushall='undef'
-find=''
-firstmakefile='makefile'
-flex=''
-fpossize='20'
-fpostype='fpos_t'
-freetype='void'
-from=':'
-full_ar='%%AR%%'
-full_csh='csh'
-full_sed='sed'
-gccansipedantic=''
-gccosandvers=''
-gccversion='3.4.3'
-getgrent_r_proto='REENTRANT_PROTO_I_SBWR'
-getgrgid_r_proto='REENTRANT_PROTO_I_TSBWR'
-getgrnam_r_proto='REENTRANT_PROTO_I_CSBWR'
-gethostbyaddr_r_proto='REENTRANT_PROTO_I_TsISBWRE'
-gethostbyname_r_proto='REENTRANT_PROTO_I_CSBWRE'
-gethostent_r_proto='REENTRANT_PROTO_I_SBWRE'
-getlogin_r_proto='REENTRANT_PROTO_I_BW'
-getnetbyaddr_r_proto='REENTRANT_PROTO_I_uISBWRE'
-getnetbyname_r_proto='REENTRANT_PROTO_I_CSBWRE'
-getnetent_r_proto='REENTRANT_PROTO_I_SBWRE'
-getprotobyname_r_proto='REENTRANT_PROTO_I_CSBWR'
-getprotobynumber_r_proto='REENTRANT_PROTO_I_ISBWR'
-getprotoent_r_proto='REENTRANT_PROTO_I_SBWR'
-getpwent_r_proto='REENTRANT_PROTO_I_SBWR'
-getpwnam_r_proto='REENTRANT_PROTO_I_CSBWR'
-getpwuid_r_proto='REENTRANT_PROTO_I_TSBWR'
-getservbyname_r_proto='REENTRANT_PROTO_I_CCSBWR'
-getservbyport_r_proto='REENTRANT_PROTO_I_ICSBWR'
-getservent_r_proto='REENTRANT_PROTO_I_SBWR'
-getspnam_r_proto='REENTRANT_PROTO_I_CSBWR'
-gidformat='"lu"'
-gidsign='1'
-gidsize='4'
-gidtype='gid_t'
-glibpth='/usr/shlib  /lib /usr/lib /usr/lib/386 /lib/386 /usr/ccs/lib /usr/ucblib /usr/local/lib '
-gmake='gmake'
-gmtime_r_proto='REENTRANT_PROTO_S_TS'
-gnulibc_version=''
-grep='grep'
-groupcat='cat /etc/group'
-groupstype='gid_t'
-gzip='gzip'
-h_fcntl='false'
-h_sysfile='true'
-hint='recommended'
-hostcat='cat /etc/hosts'
-html1dir=' '
-html1direxp=''
-html3dir=' '
-html3direxp=''
-i16size='2'
-i16type='signed short'
-i32size='4'
-i32type='signed long'
-i64size='8'
-i64type='signed long long'
-i8size='1'
-i8type='signed char'
-i_arpainet='define'
-i_bsdioctl=''
-i_crypt='%%CRYPT%%'
-i_db='define'
-i_dbm='undef'
-i_dirent='define'
-i_dld='undef'
-i_dlfcn='define'
-i_execinfo='define'
-i_fcntl='undef'
-i_fenv='undef'
-i_float='define'
-i_fp='undef'
-i_fp_class='undef'
-i_gdbm='define'
-i_grp='define'
-i_ieeefp='undef'
-i_inttypes='define'
-i_langinfo='define'
-i_libutil='undef'
-i_limits='define'
-i_locale='define'
-i_machcthr='undef'
-i_malloc='define'
-i_math='define'
-i_memory='undef'
-i_mntent='define'
-i_ndbm='undef'
-i_netdb='define'
-i_neterrno='undef'
-i_netinettcp='define'
-i_niin='define'
-i_poll='define'
-i_prot='undef'
-i_pthread='define'
-i_pwd='define'
-i_quadmath='define'
-i_rpcsvcdbm='undef'
-i_sfio='undef'
-i_sgtty='undef'
-i_shadow='define'
-i_socks='undef'
-i_stdarg='define'
-i_stddef='define'
-i_stdint='define'
-i_stdlib='define'
-i_string='define'
-i_sunmath='undef'
-i_sysaccess='undef'
-i_sysdir='define'
-i_sysfile='define'
-i_sysfilio='undef'
-i_sysin='undef'
-i_sysioctl='define'
-i_syslog='define'
-i_sysmman='define'
-i_sysmode='undef'
-i_sysmount='define'
-i_sysndir='undef'
-i_sysparam='define'
-i_sysresrc='define'
-i_syssecrt='undef'
-i_sysselct='define'
-i_syssockio='undef'
-i_sysstat='define'
-i_sysstatfs='define'
-i_sysstatvfs='define'
-i_systime='define'
-i_systimek='undef'
-i_systimes='define'
-i_systypes='define'
-i_sysuio='define'
-i_sysun='define'
-i_sysutsname='define'
-i_sysvfs='define'
-i_syswait='define'
-i_termio='undef'
-i_termios='define'
-i_time='define'
-i_unistd='define'
-i_ustat='define'
-i_utime='define'
-i_values='define'
-i_varargs='undef'
-i_varhdr='stdarg.h'
-i_vfork='undef'
-ignore_versioned_solibs='y'
-inc_version_list=' '
-inc_version_list_init='0'
-incpath=''
-inews=''
-
-installbin='/usr/bin'
-initialinstalllocation='/usr/bin'
-installhtml1dir=''
-installhtml3dir=''
-installman1dir=''
-installman3dir=''
-installprefix='/usr'
-installprefixexp='/usr'
-
-installscript='/usr/bin'
-
-installsitebin='/usr/bin'
-installsitehtml1dir=''
-installsitehtml3dir=''
-
-installsiteman1dir=''
-installsiteman3dir=''
-installsitescript='/usr/bin'
-installstyle='lib/perl5'
-installusrbinperl='define'
-installvendorarch=''
-installvendorbin=''
-installvendorhtml1dir=''
-installvendorhtml3dir=''
-installvendorlib=''
-installvendorman1dir=''
-installvendorman3dir=''
-installvendorscript=''
-intsize='4'
-issymlink='test -h'
-ivdformat='"ld"'
-ivsize='4'
-ivtype='long'
-ksh=''
-ld='%%LD%%'
-lddlflags='-shared %%LDFLAGS%%'
-ldflags='%%EXTRA_PERLLIBDIRS%%'
-ldflags_uselargefiles=''
-ldlibpthname='LD_LIBRARY_PATH'
-less='less'
-lib_ext='.a'
-libc=''
-libperl='libperl.so'
-libpth='%%LIBDIRS%%'
-libs='-lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread -lc'
-libsdirs='%%LIBDIRS%%'
-libsfiles=' libdl.so libm.so libcrypt.so libutil.so libpthread.so libc.so'
-#libsfound=' /usr/lib/libdl.so /usr/lib/libm.so /usr/lib/libcrypt.so /usr/lib/libutil.so /usr/lib/libc.so'
-libspath='%%LIBDIRS%%'
-libswanted='sfio socket inet nm ndbm gdbm dbm db malloc dl dld ld sun m crypt sec util pthread c cposix posix ucb BSD'
-libswanted_uselargefiles=''
-line=''
-lint=''
-lkflags=''
-ln='ln'
-lns='/bin/ln -s'
-localtime_r_proto='REENTRANT_PROTO_S_TS'
-locincpth=' '
-loclibpth=' '
-longdblkind='0'
-longdblsize='8'
-longlongsize='8'
-longsize='4'
-lp=''
-lpr=''
-ls='ls'
-lseeksize='8'
-lseektype='off_t'
-mail=''
-mailx=''
-make='make'
-make_set_make='#'
-mallocobj=''
-mallocsrc=''
-malloctype='void *'
-man1dir=' '
-man1direxp=''
-man1ext='0'
-man3dir=' '
-man3direxp=''
-man3ext='0'
-mips_type=''
-mistrustnm=''
-mkdir='mkdir'
-mmaptype='void *'
-modetype='mode_t'
-more='more'
-multiarch='undef'
-mv=''
-myarchname='arm-linux-uclibc'
-mydomain='.dev.null'
-myhostname='maia'
-myuname='linux maia 2.6.22 #1 wed jul 11 12:24:09 cest 2007 armv5tel unknown unknown gnulinux '
-n='-n'
-need_va_copy='undef'
-netdb_hlen_type='size_t'
-netdb_host_type='const void *'
-netdb_name_type='const char *'
-netdb_net_type='in_addr_t'
-nm='nm'
-nm_opt=''
-nm_so_opt='--dynamic'
-
-nroff='nroff'
-nvEUformat='"E"'
-nvFUformat='"F"'
-nvGUformat='"G"'
-nv_preserves_uv_bits='32'
-nveformat='"e"'
-nvfformat='"f"'
-nvgformat='"g"'
-nvsize='8'
-nvtype='double'
-o_nonblock='O_NONBLOCK'
-obj_ext='.o'
-old_pthread_create_joinable=''
-optimize='-O2'
-orderlib='false'
-osname='linux'
-osvers='2.6.22'
-otherlibdirs=' '
-package='perl5'
-pager='/usr/bin/less'
-passcat='cat /etc/passwd'
-
-path_sep=':'
-perl5=''
-perl=''
-perl_patchlevel=''
-perladmin='root@maia.dev.null'
-perllibs='-ldl -lm -lcrypt -lutil -lpthread -lc %%EXTRA_PERLLIBS%%'
-perlpath='/usr/bin/perl'
-pg='pg'
-phostname='hostname'
-pidtype='pid_t'
-plibpth=''
-pmake=''
-pr=''
-prefix='/usr'
-prefixexp='/usr'
-
-
-procselfexe='"/proc/self/exe"'
-prototype='define'
-ptrsize='4'
-quadkind='3'
-quadtype='long long'
-randbits='48'
-randfunc='drand48'
-random_r_proto='REENTRANT_PROTO_I_St'
-randseedtype='long'
-ranlib=':'
-rd_nodata='-1'
-readdir64_r_proto='REENTRANT_PROTO_I_TSR'
-readdir_r_proto='REENTRANT_PROTO_I_TSR'
-revision='5'
-rm='rm'
-rm_try='/bin/rm -f try try a.out .out try.[cho] try..o core core.try* try.core*'
-rmail=''
-run=''
-runnm='false'
-sPRIEUldbl='"E"'
-sPRIFUldbl='"F"'
-sPRIGUldbl='"G"'
-sPRIXU64='"LX"'
-sPRId64='"Ld"'
-sPRIeldbl='"e"'
-sPRIfldbl='"f"'
-sPRIgldbl='"g"'
-sPRIi64='"Li"'
-sPRIo64='"Lo"'
-sPRIu64='"Lu"'
-sPRIx64='"Lx"'
-sSCNfldbl='"f"'
-sched_yield='sched_yield()'
-scriptdir='/usr/bin'
-scriptdirexp='/usr/bin'
-sed='sed'
-seedfunc='srand48'
-selectminbits='32'
-selecttype='fd_set *'
-sendmail=''
-setgrent_r_proto='0'
-sethostent_r_proto='0'
-setlocale_r_proto='0'
-setnetent_r_proto='0'
-setprotoent_r_proto='0'
-setpwent_r_proto='0'
-setservent_r_proto='0'
-sh='/bin/sh'
-shar=''
-sharpbang='#!'
-shmattype='void *'
-shortsize='2'
-shrpenv=''
-shsharp='true'
-sig_count='64'
-sig_name='ZERO HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS RTMIN NUM33 NUM34 NUM35 NUM36 NUM37 NUM38 NUM39 NUM40 NUM41 NUM42 NUM43 NUM44 NUM45 NUM46 NUM47 NUM48 NUM49 NUM50 NUM51 NUM52 NUM53 NUM54 NUM55 NUM56 NUM57 NUM58 NUM59 NUM60 NUM61 NUM62 RTMAX IOT CLD POLL UNUSED '
-sig_name_init='"ZERO", "HUP", "INT", "QUIT", "ILL", "TRAP", "ABRT", "BUS", "FPE", "KILL", "USR1", "SEGV", "USR2", "PIPE", "ALRM", "TERM", "STKFLT", "CHLD", "CONT", "STOP", "TSTP", "TTIN", "TTOU", "URG", "XCPU", "XFSZ", "VTALRM", "PROF", "WINCH", "IO", "PWR", "SYS", "RTMIN", "NUM33", "NUM34", "NUM35", "NUM36", "NUM37", "NUM38", "NUM39", "NUM40", "NUM41", "NUM42", "NUM43", "NUM44", "NUM45", "NUM46", "NUM47", "NUM48", "NUM49", "NUM50", "NUM51", "NUM52", "NUM53", "NUM54", "NUM55", "NUM56", "NUM57", "NUM58", "NUM59", "NUM60", "NUM61", "NUM62", "RTMAX", "IOT", "CLD", "POLL", "UNUSED", 0'
-sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 6 17 29 31 '
-sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 6, 17, 29, 31, 0'
-sig_size='68'
-signal_t='void'
-sitearch=''
-sitearchexp=''
-sitebin='/usr/bin'
-sitebinexp='/usr/bin'
-sitehtml1dir=''
-sitehtml1direxp=''
-sitehtml3dir=''
-sitehtml3direxp=''
-sitelib=''
-#sitelib_stem='/usr/lib/perl5/site_perl'
-sitelibexp=''
-siteman1dir=''
-siteman1direxp=''
-siteman3dir=''
-siteman3direxp=''
-siteprefix='/usr'
-siteprefixexp='/usr'
-sitescript='/usr/bin'
-sitescriptexp='/usr/bin'
-sizesize='4'
-sizetype='size_t'
-sleep=''
-smail=''
-so='so'
-sockethdr=''
-socketlib=''
-socksizetype='socklen_t'
-sort='sort'
-spackage='Perl5'
-spitshell='cat'
-srand48_r_proto='REENTRANT_PROTO_I_LS'
-srandom_r_proto='REENTRANT_PROTO_I_TS'
-src='.'
-ssizetype='ssize_t'
-startperl='#!/usr/bin/perl'
-startsh='#!/bin/sh'
-static_ext=' '
-stdchar='char'
-stdio_base='((fp)->_base)'
-stdio_bufsiz='((fp)->_cnt + (fp)->_ptr - (fp)->_base)'
-stdio_cnt='((fp)->_cnt)'
-stdio_filbuf=''
-stdio_ptr='((fp)->_ptr)'
-stdio_stream_array=''
-strerror_r_proto='REENTRANT_PROTO_B_IBW'
-#strings='/usr/include/string.h'
-submit=''
-sysman='/usr/share/man/man1'
-tail=''
-tar=''
-targetarch='arm-linux-uclibc'
-tbl=''
-tee=''
-test='test'
-#timeincl='/usr/include/sys/time.h /usr/include/time.h '
-timetype='time_t'
-tmpnam_r_proto='REENTRANT_PROTO_B_B'
-to=':'
-touch='touch'
-tr='tr'
-trnl='\n'
-troff=''
-ttyname_r_proto='REENTRANT_PROTO_I_IBW'
-u16size='2'
-u16type='unsigned short'
-u32size='4'
-u32type='unsigned long'
-u64size='8'
-u64type='unsigned long long'
-u8size='1'
-u8type='unsigned char'
-uidformat='"lu"'
-uidsign='1'
-uidsize='4'
-uidtype='uid_t'
-uname='uname'
-uniq='uniq'
-uquadtype='unsigned long long'
-use5005threads='undef'
-use64bitall='undef'
-use64bitint='undef'
-usecbacktrace='undef'
-usecrosscompile='define'
-usedl='define'
-usefaststdio='undef'
-useithreads='define'
-uselargefiles='define'
-uselongdouble='undef'
-usemallocwrap='define'
-usemorebits='undef'
-usemultiplicity='define'
-usemymalloc='n'
-usenm='true'
-useopcode='true'
-useperlio='define'
-useposix='true'
-usequadmath='undef'
-usereentrant='undef'
-userelocatableinc='undef'
-usesfio='false'
-useshrplib='true'
-usesitecustomize='undef'
-usesocks='undef'
-usethreads='define'
-usevendorprefix='undef'
-usevfork='false'
-usrinc='%%INCDIRS%%'
-uuname=''
-uvXUformat='"lX"'
-uvoformat='"lo"'
-uvsize='4'
-uvtype='unsigned long'
-uvuformat='"lu"'
-uvxformat='"lx"'
-vendorarch=''
-vendorarchexp=''
-vendorbin=''
-vendorbinexp=''
-vendorhtml1dir=' '
-vendorhtml1direxp=''
-vendorhtml3dir=' '
-vendorhtml3direxp=''
-vendorlib=''
-vendorlib_stem=''
-vendorlibexp=''
-vendorman1dir=' '
-vendorman1direxp=''
-vendorman3dir=' '
-vendorman3direxp=''
-vendorprefix=''
-vendorprefixexp=''
-vendorscript=''
-vendorscriptexp=''
-
-
-versiononly='undef'
-vi=''
-voidflags='15'
-xlibpth='/usr/lib/386 /lib/386'
-yacc='yacc'
-yaccflags=''
-zcat=''
-zip='zip'
-# Configure command line arguments.
-config_arg0='./Configure'
-config_args='-der -Dusethreads'
-config_argc=2
-config_arg1='-der'
-config_arg2='-Dusethreads'
-PERL_REVISION=5
-PERL_API_REVISION=5
-
-PERL_API_SUBVERSION=0
-PERL_PATCHLEVEL=
-PERL_CONFIG_SH=true
-# Fix problem with HiRes timer.
-d_nanosleep='define'
-d_clock_gettime='define'
-d_clock_getres='define'
-d_clock_nanosleep='define'
-d_clock='define'
-
-# New symbols for perl 5.20.0
-bin_ELF='define'
-charbits='8'
-charsize='1'
-d_asctime64='undef'
-d_attribute_deprecated='define'
-d_ctime64='undef'
-d_difftime64='undef'
-d_gdbm_ndbm_h_uses_prototypes='undef'
-d_gdbmndbm_h_uses_prototypes='undef'
-d_getaddrinfo='define'
-d_getnameinfo='define'
-d_gmtime64='undef'
-d_inetntop='define'
-d_inetpton='define'
-d_ip_mreq='define'
-d_ip_mreq_source='define'
-d_ipv6_mreq='%%IPV6%%'
-d_ipv6_mreq_source='undef'
-d_isblank='define'
-d_libname_unique='undef'
-d_localtime64='undef'
-d_mktime64='undef'
-d_ndbm='undef'
-d_ndbm_h_uses_prototypes='undef'
-d_prctl='define'
-d_prctl_set_name='define'
-d_sin6_scope_id='%%IPV6%%'
-d_sockaddr_in6='%%IPV6%%'
-d_sockaddr_sa_len='undef'
-d_static_inline='define'
-d_timegm='define'
-dtrace=''
-extern_C='extern'
-hostosname=''
-i_assert='define'
-i_bfd='undef'
-i_gdbm_ndbm='undef'
-i_gdbmndbm='undef'
-i_mallocmalloc='undef'
-i_stdbool='define'
-i_syspoll='define'
-#incpth='/usr/lib/gcc/i486-slackware-linux/4.8.2/include /usr/local/include /usr/lib/gcc/i486-slackware-linux/4.8.2/include-fixed /usr/include'
-ld_can_script='define'
-#libsfound=' /usr/lib/libgdbm.so /usr/lib/libdb.so /usr/lib/libdl.so /usr/lib/libm.so /usr/lib/libcrypt.so /usr/lib/libutil.so /usr/lib/libc.so'
-nv_overflows_integers_at='256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0'
-perl_static_inline='static __inline__'
-sGMTIME_max='2147483647'
-sGMTIME_min='-2147483648'
-sLOCALTIME_max='2147483647'
-sLOCALTIME_min='-2147483648'
-#sitelib_stem='/usr/local/lib/perl5/site_perl'
-st_ino_sign='1'
-st_ino_size='8'
-#strings='/usr/include/string.h'
-sysroot=''
-targetdir=''
-targetenv=''
-targethost=''
-targetmkdir=''
-targetport=''
-targetsh='/bin/sh'
-#timeincl='/usr/include/sys/time.h /usr/include/time.h '
-usedevel='undef'
-usedtrace='undef'
-usekernprocpathname='undef'
-usensgetexecutablepath='undef'
-useversionedarchname='undef'
-vaproto='define'
-libdb_needs_pthread='N'
-
-# These symbols changed from perl 5.10.0 to 5.20.0 and probably will
-# change again for new versions, so they're included here for
-# future reference
-api_version='22'
-# Always set this to the base version, not the patched one!
-api_versionstring='5.22.0'
-dynamic_ext='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/DosGlob File/Glob Filter/Util/Call GDBM_File Hash/Util Hash/Util/FieldHash I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc Opcode POSIX PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Tie/Hash/NamedCapture Time/HiRes Time/Piece Unicode/Collate XS/APItest XS/Typemap arybase attributes mro re threads threads/shared'
-installarchlib='/usr/lib/perl5/5.22'
-installprivlib='/usr/lib/perl5/5.22'
-installsitearch='/usr/lib/perl5/5.22'
-installsitelib='/usr/lib/perl5/5.22'
-nonxs_ext='Archive/Tar Attribute/Handlers AutoLoader B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Config/Perl/V Devel/SelfStubber Digest Dumpvalue Env Errno Exporter ExtUtils/CBuilder ExtUtils/Command ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS File/Fetch File/Find File/Path File/Temp FileCache Filter/Simple Getopt/Long HTTP/Tiny I18N/Collate I18N/LangTags IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP Locale/Codes Locale/Maketext Locale/Maketext/Simple Math/BigInt Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NEXT Net/Ping Params/Check Parse/CPAN/Meta Perl/OSType PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage Safe Search/Dict SelfLoader Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Memoize Tie/RefHash Time/Local XSLoader autodie autouse base bignum constant encoding/warnings experimental if lib libnet parent perlfaq podlators Unicode/Normalize version'
-privlib='/usr/lib/perl5/5.22'
-privlibexp='/usr/lib/perl5/5.22'
-archlib='/usr/lib/perl5/5.22'
-archlibexp='/usr/lib/perl5/5.22'
-version='5.22.0'
-version_patchlevel_string='version 22 subversion 0'
-PERL_VERSION=22
-PERL_API_VERSION=22
-PERL_SUBVERSION=0
-patchlevel='22'
-ccdlflags='-fPIC -Wl,-rpath,/usr/lib/perl5/5.22/CORE'
-subversion='0'
-extensions='B Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call GDBM_File Hash/Util I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex Time/HiRes Time/Piece XS/APItest XS/Typemap attrs re threads threads/shared Hash/Util/FieldHash Compress/Zlib Errno IO_Compress_Base IO_Compress_Zlib Unicode/Normalize'
-known_extensions='B Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call GDBM_File Hash/Util I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc NDBM_File ODBM_File Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex Time/HiRes Time/Piece Unicode/Normalize Win32 Win32API/File Win32CORE XS/APItest XS/Typemap attrs re threads threads/shared Hash/Util/FieldHash'
-
-# Make perl use these tools instead of the target binaries during build
-hostgenerate='%%HOSTGENERATE%%'
-hostperl='%%HOSTMINIPERL%%'
diff --git a/lang/perl/files/config.sh-arm.in b/lang/perl/files/config.sh-arm.in
deleted file mode 100644 (file)
index 0403c7c..0000000
+++ /dev/null
@@ -1,1226 +0,0 @@
-#!/bin/sh
-#
-# This file was produced by running the Configure script. It holds all the
-# definitions figured out by Configure. Should you modify one of these values,
-# do not forget to propagate your changes by running "Configure -der". You may
-# instead choose to run each of the .SH files by yourself, or "Configure -S".
-#
-
-# Package name      : perl5
-# Source directory  : .
-# Configuration time: Fri Jul 20 04:18:17 MDT 2007
-# Configured by     : root
-# Target system     : linux maia 2.6.22 #1 wed jul 11 12:24:09 cest 2007 armv5tel unknown unknown gnulinux 
-
-Author=''
-Date=''
-Header=''
-Id=''
-Locker=''
-Log=''
-RCSfile=''
-Revision=''
-Source=''
-State=''
-_a='.a'
-_exe=''
-_o='.o'
-afs='false'
-afsroot='/afs'
-alignbytes='4'
-ansi2knr=''
-aphostname='/bin/hostname'
-api_revision='5'
-api_subversion='0'
-
-
-ar='ar'
-archname64=''
-archname='arm-linux-uclibc'
-archobjs=''
-asctime_r_proto='0'
-awk='awk'
-baserev='5.0'
-bash=''
-bin='/usr/bin'
-binexp='/usr/bin'
-bison='bison'
-byacc='byacc'
-byteorder='1234'
-c=''
-castflags='0'
-cat='cat'
-cc='%%CC%%'
-cccdlflags='-fPIC'
-ccflags='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 %%CFLAGS%%'
-ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
-ccname='gcc'
-ccsymbols='__ARM_ARCH_3__=1'
-ccversion=''
-cf_by='root'
-cf_email='root@maia.dev.null'
-cf_time='Fri Jul 20 04:18:17 MDT 2007'
-chgrp=''
-chmod='chmod'
-chown=''
-clocktype='clock_t'
-comm='comm'
-compress=''
-contains='grep'
-cp='cp'
-cpio=''
-cpp='cpp'
-cpp_stuff='42'
-cppccsymbols=''
-cppflags='%%CFLAGS%%'
-cpplast='-'
-cppminus='-'
-cpprun='%%CPP%%'
-cppstdin='%%CPP%%'
-cppsymbols='__ELF__=1 _FILE_OFFSET_BITS=64 __GLIBC__=2 __GLIBC_MINOR__=2 __GNUC__=3 __GNUC_MINOR__=4 __GNU_LIBRARY__=6 _LARGEFILE_SOURCE=1 _POSIX_C_SOURCE=199506L _POSIX_SOURCE=1 __STDC__=1 __USE_BSD=1 __USE_FILE_OFFSET64=1 __USE_LARGEFILE=1 __USE_MISC=1 __USE_POSIX=1 __USE_POSIX199309=1 __USE_POSIX199506=1 __USE_POSIX2=1 __USE_SVID=1 linux=1 __linux=1 __linux__=1 unix=1 __unix=1 __unix__=1'
-crypt_r_proto='0'
-cryptlib=''
-csh='csh'
-ctermid_r_proto='0'
-ctime_r_proto='0'
-d_Gconvert='sprintf((b),"%.*g",(n),(x))'
-d_PRIEUldbl='define'
-d_PRIFUldbl='define'
-d_PRIGUldbl='define'
-d_PRIXU64='define'
-d_PRId64='define'
-d_PRIeldbl='define'
-d_PRIfldbl='define'
-d_PRIgldbl='define'
-d_PRIi64='define'
-d_PRIo64='define'
-d_PRIu64='define'
-d_PRIx64='define'
-d_SCNfldbl='define'
-d__fwalk='undef'
-d_access='define'
-d_accessx='undef'
-d_acosh='define'
-d_aintl='undef'
-d_alarm='define'
-d_archlib='undef'
-d_asctime_r='undef'
-d_asinh='define'
-d_atanh='define'
-d_atolf='undef'
-d_atoll='define'
-d_attribute_format='define'
-d_attribute_malloc='define'
-d_attribute_nonnull='define'
-d_attribute_noreturn='define'
-d_attribute_pure='define'
-d_attribute_unused='define'
-d_attribute_warn_unused_result='define'
-d_backtrace='define'
-d_bcmp='define'
-d_bcopy='define'
-d_bsd='undef'
-d_bsdgetpgrp='undef'
-d_bsdsetpgrp='undef'
-d_builtin_choose_expr='define'
-d_builtin_expect='undef'
-d_bzero='define'
-d_c99_variadic_macros='define'
-d_casti32='define'
-d_castneg='define'
-d_cbrt='define'
-d_charvspr='undef'
-d_chown='define'
-d_chroot='define'
-d_chsize='undef'
-d_class='undef'
-d_clearenv='define'
-d_closedir='define'
-d_cmsghdr_s='define'
-d_const='define'
-d_copysign='define'
-d_copysignl='undef'
-d_cplusplus='undef'
-d_crypt='define'
-d_crypt_r='undef'
-d_csh='undef'
-d_ctermid='define'
-d_ctermid_r='undef'
-d_ctime_r='undef'
-d_cuserid='define'
-d_dbl_dig='define'
-d_dbminitproto='undef'
-d_difftime='define'
-d_dir_dd_fd='undef'
-d_dirfd='define'
-d_dirnamlen='undef'
-d_dladdr='define'
-d_dlerror='define'
-d_dlopen='define'
-d_dlsymun='undef'
-d_dosuid='undef'
-d_drand48_r='undef'
-d_drand48proto='define'
-d_dup2='define'
-d_eaccess='undef'
-d_endgrent='define'
-d_endgrent_r='undef'
-d_endhent='define'
-d_endhostent_r='undef'
-d_endnent='define'
-d_endnetent_r='undef'
-d_endpent='define'
-d_endprotoent_r='undef'
-d_endpwent='define'
-d_endpwent_r='undef'
-d_endsent='define'
-d_endservent_r='undef'
-d_eofnblk='define'
-d_erf='define'
-d_erfc='define'
-d_eunice='undef'
-d_exp2='define'
-d_expm1='define'
-d_faststdio='undef'
-d_fchdir='define'
-d_fchmod='define'
-d_fchown='define'
-d_fcntl='define'
-d_fcntl_can_lock='define'
-d_fd_macros='define'
-d_fd_set='define'
-d_fdim='define'
-d_fds_bits='undef'
-d_fegetround='undef'
-d_fgetpos='define'
-d_finite='define'
-d_finitel='undef'
-d_flexfnam='define'
-d_flock='define'
-d_flockproto='define'
-d_fma='define'
-d_fmax='define'
-d_fmin='define'
-d_fork='define'
-d_fp_class='undef'
-d_fp_classify='undef'
-d_fp_classl='undef'
-d_fpathconf='define'
-d_fpclass='undef'
-d_fpclassify='define'
-d_fpclassl='undef'
-d_fpgetround='undef'
-d_fpos64_t='undef'
-d_frexpl='undef'
-d_fs_data_s='undef'
-d_fseeko='define'
-d_fsetpos='define'
-d_fstatfs='define'
-d_fstatvfs='define'
-d_fsync='define'
-d_ftello='define'
-d_ftime='undef'
-d_futimes='undef'
-d_getcwd='define'
-d_getespwnam='undef'
-d_getfsstat='undef'
-d_getgrent='define'
-d_getgrent_r='undef'
-d_getgrgid_r='undef'
-d_getgrnam_r='undef'
-d_getgrps='define'
-d_gethbyaddr='define'
-d_gethbyname='define'
-d_gethent='define'
-d_gethname='define'
-d_gethostbyaddr_r='undef'
-d_gethostbyname_r='undef'
-d_gethostent_r='undef'
-d_gethostprotos='define'
-d_getitimer='define'
-d_getlogin='define'
-d_getlogin_r='undef'
-d_getmnt='undef'
-d_getmntent='define'
-d_getnbyaddr='define'
-d_getnbyname='define'
-d_getnent='define'
-d_getnetbyaddr_r='undef'
-d_getnetbyname_r='undef'
-d_getnetent_r='undef'
-d_getnetprotos='define'
-d_getpagsz='define'
-d_getpbyname='define'
-d_getpbynumber='define'
-d_getpent='define'
-d_getpgid='define'
-d_getpgrp2='undef'
-d_getpgrp='define'
-d_getppid='define'
-d_getprior='define'
-d_getprotobyname_r='undef'
-d_getprotobynumber_r='undef'
-d_getprotoent_r='undef'
-d_getprotoprotos='define'
-d_getprpwnam='undef'
-d_getpwent='define'
-d_getpwent_r='undef'
-d_getpwnam_r='undef'
-d_getpwuid_r='undef'
-d_getsbyname='define'
-d_getsbyport='define'
-d_getsent='define'
-d_getservbyname_r='undef'
-d_getservbyport_r='undef'
-d_getservent_r='undef'
-d_getservprotos='define'
-d_getspnam='define'
-d_getspnam_r='undef'
-d_gettimeod='define'
-d_gmtime_r='undef'
-d_gnulibc='undef'
-d_grpasswd='define'
-d_hasmntopt='define'
-d_htonl='define'
-d_hypot='define'
-d_ilogb='define'
-d_ilogbl='undef'
-d_inc_version_list='undef'
-d_index='undef'
-d_inetaton='define'
-d_int64_t='define'
-d_isascii='define'
-d_isfinite='define'
-d_isfinitel='undef'
-d_isinf='define'
-d_isinfl='define'
-d_isless='undef'
-d_isnan='define'
-d_isnanl='undef'
-d_isnormal='define'
-d_j0='undef'
-d_j0l='undef'
-d_killpg='define'
-d_lc_monetary_2008='define'
-d_lchown='define'
-d_ldbl_dig='define'
-d_ldexpl='define'
-d_lgamma='define'
-d_lgamma_r='define'
-d_libm_lib_version='define'
-d_link='define'
-d_llrint='define'
-d_llrintl='define'
-d_llround='define'
-d_llroundl='define'
-d_localtime_r='undef'
-d_localtime_r_needs_tzset='undef'
-d_locconv='define'
-d_lockf='define'
-d_log1p='define'
-d_log2='define'
-d_logb='define'
-d_longdbl='define'
-d_longlong='define'
-d_lrint='define'
-d_lrintl='define'
-d_lround='define'
-d_lroundl='define'
-d_lseekproto='define'
-d_lstat='define'
-d_madvise='define'
-d_malloc_good_size='undef'
-d_malloc_size='undef'
-d_mblen='define'
-d_mbstowcs='define'
-d_mbtowc='define'
-d_memchr='define'
-d_memcmp='define'
-d_memcpy='define'
-d_memmove='define'
-d_memset='define'
-d_mkdir='define'
-d_mkdtemp='define'
-d_mkfifo='define'
-d_mkstemp='define'
-d_mkstemps='undef'
-d_mktime='define'
-d_mmap='define'
-d_modfl='undef'
-d_modfl_pow32_bug='undef'
-d_modflproto='undef'
-d_mprotect='define'
-d_msg='define'
-d_msg_ctrunc='define'
-d_msg_dontroute='define'
-d_msg_oob='define'
-d_msg_peek='define'
-d_msg_proxy='define'
-d_msgctl='define'
-d_msgget='define'
-d_msghdr_s='define'
-d_msgrcv='define'
-d_msgsnd='define'
-d_msync='define'
-d_munmap='define'
-d_mymalloc='undef'
-d_nan='define'
-d_nearbyint='define'
-d_nextafter='define'
-d_nexttoward='undef'
-d_nice='define'
-d_nl_langinfo='define'
-d_nv_preserves_uv='define'
-d_nv_zero_is_allbits_zero='define'
-d_off64_t='undef'
-d_old_pthread_create_joinable='undef'
-d_oldpthreads='undef'
-d_oldsock='undef'
-d_open3='define'
-d_pathconf='define'
-d_pause='define'
-d_perl_otherlibdirs='undef'
-d_phostname='undef'
-d_pipe='define'
-d_poll='define'
-d_portable='define'
-d_printf_format_null='define'
-d_procselfexe='define'
-d_pseudofork='undef'
-d_pthread_atfork='undef'
-d_pthread_attr_setscope='define'
-d_pthread_yield='undef'
-d_ptrdiff_t='define'
-d_pwage='undef'
-d_pwchange='undef'
-d_pwclass='undef'
-d_pwcomment='undef'
-d_pwexpire='undef'
-d_pwgecos='define'
-d_pwpasswd='define'
-d_pwquota='undef'
-d_qgcvt='undef'
-d_quad='define'
-d_random_r='undef'
-d_re_comp='undef'
-d_readdir64_r='undef'
-d_readdir='define'
-d_readdir_r='undef'
-d_readlink='define'
-d_readv='define'
-d_recvmsg='define'
-d_regcmp='undef'
-d_regcomp='define'
-d_remainder='define'
-d_remquo='define'
-d_rename='define'
-d_rewinddir='define'
-d_rint='define'
-d_rmdir='define'
-d_round='define'
-d_safebcpy='undef'
-d_safemcpy='undef'
-d_sanemcmp='define'
-d_sbrkproto='define'
-d_scalbn='define'
-d_scalbnl='undef'
-d_sched_yield='define'
-d_scm_rights='define'
-d_seekdir='define'
-d_select='define'
-d_sem='define'
-d_semctl='define'
-d_semctl_semid_ds='define'
-d_semctl_semun='define'
-d_semget='define'
-d_semop='define'
-d_sendmsg='define'
-d_setegid='define'
-d_seteuid='define'
-d_setgrent='define'
-d_setgrent_r='undef'
-d_setgrps='define'
-d_sethent='define'
-d_sethostent_r='undef'
-d_setitimer='define'
-d_setlinebuf='define'
-d_setlocale='define'
-d_setlocale_r='undef'
-d_setnent='define'
-d_setnetent_r='undef'
-d_setpent='define'
-d_setpgid='define'
-d_setpgrp2='undef'
-d_setpgrp='define'
-d_setprior='define'
-d_setproctitle='undef'
-d_setprotoent_r='undef'
-d_setpwent='define'
-d_setpwent_r='undef'
-d_setregid='define'
-d_setresgid='define'
-d_setresuid='define'
-d_setreuid='define'
-d_setrgid='undef'
-d_setruid='undef'
-d_setsent='define'
-d_setservent_r='undef'
-d_setsid='define'
-d_setvbuf='define'
-d_sfio='undef'
-d_shm='define'
-d_shmat='define'
-d_shmatprototype='define'
-d_shmctl='define'
-d_shmdt='define'
-d_shmget='define'
-d_sigaction='define'
-d_signbit='undef'
-d_sigprocmask='define'
-d_sigsetjmp='define'
-d_sitearch='define'
-d_snprintf='define'
-d_sockatmark='undef'
-d_sockatmarkproto='undef'
-d_socket='define'
-d_socklen_t='define'
-d_sockpair='define'
-d_socks5_init='undef'
-d_sprintf_returns_strlen='define'
-d_sqrtl='undef'
-d_srand48_r='undef'
-d_srandom_r='undef'
-d_sresgproto='undef'
-d_sresuproto='undef'
-d_stat='define'
-d_statblks='define'
-d_statfs_f_flags='undef'
-d_statfs_s='define'
-d_statvfs='define'
-d_stdio_cnt_lval='undef'
-d_stdio_ptr_lval='undef'
-d_stdio_ptr_lval_nochange_cnt='undef'
-d_stdio_ptr_lval_sets_cnt='undef'
-d_stdio_stream_array='undef'
-d_stdiobase='undef'
-d_stdstdio='undef'
-d_strchr='define'
-d_strcoll='define'
-d_strctcpy='define'
-d_strerrm='strerror(e)'
-d_strerror='define'
-d_strerror_r='undef'
-d_strftime='define'
-d_strlcat='define'
-d_strlcpy='define'
-d_strtod='define'
-d_strtol='define'
-d_strtold='define'
-d_strtoll='define'
-d_strtoq='define'
-d_strtoul='define'
-d_strtoull='define'
-d_strtouq='define'
-d_strxfrm='define'
-d_suidsafe='undef'
-d_symlink='define'
-d_syscall='define'
-d_syscallproto='define'
-d_sysconf='define'
-d_sysernlst=''
-d_syserrlst='undef'
-d_system='define'
-d_tcgetpgrp='define'
-d_tcsetpgrp='define'
-d_telldir='define'
-d_telldirproto='define'
-d_tgamma='define'
-d_time='define'
-d_times='define'
-d_tm_tm_gmtoff='define'
-d_tm_tm_zone='define'
-d_tmpnam_r='undef'
-d_trunc='define'
-d_truncate='define'
-d_truncl='define'
-d_ttyname_r='undef'
-d_tzname='define'
-d_u32align='undef'
-d_ualarm='define'
-d_umask='define'
-d_uname='define'
-d_union_semun='undef'
-d_unordered='undef'
-d_unsetenv='define'
-d_usleep='define'
-d_usleepproto='define'
-d_ustat='define'
-d_vendorarch='undef'
-d_vendorbin='undef'
-d_vendorlib='undef'
-d_vendorscript='undef'
-d_vfork='undef'
-d_void_closedir='undef'
-d_voidsig='define'
-d_voidtty=''
-d_volatile='define'
-d_vprintf='define'
-d_vsnprintf='define'
-d_wait4='define'
-d_waitpid='define'
-d_wcscmp='define'
-d_wcstombs='define'
-d_wcsxfrm='define'
-d_wctomb='define'
-d_writev='define'
-d_xenix='undef'
-date='date'
-db_hashtype='u_int32_t'
-db_prefixtype='size_t'
-db_version_major=''
-db_version_minor=''
-db_version_patch=''
-defvoidused='15'
-direntrytype='struct dirent'
-dlext='so'
-dlsrc='dl_dlopen.xs'
-doublekind='3'
-doublesize='8'
-drand01='drand48()'
-drand48_r_proto='0'
-
-eagain='EAGAIN'
-ebcdic='undef'
-echo='echo'
-egrep='egrep'
-emacs=''
-endgrent_r_proto='0'
-endhostent_r_proto='0'
-endnetent_r_proto='0'
-endprotoent_r_proto='0'
-endpwent_r_proto='0'
-endservent_r_proto='0'
-eunicefix=':'
-exe_ext=''
-expr='expr'
-extras=''
-fflushNULL='define'
-fflushall='undef'
-find=''
-firstmakefile='makefile'
-flex=''
-fpossize='20'
-fpostype='fpos_t'
-freetype='void'
-from=':'
-full_ar='%%AR%%'
-full_csh='csh'
-full_sed='sed'
-gccansipedantic=''
-gccosandvers=''
-gccversion='3.4.3'
-getgrent_r_proto='0'
-getgrgid_r_proto='0'
-getgrnam_r_proto='0'
-gethostbyaddr_r_proto='0'
-gethostbyname_r_proto='0'
-gethostent_r_proto='0'
-getlogin_r_proto='0'
-getnetbyaddr_r_proto='0'
-getnetbyname_r_proto='0'
-getnetent_r_proto='0'
-getprotobyname_r_proto='0'
-getprotobynumber_r_proto='0'
-getprotoent_r_proto='0'
-getpwent_r_proto='0'
-getpwnam_r_proto='0'
-getpwuid_r_proto='0'
-getservbyname_r_proto='0'
-getservbyport_r_proto='0'
-getservent_r_proto='0'
-getspnam_r_proto='0'
-gidformat='"lu"'
-gidsign='1'
-gidsize='4'
-gidtype='gid_t'
-glibpth='/usr/shlib  /lib /usr/lib /usr/lib/386 /lib/386 /usr/ccs/lib /usr/ucblib /usr/local/lib '
-gmake='gmake'
-gmtime_r_proto='0'
-gnulibc_version=''
-grep='grep'
-groupcat='cat /etc/group'
-groupstype='gid_t'
-gzip='gzip'
-h_fcntl='false'
-h_sysfile='true'
-hint='recommended'
-hostcat='cat /etc/hosts'
-html1dir=' '
-html1direxp=''
-html3dir=' '
-html3direxp=''
-i16size='2'
-i16type='signed short'
-i32size='4'
-i32type='signed long'
-i64size='8'
-i64type='signed long long'
-i8size='1'
-i8type='signed char'
-i_arpainet='define'
-i_bsdioctl=''
-i_crypt='define'
-i_db='define'
-i_dbm='undef'
-i_dirent='define'
-i_dld='undef'
-i_dlfcn='define'
-i_execinfo='define'
-i_fcntl='undef'
-i_fenv='undef'
-i_float='define'
-i_fp='undef'
-i_fp_class='undef'
-i_gdbm='define'
-i_grp='define'
-i_ieeefp='undef'
-i_inttypes='define'
-i_langinfo='define'
-i_libutil='undef'
-i_limits='define'
-i_locale='define'
-i_machcthr='undef'
-i_malloc='define'
-i_math='define'
-i_memory='undef'
-i_mntent='define'
-i_ndbm='undef'
-i_netdb='define'
-i_neterrno='undef'
-i_netinettcp='define'
-i_niin='define'
-i_poll='define'
-i_prot='undef'
-i_pthread='define'
-i_pwd='define'
-i_quadmath='define'
-i_rpcsvcdbm='undef'
-i_sfio='undef'
-i_sgtty='undef'
-i_shadow='define'
-i_socks='undef'
-i_stdarg='define'
-i_stddef='define'
-i_stdint='define'
-i_stdlib='define'
-i_string='define'
-i_sunmath='undef'
-i_sysaccess='undef'
-i_sysdir='define'
-i_sysfile='define'
-i_sysfilio='undef'
-i_sysin='undef'
-i_sysioctl='define'
-i_syslog='define'
-i_sysmman='define'
-i_sysmode='undef'
-i_sysmount='define'
-i_sysndir='undef'
-i_sysparam='define'
-i_sysresrc='define'
-i_syssecrt='undef'
-i_sysselct='define'
-i_syssockio='undef'
-i_sysstat='define'
-i_sysstatfs='define'
-i_sysstatvfs='define'
-i_systime='define'
-i_systimek='undef'
-i_systimes='define'
-i_systypes='define'
-i_sysuio='define'
-i_sysun='define'
-i_sysutsname='define'
-i_sysvfs='define'
-i_syswait='define'
-i_termio='undef'
-i_termios='define'
-i_time='define'
-i_unistd='define'
-i_ustat='define'
-i_utime='define'
-i_values='define'
-i_varargs='undef'
-i_varhdr='stdarg.h'
-i_vfork='undef'
-ignore_versioned_solibs='y'
-inc_version_list=' '
-inc_version_list_init='0'
-incpath=''
-inews=''
-
-installbin='/usr/bin'
-initialinstalllocation='/usr/bin'
-installhtml1dir=''
-installhtml3dir=''
-installman1dir=''
-installman3dir=''
-installprefix='/usr'
-installprefixexp='/usr'
-
-installscript='/usr/bin'
-
-installsitebin='/usr/bin'
-installsitehtml1dir=''
-installsitehtml3dir=''
-
-installsiteman1dir=''
-installsiteman3dir=''
-installsitescript='/usr/bin'
-installstyle='lib/perl5'
-installusrbinperl='define'
-installvendorarch=''
-installvendorbin=''
-installvendorhtml1dir=''
-installvendorhtml3dir=''
-installvendorlib=''
-installvendorman1dir=''
-installvendorman3dir=''
-installvendorscript=''
-intsize='4'
-issymlink='test -h'
-ivdformat='"ld"'
-ivsize='4'
-ivtype='long'
-ksh=''
-ld='%%LD%%'
-lddlflags='-shared %%LDFLAGS%%'
-ldflags='%%EXTRA_PERLLIBDIRS%%'
-ldflags_uselargefiles=''
-ldlibpthname='LD_LIBRARY_PATH'
-less='less'
-lib_ext='.a'
-libc=''
-libperl='libperl.so'
-libpth='%%LIBDIRS%%'
-libs='-lgdbm -ldb -ldl -lm -lcrypt -lutil -lc'
-libsdirs='%%LIBDIRS%%'
-libsfiles=' libdl.so libm.so libcrypt.so libutil.so libc.so'
-#libsfound=' /usr/lib/libdl.so /usr/lib/libm.so /usr/lib/libcrypt.so /usr/lib/libutil.so /usr/lib/libc.so'
-libspath='%%LIBDIRS%%'
-libswanted='sfio socket inet nm ndbm gdbm dbm db malloc dl dld ld sun m crypt sec util c cposix posix ucb BSD'
-libswanted_uselargefiles=''
-line=''
-lint=''
-lkflags=''
-ln='ln'
-lns='/bin/ln -s'
-localtime_r_proto='0'
-locincpth=' '
-loclibpth=' '
-longdblkind='0'
-longdblsize='8'
-longlongsize='8'
-longsize='4'
-lp=''
-lpr=''
-ls='ls'
-lseeksize='8'
-lseektype='off_t'
-mail=''
-mailx=''
-make='make'
-make_set_make='#'
-mallocobj=''
-mallocsrc=''
-malloctype='void *'
-man1dir=' '
-man1direxp=''
-man1ext='0'
-man3dir=' '
-man3direxp=''
-man3ext='0'
-mips_type=''
-mistrustnm=''
-mkdir='mkdir'
-mmaptype='void *'
-modetype='mode_t'
-more='more'
-multiarch='undef'
-mv=''
-myarchname='arm-linux-uclibc'
-mydomain='.dev.null'
-myhostname='maia'
-myuname='linux maia 2.6.22 #1 wed jul 11 12:24:09 cest 2007 armv5tel unknown unknown gnulinux '
-n='-n'
-need_va_copy='undef'
-netdb_hlen_type='size_t'
-netdb_host_type='const void *'
-netdb_name_type='const char *'
-netdb_net_type='in_addr_t'
-nm='nm'
-nm_opt=''
-nm_so_opt='--dynamic'
-
-nroff='nroff'
-nvEUformat='"E"'
-nvFUformat='"F"'
-nvGUformat='"G"'
-nv_preserves_uv_bits='32'
-nveformat='"e"'
-nvfformat='"f"'
-nvgformat='"g"'
-nvsize='8'
-nvtype='double'
-o_nonblock='O_NONBLOCK'
-obj_ext='.o'
-old_pthread_create_joinable=''
-optimize='-O2'
-orderlib='false'
-osname='linux'
-osvers='2.6.22'
-otherlibdirs=' '
-package='perl5'
-pager='/usr/bin/less'
-passcat='cat /etc/passwd'
-
-path_sep=':'
-perl5=''
-perl=''
-perl_patchlevel=''
-perladmin='root@maia.dev.null'
-perllibs='-ldl -lm -lcrypt -lutil -lc %%EXTRA_PERLLIBS%%'
-perlpath='/usr/bin/perl'
-pg='pg'
-phostname='hostname'
-pidtype='pid_t'
-plibpth=''
-pmake=''
-pr=''
-prefix='/usr'
-prefixexp='/usr'
-
-
-procselfexe='"/proc/self/exe"'
-prototype='define'
-ptrsize='4'
-quadkind='3'
-quadtype='long long'
-randbits='48'
-randfunc='drand48'
-random_r_proto='0'
-randseedtype='long'
-ranlib=':'
-rd_nodata='-1'
-readdir64_r_proto='0'
-readdir_r_proto='0'
-revision='5'
-rm='rm'
-rm_try='/bin/rm -f try try a.out .out try.[cho] try..o core core.try* try.core*'
-rmail=''
-run=''
-runnm='false'
-sPRIEUldbl='"E"'
-sPRIFUldbl='"F"'
-sPRIGUldbl='"G"'
-sPRIXU64='"LX"'
-sPRId64='"Ld"'
-sPRIeldbl='"e"'
-sPRIfldbl='"f"'
-sPRIgldbl='"g"'
-sPRIi64='"Li"'
-sPRIo64='"Lo"'
-sPRIu64='"Lu"'
-sPRIx64='"Lx"'
-sSCNfldbl='"f"'
-sched_yield='sched_yield()'
-scriptdir='/usr/bin'
-scriptdirexp='/usr/bin'
-sed='sed'
-seedfunc='srand48'
-selectminbits='32'
-selecttype='fd_set *'
-sendmail=''
-setgrent_r_proto='0'
-sethostent_r_proto='0'
-setlocale_r_proto='0'
-setnetent_r_proto='0'
-setprotoent_r_proto='0'
-setpwent_r_proto='0'
-setservent_r_proto='0'
-sh='/bin/sh'
-shar=''
-sharpbang='#!'
-shmattype='void *'
-shortsize='2'
-shrpenv=''
-shsharp='true'
-sig_count='64'
-sig_name='ZERO HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS RTMIN NUM33 NUM34 NUM35 NUM36 NUM37 NUM38 NUM39 NUM40 NUM41 NUM42 NUM43 NUM44 NUM45 NUM46 NUM47 NUM48 NUM49 NUM50 NUM51 NUM52 NUM53 NUM54 NUM55 NUM56 NUM57 NUM58 NUM59 NUM60 NUM61 NUM62 RTMAX IOT CLD POLL UNUSED '
-sig_name_init='"ZERO", "HUP", "INT", "QUIT", "ILL", "TRAP", "ABRT", "BUS", "FPE", "KILL", "USR1", "SEGV", "USR2", "PIPE", "ALRM", "TERM", "STKFLT", "CHLD", "CONT", "STOP", "TSTP", "TTIN", "TTOU", "URG", "XCPU", "XFSZ", "VTALRM", "PROF", "WINCH", "IO", "PWR", "SYS", "RTMIN", "NUM33", "NUM34", "NUM35", "NUM36", "NUM37", "NUM38", "NUM39", "NUM40", "NUM41", "NUM42", "NUM43", "NUM44", "NUM45", "NUM46", "NUM47", "NUM48", "NUM49", "NUM50", "NUM51", "NUM52", "NUM53", "NUM54", "NUM55", "NUM56", "NUM57", "NUM58", "NUM59", "NUM60", "NUM61", "NUM62", "RTMAX", "IOT", "CLD", "POLL", "UNUSED", 0'
-sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 6 17 29 31 '
-sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 6, 17, 29, 31, 0'
-sig_size='68'
-signal_t='void'
-sitearch=''
-sitearchexp=''
-sitebin='/usr/bin'
-sitebinexp='/usr/bin'
-sitehtml1dir=''
-sitehtml1direxp=''
-sitehtml3dir=''
-sitehtml3direxp=''
-sitelib=''
-#sitelib_stem='/usr/lib/perl5/site_perl'
-sitelibexp=''
-siteman1dir=''
-siteman1direxp=''
-siteman3dir=''
-siteman3direxp=''
-siteprefix='/usr'
-siteprefixexp='/usr'
-sitescript='/usr/bin'
-sitescriptexp='/usr/bin'
-sizesize='4'
-sizetype='size_t'
-sleep=''
-smail=''
-so='so'
-sockethdr=''
-socketlib=''
-socksizetype='socklen_t'
-sort='sort'
-spackage='Perl5'
-spitshell='cat'
-srand48_r_proto='0'
-srandom_r_proto='0'
-src='.'
-ssizetype='ssize_t'
-startperl='#!/usr/bin/perl'
-startsh='#!/bin/sh'
-static_ext=' '
-stdchar='char'
-stdio_base='((fp)->_base)'
-stdio_bufsiz='((fp)->_cnt + (fp)->_ptr - (fp)->_base)'
-stdio_cnt='((fp)->_cnt)'
-stdio_filbuf=''
-stdio_ptr='((fp)->_ptr)'
-stdio_stream_array=''
-strerror_r_proto='0'
-#strings='/usr/include/string.h'
-submit=''
-sysman='/usr/share/man/man1'
-tail=''
-tar=''
-targetarch='arm-linux-uclibc'
-tbl=''
-tee=''
-test='test'
-#timeincl='/usr/include/sys/time.h /usr/include/time.h '
-timetype='time_t'
-tmpnam_r_proto='0'
-to=':'
-touch='touch'
-tr='tr'
-trnl='\n'
-troff=''
-ttyname_r_proto='0'
-u16size='2'
-u16type='unsigned short'
-u32size='4'
-u32type='unsigned long'
-u64size='8'
-u64type='unsigned long long'
-u8size='1'
-u8type='unsigned char'
-uidformat='"lu"'
-uidsign='1'
-uidsize='4'
-uidtype='uid_t'
-uname='uname'
-uniq='uniq'
-uquadtype='unsigned long long'
-use5005threads='undef'
-use64bitall='undef'
-use64bitint='undef'
-usecbacktrace='undef'
-usecrosscompile='define'
-usedl='define'
-usefaststdio='undef'
-useithreads='undef'
-uselargefiles='define'
-uselongdouble='undef'
-usemallocwrap='define'
-usemorebits='undef'
-usemultiplicity='undef'
-usemymalloc='n'
-usenm='true'
-useopcode='true'
-useperlio='define'
-useposix='true'
-usequadmath='undef'
-usereentrant='undef'
-userelocatableinc='undef'
-usesfio='false'
-useshrplib='true'
-usesitecustomize='undef'
-usesocks='undef'
-usethreads='undef'
-usevendorprefix='undef'
-usevfork='false'
-usrinc='%%INCDIRS%%'
-uuname=''
-uvXUformat='"lX"'
-uvoformat='"lo"'
-uvsize='4'
-uvtype='unsigned long'
-uvuformat='"lu"'
-uvxformat='"lx"'
-vendorarch=''
-vendorarchexp=''
-vendorbin=''
-vendorbinexp=''
-vendorhtml1dir=' '
-vendorhtml1direxp=''
-vendorhtml3dir=' '
-vendorhtml3direxp=''
-vendorlib=''
-vendorlib_stem=''
-vendorlibexp=''
-vendorman1dir=' '
-vendorman1direxp=''
-vendorman3dir=' '
-vendorman3direxp=''
-vendorprefix=''
-vendorprefixexp=''
-vendorscript=''
-vendorscriptexp=''
-
-
-versiononly='undef'
-vi=''
-voidflags='15'
-xlibpth='/usr/lib/386 /lib/386'
-yacc='yacc'
-yaccflags=''
-zcat=''
-zip='zip'
-# Configure command line arguments.
-config_arg0='./Configure'
-config_args='-der'
-config_argc=1
-config_arg1='-der'
-PERL_REVISION=5
-PERL_API_REVISION=5
-
-PERL_API_SUBVERSION=0
-PERL_PATCHLEVEL=
-PERL_CONFIG_SH=true
-# Fix problem with HiRes timer.
-d_nanosleep='define'
-d_clock_gettime='define'
-d_clock_getres='define'
-d_clock_nanosleep='define'
-d_clock='define'
-
-# New symbols for perl 5.20.0
-bin_ELF='define'
-charbits='8'
-charsize='1'
-d_asctime64='undef'
-d_attribute_deprecated='define'
-d_ctime64='undef'
-d_difftime64='undef'
-d_gdbm_ndbm_h_uses_prototypes='undef'
-d_gdbmndbm_h_uses_prototypes='undef'
-d_getaddrinfo='define'
-d_getnameinfo='define'
-d_gmtime64='undef'
-d_inetntop='define'
-d_inetpton='define'
-d_ip_mreq='define'
-d_ip_mreq_source='define'
-d_ipv6_mreq='%%IPV6%%'
-d_ipv6_mreq_source='undef'
-d_isblank='define'
-d_libname_unique='undef'
-d_localtime64='undef'
-d_mktime64='undef'
-d_ndbm='undef'
-d_ndbm_h_uses_prototypes='undef'
-d_prctl='define'
-d_prctl_set_name='define'
-d_sin6_scope_id='%%IPV6%%'
-d_sockaddr_in6='%%IPV6%%'
-d_sockaddr_sa_len='undef'
-d_static_inline='define'
-d_timegm='define'
-dtrace=''
-extern_C='extern'
-hostosname=''
-i_assert='define'
-i_bfd='undef'
-i_gdbm_ndbm='undef'
-i_gdbmndbm='undef'
-i_mallocmalloc='undef'
-i_stdbool='define'
-i_syspoll='define'
-#incpth='/usr/lib/gcc/i486-slackware-linux/4.8.2/include /usr/local/include /usr/lib/gcc/i486-slackware-linux/4.8.2/include-fixed /usr/include'
-ld_can_script='define'
-#libsfound=' /usr/lib/libgdbm.so /usr/lib/libdb.so /usr/lib/libdl.so /usr/lib/libm.so /usr/lib/libcrypt.so /usr/lib/libutil.so /usr/lib/libc.so'
-nv_overflows_integers_at='256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0'
-perl_static_inline='static __inline__'
-sGMTIME_max='2147483647'
-sGMTIME_min='-2147483648'
-sLOCALTIME_max='2147483647'
-sLOCALTIME_min='-2147483648'
-#sitelib_stem='/usr/local/lib/perl5/site_perl'
-st_ino_sign='1'
-st_ino_size='8'
-#strings='/usr/include/string.h'
-sysroot=''
-targetdir=''
-targetenv=''
-targethost=''
-targetmkdir=''
-targetport=''
-targetsh='/bin/sh'
-#timeincl='/usr/include/sys/time.h /usr/include/time.h '
-usedevel='undef'
-usedtrace='undef'
-usekernprocpathname='undef'
-usensgetexecutablepath='undef'
-useversionedarchname='undef'
-vaproto='define'
-libdb_needs_pthread='N'
-
-# These symbols changed from perl 5.10.0 to 5.20.0 and probably will
-# change again for new versions, so they're included here for
-# future reference
-api_version='22'
-# Always set this to the base version, not the patched one!
-api_versionstring='5.22.0'
-dynamic_ext='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/DosGlob File/Glob Filter/Util/Call GDBM_File Hash/Util Hash/Util/FieldHash I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc Opcode POSIX PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Tie/Hash/NamedCapture Time/HiRes Time/Piece Unicode/Collate XS/APItest XS/Typemap arybase attributes mro re threads threads/shared'
-installarchlib='/usr/lib/perl5/5.22'
-installprivlib='/usr/lib/perl5/5.22'
-installsitearch='/usr/lib/perl5/5.22'
-installsitelib='/usr/lib/perl5/5.22'
-nonxs_ext='Archive/Tar Attribute/Handlers AutoLoader B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Config/Perl/V Devel/SelfStubber Digest Dumpvalue Env Errno Exporter ExtUtils/CBuilder ExtUtils/Command ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS File/Fetch File/Find File/Path File/Temp FileCache Filter/Simple Getopt/Long HTTP/Tiny I18N/Collate I18N/LangTags IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP Locale/Codes Locale/Maketext Locale/Maketext/Simple Math/BigInt Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NEXT Net/Ping Params/Check Parse/CPAN/Meta Perl/OSType PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage Safe Search/Dict SelfLoader Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Memoize Tie/RefHash Time/Local XSLoader autodie autouse base bignum constant encoding/warnings experimental if lib libnet parent perlfaq podlators Unicode/Normalize version'
-privlib='/usr/lib/perl5/5.22'
-privlibexp='/usr/lib/perl5/5.22'
-archlib='/usr/lib/perl5/5.22'
-archlibexp='/usr/lib/perl5/5.22'
-version='5.22.0'
-version_patchlevel_string='version 22 subversion 0'
-PERL_VERSION=22
-PERL_API_VERSION=22
-PERL_SUBVERSION=0
-patchlevel='22'
-ccdlflags='-fPIC -Wl,-rpath,/usr/lib/perl5/5.22/CORE'
-subversion='0'
-extensions='B Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call GDBM_File Hash/Util I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex Time/HiRes Time/Piece XS/APItest XS/Typemap attrs re threads threads/shared Hash/Util/FieldHash Compress/Zlib Errno IO_Compress_Base IO_Compress_Zlib Unicode/Normalize'
-known_extensions='B Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call GDBM_File Hash/Util I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc NDBM_File ODBM_File Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex Time/HiRes Time/Piece Unicode/Normalize Win32 Win32API/File Win32CORE XS/APItest XS/Typemap attrs re threads threads/shared Hash/Util/FieldHash'
-
-# Make perl use these tools instead of the target binaries during build
-hostgenerate='%%HOSTGENERATE%%'
-hostperl='%%HOSTMINIPERL%%'
diff --git a/lang/perl/files/config.sh-armeb-mt.in b/lang/perl/files/config.sh-armeb-mt.in
deleted file mode 100644 (file)
index 33b3c09..0000000
+++ /dev/null
@@ -1,1226 +0,0 @@
-#!/bin/sh
-#
-# This file was produced by running the Configure script. It holds all the
-# definitions figured out by Configure. Should you modify one of these values,
-# do not forget to propagate your changes by running "Configure -der". You may
-# instead choose to run each of the .SH files by yourself, or "Configure -S".
-#
-
-# Package name      : perl5
-# Source directory  : .
-# Configuration time: Fri Jul 20 04:39:05 MDT 2007
-# Configured by     : root
-# Target system     : linux maia 2.6.22 #1 wed jul 11 12:24:09 cest 2007 armv5teb unknown unknown gnulinux 
-
-Author=''
-Date=''
-Header=''
-Id=''
-Locker=''
-Log=''
-RCSfile=''
-Revision=''
-Source=''
-State=''
-_a='.a'
-_exe=''
-_o='.o'
-afs='false'
-afsroot='/afs'
-alignbytes='4'
-ansi2knr=''
-aphostname='/bin/hostname'
-api_revision='5'
-
-
-ar='ar'
-archname64=''
-archname='armeb-linux-uclibc'
-archobjs=''
-asctime_r_proto='REENTRANT_PROTO_B_SB'
-awk='awk'
-baserev='5.0'
-bash=''
-bin='/usr/bin'
-binexp='/usr/bin'
-bison='bison'
-byacc='byacc'
-byteorder='4321'
-c=''
-castflags='0'
-cat='cat'
-cc='%%CC%%'
-cccdlflags='-fPIC'
-ccflags='-D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 %%CFLAGS%%'
-ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
-ccname='gcc'
-ccsymbols='__ARM_ARCH_3__=1'
-ccversion=''
-cf_by='root'
-cf_email='root@maia.dev.null'
-cf_time='Fri Jul 20 04:39:05 MDT 2007'
-chgrp=''
-chmod='chmod'
-chown=''
-clocktype='clock_t'
-comm='comm'
-compress=''
-contains='grep'
-cp='cp'
-cpio=''
-cpp='cpp'
-cpp_stuff='42'
-cppccsymbols=''
-cppflags='-D_REENTRANT -D_GNU_SOURCE %%CFLAGS%%'
-cpplast='-'
-cppminus='-'
-cpprun='%%CPP%%'
-cppstdin='%%CPP%%'
-cppsymbols='__ELF__=1 _FILE_OFFSET_BITS=64 __GLIBC__=2 __GLIBC_MINOR__=2 __GNUC__=3 __GNUC_MINOR__=4 __GNU_LIBRARY__=6 _LARGEFILE_SOURCE=1 _POSIX_C_SOURCE=199506L _POSIX_SOURCE=1 __STDC__=1 __USE_BSD=1 __USE_FILE_OFFSET64=1 __USE_LARGEFILE=1 __USE_MISC=1 __USE_POSIX=1 __USE_POSIX199309=1 __USE_POSIX199506=1 __USE_POSIX2=1 __USE_SVID=1 linux=1 __linux=1 __linux__=1 unix=1 __unix=1 __unix__=1'
-crypt_r_proto='%%CRYPT_R_PROTO%%'
-cryptlib=''
-csh='csh'
-ctermid_r_proto='0'
-ctime_r_proto='REENTRANT_PROTO_B_SB'
-d_Gconvert='sprintf((b),"%.*g",(n),(x))'
-d_PRIEUldbl='define'
-d_PRIFUldbl='define'
-d_PRIGUldbl='define'
-d_PRIXU64='define'
-d_PRId64='define'
-d_PRIeldbl='define'
-d_PRIfldbl='define'
-d_PRIgldbl='define'
-d_PRIi64='define'
-d_PRIo64='define'
-d_PRIu64='define'
-d_PRIx64='define'
-d_SCNfldbl='define'
-d__fwalk='undef'
-d_access='define'
-d_accessx='undef'
-d_acosh='define'
-d_aintl='undef'
-d_alarm='define'
-d_archlib='undef'
-d_asctime_r='define'
-d_asinh='define'
-d_atanh='define'
-d_atolf='undef'
-d_atoll='define'
-d_attribute_format='define'
-d_attribute_malloc='define'
-d_attribute_nonnull='define'
-d_attribute_noreturn='define'
-d_attribute_pure='define'
-d_attribute_unused='define'
-d_attribute_warn_unused_result='define'
-d_backtrace='define'
-d_bcmp='define'
-d_bcopy='define'
-d_bsd='undef'
-d_bsdgetpgrp='undef'
-d_bsdsetpgrp='undef'
-d_builtin_choose_expr='define'
-d_builtin_expect='undef'
-d_bzero='define'
-d_c99_variadic_macros='define'
-d_casti32='define'
-d_castneg='define'
-d_cbrt='define'
-d_charvspr='undef'
-d_chown='define'
-d_chroot='define'
-d_chsize='undef'
-d_class='undef'
-d_clearenv='define'
-d_closedir='define'
-d_cmsghdr_s='define'
-d_const='define'
-d_copysign='define'
-d_copysignl='undef'
-d_cplusplus='undef'
-d_crypt='%%CRYPT%%'
-d_crypt_r='%%CRYPT%%'
-d_csh='undef'
-d_ctermid='define'
-d_ctermid_r='undef'
-d_ctime_r='define'
-d_cuserid='define'
-d_dbl_dig='define'
-d_dbminitproto='undef'
-d_difftime='define'
-d_dir_dd_fd='undef'
-d_dirfd='define'
-d_dirnamlen='undef'
-d_dladdr='define'
-d_dlerror='define'
-d_dlopen='define'
-d_dlsymun='undef'
-d_dosuid='undef'
-d_drand48_r='define'
-d_drand48proto='define'
-d_dup2='define'
-d_eaccess='undef'
-d_endgrent='define'
-d_endgrent_r='undef'
-d_endhent='define'
-d_endhostent_r='undef'
-d_endnent='define'
-d_endnetent_r='undef'
-d_endpent='define'
-d_endprotoent_r='undef'
-d_endpwent='define'
-d_endpwent_r='undef'
-d_endsent='define'
-d_endservent_r='undef'
-d_eofnblk='define'
-d_erf='define'
-d_erfc='define'
-d_eunice='undef'
-d_exp2='define'
-d_expm1='define'
-d_faststdio='undef'
-d_fchdir='define'
-d_fchmod='define'
-d_fchown='define'
-d_fcntl='define'
-d_fcntl_can_lock='define'
-d_fd_macros='define'
-d_fd_set='define'
-d_fdim='define'
-d_fds_bits='define'
-d_fegetround='undef'
-d_fgetpos='define'
-d_finite='define'
-d_finitel='undef'
-d_flexfnam='define'
-d_flock='define'
-d_flockproto='define'
-d_fma='define'
-d_fmax='define'
-d_fmin='define'
-d_fork='define'
-d_fp_class='undef'
-d_fp_classify='undef'
-d_fp_classl='undef'
-d_fpathconf='define'
-d_fpclass='undef'
-d_fpclassify='define'
-d_fpclassl='undef'
-d_fpgetround='undef'
-d_fpos64_t='undef'
-d_frexpl='undef'
-d_fs_data_s='undef'
-d_fseeko='define'
-d_fsetpos='define'
-d_fstatfs='define'
-d_fstatvfs='define'
-d_fsync='define'
-d_ftello='define'
-d_ftime='undef'
-d_futimes='undef'
-d_getcwd='define'
-d_getespwnam='undef'
-d_getfsstat='undef'
-d_getgrent='define'
-d_getgrent_r='define'
-d_getgrgid_r='define'
-d_getgrnam_r='define'
-d_getgrps='define'
-d_gethbyaddr='define'
-d_gethbyname='define'
-d_gethent='define'
-d_gethname='define'
-d_gethostbyaddr_r='define'
-d_gethostbyname_r='define'
-d_gethostent_r='define'
-d_gethostprotos='define'
-d_getitimer='define'
-d_getlogin='define'
-d_getlogin_r='define'
-d_getmnt='undef'
-d_getmntent='define'
-d_getnbyaddr='define'
-d_getnbyname='define'
-d_getnent='define'
-d_getnetbyaddr_r='define'
-d_getnetbyname_r='define'
-d_getnetent_r='define'
-d_getnetprotos='define'
-d_getpagsz='define'
-d_getpbyname='define'
-d_getpbynumber='define'
-d_getpent='define'
-d_getpgid='define'
-d_getpgrp2='undef'
-d_getpgrp='define'
-d_getppid='define'
-d_getprior='define'
-d_getprotobyname_r='define'
-d_getprotobynumber_r='define'
-d_getprotoent_r='define'
-d_getprotoprotos='define'
-d_getprpwnam='undef'
-d_getpwent='define'
-d_getpwent_r='define'
-d_getpwnam_r='define'
-d_getpwuid_r='define'
-d_getsbyname='define'
-d_getsbyport='define'
-d_getsent='define'
-d_getservbyname_r='define'
-d_getservbyport_r='define'
-d_getservent_r='define'
-d_getservprotos='define'
-d_getspnam='define'
-d_getspnam_r='define'
-d_gettimeod='define'
-d_gmtime_r='define'
-d_gnulibc='undef'
-d_grpasswd='define'
-d_hasmntopt='define'
-d_htonl='define'
-d_hypot='define'
-d_ilogb='define'
-d_ilogbl='undef'
-d_inc_version_list='undef'
-d_index='undef'
-d_inetaton='define'
-d_int64_t='define'
-d_isascii='define'
-d_isfinite='define'
-d_isfinitel='undef'
-d_isinf='define'
-d_isinfl='define'
-d_isless='undef'
-d_isnan='define'
-d_isnanl='undef'
-d_isnormal='define'
-d_j0='undef'
-d_j0l='undef'
-d_killpg='define'
-d_lc_monetary_2008='define'
-d_lchown='define'
-d_ldbl_dig='define'
-d_ldexpl='define'
-d_lgamma='define'
-d_lgamma_r='define'
-d_libm_lib_version='define'
-d_link='define'
-d_llrint='define'
-d_llrintl='define'
-d_llround='define'
-d_llroundl='define'
-d_localtime_r='define'
-d_localtime_r_needs_tzset='define'
-d_locconv='define'
-d_lockf='define'
-d_log1p='define'
-d_log2='define'
-d_logb='define'
-d_longdbl='define'
-d_longlong='define'
-d_lrint='define'
-d_lrintl='define'
-d_lround='define'
-d_lroundl='define'
-d_lseekproto='define'
-d_lstat='define'
-d_madvise='define'
-d_malloc_good_size='undef'
-d_malloc_size='undef'
-d_mblen='define'
-d_mbstowcs='define'
-d_mbtowc='define'
-d_memchr='define'
-d_memcmp='define'
-d_memcpy='define'
-d_memmove='define'
-d_memset='define'
-d_mkdir='define'
-d_mkdtemp='define'
-d_mkfifo='define'
-d_mkstemp='define'
-d_mkstemps='undef'
-d_mktime='define'
-d_mmap='define'
-d_modfl='undef'
-d_modfl_pow32_bug='undef'
-d_modflproto='undef'
-d_mprotect='define'
-d_msg='define'
-d_msg_ctrunc='define'
-d_msg_dontroute='define'
-d_msg_oob='define'
-d_msg_peek='define'
-d_msg_proxy='define'
-d_msgctl='define'
-d_msgget='define'
-d_msghdr_s='define'
-d_msgrcv='define'
-d_msgsnd='define'
-d_msync='define'
-d_munmap='define'
-d_mymalloc='undef'
-d_nan='define'
-d_nearbyint='define'
-d_nextafter='define'
-d_nexttoward='undef'
-d_nice='define'
-d_nl_langinfo='define'
-d_nv_preserves_uv='define'
-d_nv_zero_is_allbits_zero='define'
-d_off64_t='define'
-d_old_pthread_create_joinable='undef'
-d_oldpthreads='undef'
-d_oldsock='undef'
-d_open3='define'
-d_pathconf='define'
-d_pause='define'
-d_perl_otherlibdirs='undef'
-d_phostname='undef'
-d_pipe='define'
-d_poll='define'
-d_portable='define'
-d_printf_format_null='define'
-d_procselfexe='define'
-d_pseudofork='undef'
-d_pthread_atfork='define'
-d_pthread_attr_setscope='define'
-d_pthread_yield='define'
-d_ptrdiff_t='define'
-d_pwage='undef'
-d_pwchange='undef'
-d_pwclass='undef'
-d_pwcomment='undef'
-d_pwexpire='undef'
-d_pwgecos='define'
-d_pwpasswd='define'
-d_pwquota='undef'
-d_qgcvt='undef'
-d_quad='define'
-d_random_r='define'
-d_re_comp='undef'
-d_readdir64_r='define'
-d_readdir='define'
-d_readdir_r='define'
-d_readlink='define'
-d_readv='define'
-d_recvmsg='define'
-d_regcmp='undef'
-d_regcomp='define'
-d_remainder='define'
-d_remquo='define'
-d_rename='define'
-d_rewinddir='define'
-d_rint='define'
-d_rmdir='define'
-d_round='define'
-d_safebcpy='undef'
-d_safemcpy='undef'
-d_sanemcmp='define'
-d_sbrkproto='define'
-d_scalbn='define'
-d_scalbnl='undef'
-d_sched_yield='define'
-d_scm_rights='define'
-d_seekdir='define'
-d_select='define'
-d_sem='define'
-d_semctl='define'
-d_semctl_semid_ds='define'
-d_semctl_semun='define'
-d_semget='define'
-d_semop='define'
-d_sendmsg='define'
-d_setegid='define'
-d_seteuid='define'
-d_setgrent='define'
-d_setgrent_r='undef'
-d_setgrps='define'
-d_sethent='define'
-d_sethostent_r='undef'
-d_setitimer='define'
-d_setlinebuf='define'
-d_setlocale='define'
-d_setlocale_r='undef'
-d_setnent='define'
-d_setnetent_r='undef'
-d_setpent='define'
-d_setpgid='define'
-d_setpgrp2='undef'
-d_setpgrp='define'
-d_setprior='define'
-d_setproctitle='undef'
-d_setprotoent_r='undef'
-d_setpwent='define'
-d_setpwent_r='undef'
-d_setregid='define'
-d_setresgid='define'
-d_setresuid='define'
-d_setreuid='define'
-d_setrgid='undef'
-d_setruid='undef'
-d_setsent='define'
-d_setservent_r='undef'
-d_setsid='define'
-d_setvbuf='define'
-d_sfio='undef'
-d_shm='define'
-d_shmat='define'
-d_shmatprototype='define'
-d_shmctl='define'
-d_shmdt='define'
-d_shmget='define'
-d_sigaction='define'
-d_signbit='undef'
-d_sigprocmask='define'
-d_sigsetjmp='define'
-d_sitearch='define'
-d_snprintf='define'
-d_sockatmark='undef'
-d_sockatmarkproto='undef'
-d_socket='define'
-d_socklen_t='define'
-d_sockpair='define'
-d_socks5_init='undef'
-d_sprintf_returns_strlen='define'
-d_sqrtl='undef'
-d_srand48_r='define'
-d_srandom_r='define'
-d_sresgproto='define'
-d_sresuproto='define'
-d_stat='define'
-d_statblks='define'
-d_statfs_f_flags='undef'
-d_statfs_s='define'
-d_statvfs='define'
-d_stdio_cnt_lval='undef'
-d_stdio_ptr_lval='undef'
-d_stdio_ptr_lval_nochange_cnt='undef'
-d_stdio_ptr_lval_sets_cnt='undef'
-d_stdio_stream_array='undef'
-d_stdiobase='undef'
-d_stdstdio='undef'
-d_strchr='define'
-d_strcoll='define'
-d_strctcpy='define'
-d_strerrm='strerror(e)'
-d_strerror='define'
-d_strerror_r='define'
-d_strftime='define'
-d_strlcat='define'
-d_strlcpy='define'
-d_strtod='define'
-d_strtol='define'
-d_strtold='define'
-d_strtoll='define'
-d_strtoq='define'
-d_strtoul='define'
-d_strtoull='define'
-d_strtouq='define'
-d_strxfrm='define'
-d_suidsafe='undef'
-d_symlink='define'
-d_syscall='define'
-d_syscallproto='define'
-d_sysconf='define'
-d_sysernlst=''
-d_syserrlst='undef'
-d_system='define'
-d_tcgetpgrp='define'
-d_tcsetpgrp='define'
-d_telldir='define'
-d_telldirproto='define'
-d_tgamma='define'
-d_time='define'
-d_times='define'
-d_tm_tm_gmtoff='define'
-d_tm_tm_zone='define'
-d_tmpnam_r='define'
-d_trunc='define'
-d_truncate='define'
-d_truncl='define'
-d_ttyname_r='define'
-d_tzname='define'
-d_u32align='undef'
-d_ualarm='define'
-d_umask='define'
-d_uname='define'
-d_union_semun='undef'
-d_unordered='undef'
-d_unsetenv='define'
-d_usleep='define'
-d_usleepproto='define'
-d_ustat='define'
-d_vendorarch='undef'
-d_vendorbin='undef'
-d_vendorlib='undef'
-d_vendorscript='undef'
-d_vfork='undef'
-d_void_closedir='undef'
-d_voidsig='define'
-d_voidtty=''
-d_volatile='define'
-d_vprintf='define'
-d_vsnprintf='define'
-d_wait4='define'
-d_waitpid='define'
-d_wcscmp='define'
-d_wcstombs='define'
-d_wcsxfrm='define'
-d_wctomb='define'
-d_writev='define'
-d_xenix='undef'
-date='date'
-db_hashtype='u_int32_t'
-db_prefixtype='size_t'
-db_version_major=''
-db_version_minor=''
-db_version_patch=''
-defvoidused='15'
-direntrytype='struct dirent'
-dlext='so'
-dlsrc='dl_dlopen.xs'
-doublekind='4'
-doublesize='8'
-drand01='drand48()'
-drand48_r_proto='REENTRANT_PROTO_I_ST'
-
-eagain='EAGAIN'
-ebcdic='undef'
-echo='echo'
-egrep='egrep'
-emacs=''
-endgrent_r_proto='0'
-endhostent_r_proto='0'
-endnetent_r_proto='0'
-endprotoent_r_proto='0'
-endpwent_r_proto='0'
-endservent_r_proto='0'
-eunicefix=':'
-exe_ext=''
-expr='expr'
-extras=''
-fflushNULL='define'
-fflushall='undef'
-find=''
-firstmakefile='makefile'
-flex=''
-fpossize='20'
-fpostype='fpos_t'
-freetype='void'
-from=':'
-full_ar='%%AR%%'
-full_csh='csh'
-full_sed='sed'
-gccansipedantic=''
-gccosandvers=''
-gccversion='3.4.3'
-getgrent_r_proto='REENTRANT_PROTO_I_SBWR'
-getgrgid_r_proto='REENTRANT_PROTO_I_TSBWR'
-getgrnam_r_proto='REENTRANT_PROTO_I_CSBWR'
-gethostbyaddr_r_proto='REENTRANT_PROTO_I_TsISBWRE'
-gethostbyname_r_proto='REENTRANT_PROTO_I_CSBWRE'
-gethostent_r_proto='REENTRANT_PROTO_I_SBWRE'
-getlogin_r_proto='REENTRANT_PROTO_I_BW'
-getnetbyaddr_r_proto='REENTRANT_PROTO_I_uISBWRE'
-getnetbyname_r_proto='REENTRANT_PROTO_I_CSBWRE'
-getnetent_r_proto='REENTRANT_PROTO_I_SBWRE'
-getprotobyname_r_proto='REENTRANT_PROTO_I_CSBWR'
-getprotobynumber_r_proto='REENTRANT_PROTO_I_ISBWR'
-getprotoent_r_proto='REENTRANT_PROTO_I_SBWR'
-getpwent_r_proto='REENTRANT_PROTO_I_SBWR'
-getpwnam_r_proto='REENTRANT_PROTO_I_CSBWR'
-getpwuid_r_proto='REENTRANT_PROTO_I_TSBWR'
-getservbyname_r_proto='REENTRANT_PROTO_I_CCSBWR'
-getservbyport_r_proto='REENTRANT_PROTO_I_ICSBWR'
-getservent_r_proto='REENTRANT_PROTO_I_SBWR'
-getspnam_r_proto='REENTRANT_PROTO_I_CSBWR'
-gidformat='"lu"'
-gidsign='1'
-gidsize='4'
-gidtype='gid_t'
-glibpth='/usr/shlib  /lib /usr/lib /usr/lib/386 /lib/386 /usr/ccs/lib /usr/ucblib /usr/local/lib '
-gmake='gmake'
-gmtime_r_proto='REENTRANT_PROTO_S_TS'
-gnulibc_version=''
-grep='grep'
-groupcat='cat /etc/group'
-groupstype='gid_t'
-gzip='gzip'
-h_fcntl='false'
-h_sysfile='true'
-hint='recommended'
-hostcat='cat /etc/hosts'
-html1dir=' '
-html1direxp=''
-html3dir=' '
-html3direxp=''
-i16size='2'
-i16type='signed short'
-i32size='4'
-i32type='signed long'
-i64size='8'
-i64type='signed long long'
-i8size='1'
-i8type='signed char'
-i_arpainet='define'
-i_bsdioctl=''
-i_crypt='%%CRYPT%%'
-i_db='define'
-i_dbm='undef'
-i_dirent='define'
-i_dld='undef'
-i_dlfcn='define'
-i_execinfo='define'
-i_fcntl='undef'
-i_fenv='undef'
-i_float='define'
-i_fp='undef'
-i_fp_class='undef'
-i_gdbm='define'
-i_grp='define'
-i_ieeefp='undef'
-i_inttypes='define'
-i_langinfo='define'
-i_libutil='undef'
-i_limits='define'
-i_locale='define'
-i_machcthr='undef'
-i_malloc='define'
-i_math='define'
-i_memory='undef'
-i_mntent='define'
-i_ndbm='undef'
-i_netdb='define'
-i_neterrno='undef'
-i_netinettcp='define'
-i_niin='define'
-i_poll='define'
-i_prot='undef'
-i_pthread='define'
-i_pwd='define'
-i_quadmath='define'
-i_rpcsvcdbm='undef'
-i_sfio='undef'
-i_sgtty='undef'
-i_shadow='define'
-i_socks='undef'
-i_stdarg='define'
-i_stddef='define'
-i_stdint='define'
-i_stdlib='define'
-i_string='define'
-i_sunmath='undef'
-i_sysaccess='undef'
-i_sysdir='define'
-i_sysfile='define'
-i_sysfilio='undef'
-i_sysin='undef'
-i_sysioctl='define'
-i_syslog='define'
-i_sysmman='define'
-i_sysmode='undef'
-i_sysmount='define'
-i_sysndir='undef'
-i_sysparam='define'
-i_sysresrc='define'
-i_syssecrt='undef'
-i_sysselct='define'
-i_syssockio='undef'
-i_sysstat='define'
-i_sysstatfs='define'
-i_sysstatvfs='define'
-i_systime='define'
-i_systimek='undef'
-i_systimes='define'
-i_systypes='define'
-i_sysuio='define'
-i_sysun='define'
-i_sysutsname='define'
-i_sysvfs='define'
-i_syswait='define'
-i_termio='undef'
-i_termios='define'
-i_time='define'
-i_unistd='define'
-i_ustat='define'
-i_utime='define'
-i_values='define'
-i_varargs='undef'
-i_varhdr='stdarg.h'
-i_vfork='undef'
-ignore_versioned_solibs='y'
-inc_version_list=' '
-inc_version_list_init='0'
-incpath=''
-inews=''
-
-installbin='/usr/bin'
-initialinstalllocation='/usr/bin'
-installhtml1dir=''
-installhtml3dir=''
-installman1dir=''
-installman3dir=''
-installprefix='/usr'
-installprefixexp='/usr'
-
-installscript='/usr/bin'
-
-installsitebin='/usr/bin'
-installsitehtml1dir=''
-installsitehtml3dir=''
-
-installsiteman1dir=''
-installsiteman3dir=''
-installsitescript='/usr/bin'
-installstyle='lib/perl5'
-installusrbinperl='define'
-installvendorarch=''
-installvendorbin=''
-installvendorhtml1dir=''
-installvendorhtml3dir=''
-installvendorlib=''
-installvendorman1dir=''
-installvendorman3dir=''
-installvendorscript=''
-intsize='4'
-issymlink='test -h'
-ivdformat='"ld"'
-ivsize='4'
-ivtype='long'
-ksh=''
-ld='%%LD%%'
-lddlflags='-shared %%LDFLAGS%%'
-ldflags='%%EXTRA_PERLLIBDIRS%%'
-ldflags_uselargefiles=''
-ldlibpthname='LD_LIBRARY_PATH'
-less='less'
-lib_ext='.a'
-libc=''
-libperl='libperl.so'
-libpth='%%LIBDIRS%%'
-libs='-lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread -lc'
-libsdirs='%%LIBDIRS%%'
-libsfiles=' libdl.so libm.so libcrypt.so libutil.so libpthread.so libc.so'
-#libsfound=' /usr/lib/libdl.so /usr/lib/libm.so /usr/lib/libcrypt.so /usr/lib/libutil.so /usr/lib/libc.so'
-libspath='%%LIBDIRS%%'
-libswanted='sfio socket inet nm ndbm gdbm dbm db malloc dl dld ld sun m crypt sec util pthread c cposix posix ucb BSD'
-libswanted_uselargefiles=''
-line=''
-lint=''
-lkflags=''
-ln='ln'
-lns='/bin/ln -s'
-localtime_r_proto='REENTRANT_PROTO_S_TS'
-locincpth=' '
-loclibpth=' '
-longdblkind='0'
-longdblsize='8'
-longlongsize='8'
-longsize='4'
-lp=''
-lpr=''
-ls='ls'
-lseeksize='8'
-lseektype='off_t'
-mail=''
-mailx=''
-make='make'
-make_set_make='#'
-mallocobj=''
-mallocsrc=''
-malloctype='void *'
-man1dir=' '
-man1direxp=''
-man1ext='0'
-man3dir=' '
-man3direxp=''
-man3ext='0'
-mips_type=''
-mistrustnm=''
-mkdir='mkdir'
-mmaptype='void *'
-modetype='mode_t'
-more='more'
-multiarch='undef'
-mv=''
-myarchname='armeb-linux-uclibc'
-mydomain='.dev.null'
-myhostname='maia'
-myuname='linux maia 2.6.22 #1 wed jul 11 12:24:09 cest 2007 armv5teb unknown unknown gnulinux '
-n='-n'
-need_va_copy='undef'
-netdb_hlen_type='size_t'
-netdb_host_type='const void *'
-netdb_name_type='const char *'
-netdb_net_type='in_addr_t'
-nm='nm'
-nm_opt=''
-nm_so_opt='--dynamic'
-
-nroff='nroff'
-nvEUformat='"E"'
-nvFUformat='"F"'
-nvGUformat='"G"'
-nv_preserves_uv_bits='32'
-nveformat='"e"'
-nvfformat='"f"'
-nvgformat='"g"'
-nvsize='8'
-nvtype='double'
-o_nonblock='O_NONBLOCK'
-obj_ext='.o'
-old_pthread_create_joinable=''
-optimize='-O2'
-orderlib='false'
-osname='linux'
-osvers='2.6.22'
-otherlibdirs=' '
-package='perl5'
-pager='/usr/bin/less'
-passcat='cat /etc/passwd'
-
-path_sep=':'
-perl5=''
-perl=''
-perl_patchlevel=''
-perladmin='root@maia.dev.null'
-perllibs='-ldl -lm -lcrypt -lutil -lpthread -lc %%EXTRA_PERLLIBS%%'
-perlpath='/usr/bin/perl'
-pg='pg'
-phostname='hostname'
-pidtype='pid_t'
-plibpth=''
-pmake=''
-pr=''
-prefix='/usr'
-prefixexp='/usr'
-
-
-procselfexe='"/proc/self/exe"'
-prototype='define'
-ptrsize='4'
-quadkind='3'
-quadtype='long long'
-randbits='48'
-randfunc='drand48'
-random_r_proto='REENTRANT_PROTO_I_St'
-randseedtype='long'
-ranlib=':'
-rd_nodata='-1'
-readdir64_r_proto='REENTRANT_PROTO_I_TSR'
-readdir_r_proto='REENTRANT_PROTO_I_TSR'
-revision='5'
-rm='rm'
-rm_try='/bin/rm -f try try a.out .out try.[cho] try..o core core.try* try.core*'
-rmail=''
-run=''
-runnm='false'
-sPRIEUldbl='"E"'
-sPRIFUldbl='"F"'
-sPRIGUldbl='"G"'
-sPRIXU64='"LX"'
-sPRId64='"Ld"'
-sPRIeldbl='"e"'
-sPRIfldbl='"f"'
-sPRIgldbl='"g"'
-sPRIi64='"Li"'
-sPRIo64='"Lo"'
-sPRIu64='"Lu"'
-sPRIx64='"Lx"'
-sSCNfldbl='"f"'
-sched_yield='sched_yield()'
-scriptdir='/usr/bin'
-scriptdirexp='/usr/bin'
-sed='sed'
-seedfunc='srand48'
-selectminbits='32'
-selecttype='fd_set *'
-sendmail=''
-setgrent_r_proto='0'
-sethostent_r_proto='0'
-setlocale_r_proto='0'
-setnetent_r_proto='0'
-setprotoent_r_proto='0'
-setpwent_r_proto='0'
-setservent_r_proto='0'
-sh='/bin/sh'
-shar=''
-sharpbang='#!'
-shmattype='void *'
-shortsize='2'
-shrpenv=''
-shsharp='true'
-sig_count='64'
-sig_name='ZERO HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS RTMIN NUM33 NUM34 NUM35 NUM36 NUM37 NUM38 NUM39 NUM40 NUM41 NUM42 NUM43 NUM44 NUM45 NUM46 NUM47 NUM48 NUM49 NUM50 NUM51 NUM52 NUM53 NUM54 NUM55 NUM56 NUM57 NUM58 NUM59 NUM60 NUM61 NUM62 RTMAX IOT CLD POLL UNUSED '
-sig_name_init='"ZERO", "HUP", "INT", "QUIT", "ILL", "TRAP", "ABRT", "BUS", "FPE", "KILL", "USR1", "SEGV", "USR2", "PIPE", "ALRM", "TERM", "STKFLT", "CHLD", "CONT", "STOP", "TSTP", "TTIN", "TTOU", "URG", "XCPU", "XFSZ", "VTALRM", "PROF", "WINCH", "IO", "PWR", "SYS", "RTMIN", "NUM33", "NUM34", "NUM35", "NUM36", "NUM37", "NUM38", "NUM39", "NUM40", "NUM41", "NUM42", "NUM43", "NUM44", "NUM45", "NUM46", "NUM47", "NUM48", "NUM49", "NUM50", "NUM51", "NUM52", "NUM53", "NUM54", "NUM55", "NUM56", "NUM57", "NUM58", "NUM59", "NUM60", "NUM61", "NUM62", "RTMAX", "IOT", "CLD", "POLL", "UNUSED", 0'
-sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 6 17 29 31 '
-sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 6, 17, 29, 31, 0'
-sig_size='68'
-signal_t='void'
-sitearch=''
-sitearchexp=''
-sitebin='/usr/bin'
-sitebinexp='/usr/bin'
-sitehtml1dir=''
-sitehtml1direxp=''
-sitehtml3dir=''
-sitehtml3direxp=''
-sitelib=''
-#sitelib_stem='/usr/lib/perl5/site_perl'
-sitelibexp=''
-siteman1dir=''
-siteman1direxp=''
-siteman3dir=''
-siteman3direxp=''
-siteprefix='/usr'
-siteprefixexp='/usr'
-sitescript='/usr/bin'
-sitescriptexp='/usr/bin'
-sizesize='4'
-sizetype='size_t'
-sleep=''
-smail=''
-so='so'
-sockethdr=''
-socketlib=''
-socksizetype='socklen_t'
-sort='sort'
-spackage='Perl5'
-spitshell='cat'
-srand48_r_proto='REENTRANT_PROTO_I_LS'
-srandom_r_proto='REENTRANT_PROTO_I_TS'
-src='.'
-ssizetype='ssize_t'
-startperl='#!/usr/bin/perl'
-startsh='#!/bin/sh'
-static_ext=' '
-stdchar='char'
-stdio_base='((fp)->_base)'
-stdio_bufsiz='((fp)->_cnt + (fp)->_ptr - (fp)->_base)'
-stdio_cnt='((fp)->_cnt)'
-stdio_filbuf=''
-stdio_ptr='((fp)->_ptr)'
-stdio_stream_array=''
-strerror_r_proto='REENTRANT_PROTO_B_IBW'
-#strings='/usr/include/string.h'
-submit=''
-sysman='/usr/share/man/man1'
-tail=''
-tar=''
-targetarch='armeb-linux-uclibc'
-tbl=''
-tee=''
-test='test'
-#timeincl='/usr/include/sys/time.h /usr/include/time.h '
-timetype='time_t'
-tmpnam_r_proto='REENTRANT_PROTO_B_B'
-to=':'
-touch='touch'
-tr='tr'
-trnl='\n'
-troff=''
-ttyname_r_proto='REENTRANT_PROTO_I_IBW'
-u16size='2'
-u16type='unsigned short'
-u32size='4'
-u32type='unsigned long'
-u64size='8'
-u64type='unsigned long long'
-u8size='1'
-u8type='unsigned char'
-uidformat='"lu"'
-uidsign='1'
-uidsize='4'
-uidtype='uid_t'
-uname='uname'
-uniq='uniq'
-uquadtype='unsigned long long'
-use5005threads='undef'
-use64bitall='undef'
-use64bitint='undef'
-usecbacktrace='undef'
-usecrosscompile='define'
-usedl='define'
-usefaststdio='undef'
-useithreads='define'
-uselargefiles='define'
-uselongdouble='undef'
-usemallocwrap='define'
-usemorebits='undef'
-usemultiplicity='define'
-usemymalloc='n'
-usenm='true'
-useopcode='true'
-useperlio='define'
-useposix='true'
-usequadmath='undef'
-usereentrant='undef'
-userelocatableinc='undef'
-usesfio='false'
-useshrplib='true'
-usesitecustomize='undef'
-usesocks='undef'
-usethreads='define'
-usevendorprefix='undef'
-usevfork='false'
-usrinc='%%INCDIRS%%'
-uuname=''
-uvXUformat='"lX"'
-uvoformat='"lo"'
-uvsize='4'
-uvtype='unsigned long'
-uvuformat='"lu"'
-uvxformat='"lx"'
-vendorarch=''
-vendorarchexp=''
-vendorbin=''
-vendorbinexp=''
-vendorhtml1dir=' '
-vendorhtml1direxp=''
-vendorhtml3dir=' '
-vendorhtml3direxp=''
-vendorlib=''
-vendorlib_stem=''
-vendorlibexp=''
-vendorman1dir=' '
-vendorman1direxp=''
-vendorman3dir=' '
-vendorman3direxp=''
-vendorprefix=''
-vendorprefixexp=''
-vendorscript=''
-vendorscriptexp=''
-
-
-versiononly='undef'
-vi=''
-voidflags='15'
-xlibpth='/usr/lib/386 /lib/386'
-yacc='yacc'
-yaccflags=''
-zcat=''
-zip='zip'
-# Configure command line arguments.
-config_arg0='./Configure'
-config_args='-der -Dusethreads'
-config_argc=2
-config_arg1='-der'
-config_arg2='-Dusethreads'
-PERL_REVISION=5
-PERL_API_REVISION=5
-
-PERL_API_SUBVERSION=0
-PERL_PATCHLEVEL=
-PERL_CONFIG_SH=true
-# Fix problem with HiRes timer.
-d_nanosleep='define'
-d_clock_gettime='define'
-d_clock_getres='define'
-d_clock_nanosleep='define'
-d_clock='define'
-
-# New symbols for perl 5.20.0
-bin_ELF='define'
-charbits='8'
-charsize='1'
-d_asctime64='undef'
-d_attribute_deprecated='define'
-d_ctime64='undef'
-d_difftime64='undef'
-d_gdbm_ndbm_h_uses_prototypes='undef'
-d_gdbmndbm_h_uses_prototypes='undef'
-d_getaddrinfo='define'
-d_getnameinfo='define'
-d_gmtime64='undef'
-d_inetntop='define'
-d_inetpton='define'
-d_ip_mreq='define'
-d_ip_mreq_source='define'
-d_ipv6_mreq='%%IPV6%%'
-d_ipv6_mreq_source='undef'
-d_isblank='define'
-d_libname_unique='undef'
-d_localtime64='undef'
-d_mktime64='undef'
-d_ndbm='undef'
-d_ndbm_h_uses_prototypes='undef'
-d_prctl='define'
-d_prctl_set_name='define'
-d_sin6_scope_id='%%IPV6%%'
-d_sockaddr_in6='%%IPV6%%'
-d_sockaddr_sa_len='undef'
-d_static_inline='define'
-d_timegm='define'
-dtrace=''
-extern_C='extern'
-hostosname=''
-i_assert='define'
-i_bfd='undef'
-i_gdbm_ndbm='undef'
-i_gdbmndbm='undef'
-i_mallocmalloc='undef'
-i_stdbool='define'
-i_syspoll='define'
-#incpth='/usr/lib/gcc/i486-slackware-linux/4.8.2/include /usr/local/include /usr/lib/gcc/i486-slackware-linux/4.8.2/include-fixed /usr/include'
-ld_can_script='define'
-#libsfound=' /usr/lib/libgdbm.so /usr/lib/libdb.so /usr/lib/libdl.so /usr/lib/libm.so /usr/lib/libcrypt.so /usr/lib/libutil.so /usr/lib/libc.so'
-nv_overflows_integers_at='256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0'
-perl_static_inline='static __inline__'
-sGMTIME_max='2147483647'
-sGMTIME_min='-2147483648'
-sLOCALTIME_max='2147483647'
-sLOCALTIME_min='-2147483648'
-#sitelib_stem='/usr/local/lib/perl5/site_perl'
-st_ino_sign='1'
-st_ino_size='8'
-#strings='/usr/include/string.h'
-sysroot=''
-targetdir=''
-targetenv=''
-targethost=''
-targetmkdir=''
-targetport=''
-targetsh='/bin/sh'
-#timeincl='/usr/include/sys/time.h /usr/include/time.h '
-usedevel='undef'
-usedtrace='undef'
-usekernprocpathname='undef'
-usensgetexecutablepath='undef'
-useversionedarchname='undef'
-vaproto='define'
-libdb_needs_pthread='N'
-
-# These symbols changed from perl 5.10.0 to 5.20.0 and probably will
-# change again for new versions, so they're included here for
-# future reference
-api_version='22'
-# Always set this to the base version, not the patched one!
-api_versionstring='5.22.0'
-dynamic_ext='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/DosGlob File/Glob Filter/Util/Call GDBM_File Hash/Util Hash/Util/FieldHash I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc Opcode POSIX PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Tie/Hash/NamedCapture Time/HiRes Time/Piece Unicode/Collate XS/APItest XS/Typemap arybase attributes mro re threads threads/shared'
-installarchlib='/usr/lib/perl5/5.22'
-installprivlib='/usr/lib/perl5/5.22'
-installsitearch='/usr/lib/perl5/5.22'
-installsitelib='/usr/lib/perl5/5.22'
-nonxs_ext='Archive/Tar Attribute/Handlers AutoLoader B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Config/Perl/V Devel/SelfStubber Digest Dumpvalue Env Errno Exporter ExtUtils/CBuilder ExtUtils/Command ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS File/Fetch File/Find File/Path File/Temp FileCache Filter/Simple Getopt/Long HTTP/Tiny I18N/Collate I18N/LangTags IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP Locale/Codes Locale/Maketext Locale/Maketext/Simple Math/BigInt Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NEXT Net/Ping Params/Check Parse/CPAN/Meta Perl/OSType PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage Safe Search/Dict SelfLoader Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Memoize Tie/RefHash Time/Local XSLoader autodie autouse base bignum constant encoding/warnings experimental if lib libnet parent perlfaq podlators Unicode/Normalize version'
-privlib='/usr/lib/perl5/5.22'
-privlibexp='/usr/lib/perl5/5.22'
-archlib='/usr/lib/perl5/5.22'
-archlibexp='/usr/lib/perl5/5.22'
-version='5.22.0'
-version_patchlevel_string='version 22 subversion 0'
-PERL_VERSION=22
-PERL_API_VERSION=22
-PERL_SUBVERSION=0
-patchlevel='22'
-ccdlflags='-fPIC -Wl,-rpath,/usr/lib/perl5/5.22/CORE'
-subversion='0'
-extensions='B Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call GDBM_File Hash/Util I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex Time/HiRes Time/Piece XS/APItest XS/Typemap attrs re threads threads/shared Hash/Util/FieldHash Compress/Zlib Errno IO_Compress_Base IO_Compress_Zlib Unicode/Normalize'
-known_extensions='B Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call GDBM_File Hash/Util I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc NDBM_File ODBM_File Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex Time/HiRes Time/Piece Unicode/Normalize Win32 Win32API/File Win32CORE XS/APItest XS/Typemap attrs re threads threads/shared Hash/Util/FieldHash'
-
-# Make perl use these tools instead of the target binaries during build
-hostgenerate='%%HOSTGENERATE%%'
-hostperl='%%HOSTMINIPERL%%'
diff --git a/lang/perl/files/config.sh-armeb.in b/lang/perl/files/config.sh-armeb.in
deleted file mode 100644 (file)
index 4b3b341..0000000
+++ /dev/null
@@ -1,1225 +0,0 @@
-#!/bin/sh
-#
-# This file was produced by running the Configure script. It holds all the
-# definitions figured out by Configure. Should you modify one of these values,
-# do not forget to propagate your changes by running "Configure -der". You may
-# instead choose to run each of the .SH files by yourself, or "Configure -S".
-#
-
-# Package name      : perl5
-# Source directory  : .
-# Configuration time: Fri Jul 20 04:39:05 MDT 2007
-# Configured by     : root
-# Target system     : linux maia 2.6.22 #1 wed jul 11 12:24:09 cest 2007 armv5teb unknown unknown gnulinux 
-
-Author=''
-Date=''
-Header=''
-Id=''
-Locker=''
-Log=''
-RCSfile=''
-Revision=''
-Source=''
-State=''
-_a='.a'
-_exe=''
-_o='.o'
-afs='false'
-afsroot='/afs'
-alignbytes='4'
-ansi2knr=''
-aphostname='/bin/hostname'
-api_revision='5'
-
-
-ar='ar'
-archname64=''
-archname='armeb-linux-uclibc'
-archobjs=''
-asctime_r_proto='0'
-awk='awk'
-baserev='5.0'
-bash=''
-bin='/usr/bin'
-binexp='/usr/bin'
-bison='bison'
-byacc='byacc'
-byteorder='4321'
-c=''
-castflags='0'
-cat='cat'
-cc='%%CC%%'
-cccdlflags='-fPIC'
-ccflags='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 %%CFLAGS%%'
-ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
-ccname='gcc'
-ccsymbols='__ARM_ARCH_3__=1'
-ccversion=''
-cf_by='root'
-cf_email='root@maia.dev.null'
-cf_time='Fri Jul 20 04:39:05 MDT 2007'
-chgrp=''
-chmod='chmod'
-chown=''
-clocktype='clock_t'
-comm='comm'
-compress=''
-contains='grep'
-cp='cp'
-cpio=''
-cpp='cpp'
-cpp_stuff='42'
-cppccsymbols=''
-cppflags='%%CFLAGS%%'
-cpplast='-'
-cppminus='-'
-cpprun='%%CPP%%'
-cppstdin='%%CPP%%'
-cppsymbols='__ELF__=1 _FILE_OFFSET_BITS=64 __GLIBC__=2 __GLIBC_MINOR__=2 __GNUC__=3 __GNUC_MINOR__=4 __GNU_LIBRARY__=6 _LARGEFILE_SOURCE=1 _POSIX_C_SOURCE=199506L _POSIX_SOURCE=1 __STDC__=1 __USE_BSD=1 __USE_FILE_OFFSET64=1 __USE_LARGEFILE=1 __USE_MISC=1 __USE_POSIX=1 __USE_POSIX199309=1 __USE_POSIX199506=1 __USE_POSIX2=1 __USE_SVID=1 linux=1 __linux=1 __linux__=1 unix=1 __unix=1 __unix__=1'
-crypt_r_proto='0'
-cryptlib=''
-csh='csh'
-ctermid_r_proto='0'
-ctime_r_proto='0'
-d_Gconvert='sprintf((b),"%.*g",(n),(x))'
-d_PRIEUldbl='define'
-d_PRIFUldbl='define'
-d_PRIGUldbl='define'
-d_PRIXU64='define'
-d_PRId64='define'
-d_PRIeldbl='define'
-d_PRIfldbl='define'
-d_PRIgldbl='define'
-d_PRIi64='define'
-d_PRIo64='define'
-d_PRIu64='define'
-d_PRIx64='define'
-d_SCNfldbl='define'
-d__fwalk='undef'
-d_access='define'
-d_accessx='undef'
-d_acosh='define'
-d_aintl='undef'
-d_alarm='define'
-d_archlib='undef'
-d_asctime_r='undef'
-d_asinh='define'
-d_atanh='define'
-d_atolf='undef'
-d_atoll='define'
-d_attribute_format='define'
-d_attribute_malloc='define'
-d_attribute_nonnull='define'
-d_attribute_noreturn='define'
-d_attribute_pure='define'
-d_attribute_unused='define'
-d_attribute_warn_unused_result='define'
-d_backtrace='define'
-d_bcmp='define'
-d_bcopy='define'
-d_bsd='undef'
-d_bsdgetpgrp='undef'
-d_bsdsetpgrp='undef'
-d_builtin_choose_expr='define'
-d_builtin_expect='undef'
-d_bzero='define'
-d_c99_variadic_macros='define'
-d_casti32='define'
-d_castneg='define'
-d_cbrt='define'
-d_charvspr='undef'
-d_chown='define'
-d_chroot='define'
-d_chsize='undef'
-d_class='undef'
-d_clearenv='define'
-d_closedir='define'
-d_cmsghdr_s='define'
-d_const='define'
-d_copysign='define'
-d_copysignl='undef'
-d_cplusplus='undef'
-d_crypt='define'
-d_crypt_r='undef'
-d_csh='undef'
-d_ctermid='define'
-d_ctermid_r='undef'
-d_ctime_r='undef'
-d_cuserid='define'
-d_dbl_dig='define'
-d_dbminitproto='undef'
-d_difftime='define'
-d_dir_dd_fd='undef'
-d_dirfd='define'
-d_dirnamlen='undef'
-d_dladdr='define'
-d_dlerror='define'
-d_dlopen='define'
-d_dlsymun='undef'
-d_dosuid='undef'
-d_drand48_r='undef'
-d_drand48proto='define'
-d_dup2='define'
-d_eaccess='undef'
-d_endgrent='define'
-d_endgrent_r='undef'
-d_endhent='define'
-d_endhostent_r='undef'
-d_endnent='define'
-d_endnetent_r='undef'
-d_endpent='define'
-d_endprotoent_r='undef'
-d_endpwent='define'
-d_endpwent_r='undef'
-d_endsent='define'
-d_endservent_r='undef'
-d_eofnblk='define'
-d_erf='define'
-d_erfc='define'
-d_eunice='undef'
-d_exp2='define'
-d_expm1='define'
-d_faststdio='undef'
-d_fchdir='define'
-d_fchmod='define'
-d_fchown='define'
-d_fcntl='define'
-d_fcntl_can_lock='define'
-d_fd_macros='define'
-d_fd_set='define'
-d_fdim='define'
-d_fds_bits='undef'
-d_fegetround='undef'
-d_fgetpos='define'
-d_finite='define'
-d_finitel='undef'
-d_flexfnam='define'
-d_flock='define'
-d_flockproto='define'
-d_fma='define'
-d_fmax='define'
-d_fmin='define'
-d_fork='define'
-d_fp_class='undef'
-d_fp_classify='undef'
-d_fp_classl='undef'
-d_fpathconf='define'
-d_fpclass='undef'
-d_fpclassify='define'
-d_fpclassl='undef'
-d_fpgetround='undef'
-d_fpos64_t='undef'
-d_frexpl='undef'
-d_fs_data_s='undef'
-d_fseeko='define'
-d_fsetpos='define'
-d_fstatfs='define'
-d_fstatvfs='define'
-d_fsync='define'
-d_ftello='define'
-d_ftime='undef'
-d_futimes='undef'
-d_getcwd='define'
-d_getespwnam='undef'
-d_getfsstat='undef'
-d_getgrent='define'
-d_getgrent_r='undef'
-d_getgrgid_r='undef'
-d_getgrnam_r='undef'
-d_getgrps='define'
-d_gethbyaddr='define'
-d_gethbyname='define'
-d_gethent='define'
-d_gethname='define'
-d_gethostbyaddr_r='undef'
-d_gethostbyname_r='undef'
-d_gethostent_r='undef'
-d_gethostprotos='define'
-d_getitimer='define'
-d_getlogin='define'
-d_getlogin_r='undef'
-d_getmnt='undef'
-d_getmntent='define'
-d_getnbyaddr='define'
-d_getnbyname='define'
-d_getnent='define'
-d_getnetbyaddr_r='undef'
-d_getnetbyname_r='undef'
-d_getnetent_r='undef'
-d_getnetprotos='define'
-d_getpagsz='define'
-d_getpbyname='define'
-d_getpbynumber='define'
-d_getpent='define'
-d_getpgid='define'
-d_getpgrp2='undef'
-d_getpgrp='define'
-d_getppid='define'
-d_getprior='define'
-d_getprotobyname_r='undef'
-d_getprotobynumber_r='undef'
-d_getprotoent_r='undef'
-d_getprotoprotos='define'
-d_getprpwnam='undef'
-d_getpwent='define'
-d_getpwent_r='undef'
-d_getpwnam_r='undef'
-d_getpwuid_r='undef'
-d_getsbyname='define'
-d_getsbyport='define'
-d_getsent='define'
-d_getservbyname_r='undef'
-d_getservbyport_r='undef'
-d_getservent_r='undef'
-d_getservprotos='define'
-d_getspnam='define'
-d_getspnam_r='undef'
-d_gettimeod='define'
-d_gmtime_r='undef'
-d_gnulibc='undef'
-d_grpasswd='define'
-d_hasmntopt='define'
-d_htonl='define'
-d_hypot='define'
-d_ilogb='define'
-d_ilogbl='undef'
-d_inc_version_list='undef'
-d_index='undef'
-d_inetaton='define'
-d_int64_t='define'
-d_isascii='define'
-d_isfinite='define'
-d_isfinitel='undef'
-d_isinf='define'
-d_isinfl='define'
-d_isless='undef'
-d_isnan='define'
-d_isnanl='undef'
-d_isnormal='define'
-d_j0='undef'
-d_j0l='undef'
-d_killpg='define'
-d_lc_monetary_2008='define'
-d_lchown='define'
-d_ldbl_dig='define'
-d_ldexpl='define'
-d_lgamma='define'
-d_lgamma_r='define'
-d_libm_lib_version='define'
-d_link='define'
-d_llrint='define'
-d_llrintl='define'
-d_llround='define'
-d_llroundl='define'
-d_localtime_r='undef'
-d_localtime_r_needs_tzset='undef'
-d_locconv='define'
-d_lockf='define'
-d_log1p='define'
-d_log2='define'
-d_logb='define'
-d_longdbl='define'
-d_longlong='define'
-d_lrint='define'
-d_lrintl='define'
-d_lround='define'
-d_lroundl='define'
-d_lseekproto='define'
-d_lstat='define'
-d_madvise='define'
-d_malloc_good_size='undef'
-d_malloc_size='undef'
-d_mblen='define'
-d_mbstowcs='define'
-d_mbtowc='define'
-d_memchr='define'
-d_memcmp='define'
-d_memcpy='define'
-d_memmove='define'
-d_memset='define'
-d_mkdir='define'
-d_mkdtemp='define'
-d_mkfifo='define'
-d_mkstemp='define'
-d_mkstemps='undef'
-d_mktime='define'
-d_mmap='define'
-d_modfl='undef'
-d_modfl_pow32_bug='undef'
-d_modflproto='undef'
-d_mprotect='define'
-d_msg='define'
-d_msg_ctrunc='define'
-d_msg_dontroute='define'
-d_msg_oob='define'
-d_msg_peek='define'
-d_msg_proxy='define'
-d_msgctl='define'
-d_msgget='define'
-d_msghdr_s='define'
-d_msgrcv='define'
-d_msgsnd='define'
-d_msync='define'
-d_munmap='define'
-d_mymalloc='undef'
-d_nan='define'
-d_nearbyint='define'
-d_nextafter='define'
-d_nexttoward='undef'
-d_nice='define'
-d_nl_langinfo='define'
-d_nv_preserves_uv='define'
-d_nv_zero_is_allbits_zero='define'
-d_off64_t='undef'
-d_old_pthread_create_joinable='undef'
-d_oldpthreads='undef'
-d_oldsock='undef'
-d_open3='define'
-d_pathconf='define'
-d_pause='define'
-d_perl_otherlibdirs='undef'
-d_phostname='undef'
-d_pipe='define'
-d_poll='define'
-d_portable='define'
-d_printf_format_null='define'
-d_procselfexe='define'
-d_pseudofork='undef'
-d_pthread_atfork='undef'
-d_pthread_attr_setscope='define'
-d_pthread_yield='undef'
-d_ptrdiff_t='define'
-d_pwage='undef'
-d_pwchange='undef'
-d_pwclass='undef'
-d_pwcomment='undef'
-d_pwexpire='undef'
-d_pwgecos='define'
-d_pwpasswd='define'
-d_pwquota='undef'
-d_qgcvt='undef'
-d_quad='define'
-d_random_r='undef'
-d_re_comp='undef'
-d_readdir64_r='undef'
-d_readdir='define'
-d_readdir_r='undef'
-d_readlink='define'
-d_readv='define'
-d_recvmsg='define'
-d_regcmp='undef'
-d_regcomp='define'
-d_remainder='define'
-d_remquo='define'
-d_rename='define'
-d_rewinddir='define'
-d_rint='define'
-d_rmdir='define'
-d_round='define'
-d_safebcpy='undef'
-d_safemcpy='undef'
-d_sanemcmp='define'
-d_sbrkproto='define'
-d_scalbn='define'
-d_scalbnl='undef'
-d_sched_yield='define'
-d_scm_rights='define'
-d_seekdir='define'
-d_select='define'
-d_sem='define'
-d_semctl='define'
-d_semctl_semid_ds='define'
-d_semctl_semun='define'
-d_semget='define'
-d_semop='define'
-d_sendmsg='define'
-d_setegid='define'
-d_seteuid='define'
-d_setgrent='define'
-d_setgrent_r='undef'
-d_setgrps='define'
-d_sethent='define'
-d_sethostent_r='undef'
-d_setitimer='define'
-d_setlinebuf='define'
-d_setlocale='define'
-d_setlocale_r='undef'
-d_setnent='define'
-d_setnetent_r='undef'
-d_setpent='define'
-d_setpgid='define'
-d_setpgrp2='undef'
-d_setpgrp='define'
-d_setprior='define'
-d_setproctitle='undef'
-d_setprotoent_r='undef'
-d_setpwent='define'
-d_setpwent_r='undef'
-d_setregid='define'
-d_setresgid='define'
-d_setresuid='define'
-d_setreuid='define'
-d_setrgid='undef'
-d_setruid='undef'
-d_setsent='define'
-d_setservent_r='undef'
-d_setsid='define'
-d_setvbuf='define'
-d_sfio='undef'
-d_shm='define'
-d_shmat='define'
-d_shmatprototype='define'
-d_shmctl='define'
-d_shmdt='define'
-d_shmget='define'
-d_sigaction='define'
-d_signbit='undef'
-d_sigprocmask='define'
-d_sigsetjmp='define'
-d_sitearch='define'
-d_snprintf='define'
-d_sockatmark='undef'
-d_sockatmarkproto='undef'
-d_socket='define'
-d_socklen_t='define'
-d_sockpair='define'
-d_socks5_init='undef'
-d_sprintf_returns_strlen='define'
-d_sqrtl='undef'
-d_srand48_r='undef'
-d_srandom_r='undef'
-d_sresgproto='undef'
-d_sresuproto='undef'
-d_stat='define'
-d_statblks='define'
-d_statfs_f_flags='undef'
-d_statfs_s='define'
-d_statvfs='define'
-d_stdio_cnt_lval='undef'
-d_stdio_ptr_lval='undef'
-d_stdio_ptr_lval_nochange_cnt='undef'
-d_stdio_ptr_lval_sets_cnt='undef'
-d_stdio_stream_array='undef'
-d_stdiobase='undef'
-d_stdstdio='undef'
-d_strchr='define'
-d_strcoll='define'
-d_strctcpy='define'
-d_strerrm='strerror(e)'
-d_strerror='define'
-d_strerror_r='undef'
-d_strftime='define'
-d_strlcat='define'
-d_strlcpy='define'
-d_strtod='define'
-d_strtol='define'
-d_strtold='define'
-d_strtoll='define'
-d_strtoq='define'
-d_strtoul='define'
-d_strtoull='define'
-d_strtouq='define'
-d_strxfrm='define'
-d_suidsafe='undef'
-d_symlink='define'
-d_syscall='define'
-d_syscallproto='define'
-d_sysconf='define'
-d_sysernlst=''
-d_syserrlst='undef'
-d_system='define'
-d_tcgetpgrp='define'
-d_tcsetpgrp='define'
-d_telldir='define'
-d_telldirproto='define'
-d_tgamma='define'
-d_time='define'
-d_times='define'
-d_tm_tm_gmtoff='define'
-d_tm_tm_zone='define'
-d_tmpnam_r='undef'
-d_trunc='define'
-d_truncate='define'
-d_truncl='define'
-d_ttyname_r='undef'
-d_tzname='define'
-d_u32align='undef'
-d_ualarm='define'
-d_umask='define'
-d_uname='define'
-d_union_semun='undef'
-d_unordered='undef'
-d_unsetenv='define'
-d_usleep='define'
-d_usleepproto='define'
-d_ustat='define'
-d_vendorarch='undef'
-d_vendorbin='undef'
-d_vendorlib='undef'
-d_vendorscript='undef'
-d_vfork='undef'
-d_void_closedir='undef'
-d_voidsig='define'
-d_voidtty=''
-d_volatile='define'
-d_vprintf='define'
-d_vsnprintf='define'
-d_wait4='define'
-d_waitpid='define'
-d_wcscmp='define'
-d_wcstombs='define'
-d_wcsxfrm='define'
-d_wctomb='define'
-d_writev='define'
-d_xenix='undef'
-date='date'
-db_hashtype='u_int32_t'
-db_prefixtype='size_t'
-db_version_major=''
-db_version_minor=''
-db_version_patch=''
-defvoidused='15'
-direntrytype='struct dirent'
-dlext='so'
-dlsrc='dl_dlopen.xs'
-doublekind='4'
-doublesize='8'
-drand01='drand48()'
-drand48_r_proto='0'
-
-eagain='EAGAIN'
-ebcdic='undef'
-echo='echo'
-egrep='egrep'
-emacs=''
-endgrent_r_proto='0'
-endhostent_r_proto='0'
-endnetent_r_proto='0'
-endprotoent_r_proto='0'
-endpwent_r_proto='0'
-endservent_r_proto='0'
-eunicefix=':'
-exe_ext=''
-expr='expr'
-extras=''
-fflushNULL='define'
-fflushall='undef'
-find=''
-firstmakefile='makefile'
-flex=''
-fpossize='20'
-fpostype='fpos_t'
-freetype='void'
-from=':'
-full_ar='%%AR%%'
-full_csh='csh'
-full_sed='sed'
-gccansipedantic=''
-gccosandvers=''
-gccversion='3.4.3'
-getgrent_r_proto='0'
-getgrgid_r_proto='0'
-getgrnam_r_proto='0'
-gethostbyaddr_r_proto='0'
-gethostbyname_r_proto='0'
-gethostent_r_proto='0'
-getlogin_r_proto='0'
-getnetbyaddr_r_proto='0'
-getnetbyname_r_proto='0'
-getnetent_r_proto='0'
-getprotobyname_r_proto='0'
-getprotobynumber_r_proto='0'
-getprotoent_r_proto='0'
-getpwent_r_proto='0'
-getpwnam_r_proto='0'
-getpwuid_r_proto='0'
-getservbyname_r_proto='0'
-getservbyport_r_proto='0'
-getservent_r_proto='0'
-getspnam_r_proto='0'
-gidformat='"lu"'
-gidsign='1'
-gidsize='4'
-gidtype='gid_t'
-glibpth='/usr/shlib  /lib /usr/lib /usr/lib/386 /lib/386 /usr/ccs/lib /usr/ucblib /usr/local/lib '
-gmake='gmake'
-gmtime_r_proto='0'
-gnulibc_version=''
-grep='grep'
-groupcat='cat /etc/group'
-groupstype='gid_t'
-gzip='gzip'
-h_fcntl='false'
-h_sysfile='true'
-hint='recommended'
-hostcat='cat /etc/hosts'
-html1dir=' '
-html1direxp=''
-html3dir=' '
-html3direxp=''
-i16size='2'
-i16type='signed short'
-i32size='4'
-i32type='signed long'
-i64size='8'
-i64type='signed long long'
-i8size='1'
-i8type='signed char'
-i_arpainet='define'
-i_bsdioctl=''
-i_crypt='define'
-i_db='define'
-i_dbm='undef'
-i_dirent='define'
-i_dld='undef'
-i_dlfcn='define'
-i_execinfo='define'
-i_fcntl='undef'
-i_fenv='undef'
-i_float='define'
-i_fp='undef'
-i_fp_class='undef'
-i_gdbm='define'
-i_grp='define'
-i_ieeefp='undef'
-i_inttypes='define'
-i_langinfo='define'
-i_libutil='undef'
-i_limits='define'
-i_locale='define'
-i_machcthr='undef'
-i_malloc='define'
-i_math='define'
-i_memory='undef'
-i_mntent='define'
-i_ndbm='undef'
-i_netdb='define'
-i_neterrno='undef'
-i_netinettcp='define'
-i_niin='define'
-i_poll='define'
-i_prot='undef'
-i_pthread='define'
-i_pwd='define'
-i_quadmath='define'
-i_rpcsvcdbm='undef'
-i_sfio='undef'
-i_sgtty='undef'
-i_shadow='define'
-i_socks='undef'
-i_stdarg='define'
-i_stddef='define'
-i_stdint='define'
-i_stdlib='define'
-i_string='define'
-i_sunmath='undef'
-i_sysaccess='undef'
-i_sysdir='define'
-i_sysfile='define'
-i_sysfilio='undef'
-i_sysin='undef'
-i_sysioctl='define'
-i_syslog='define'
-i_sysmman='define'
-i_sysmode='undef'
-i_sysmount='define'
-i_sysndir='undef'
-i_sysparam='define'
-i_sysresrc='define'
-i_syssecrt='undef'
-i_sysselct='define'
-i_syssockio='undef'
-i_sysstat='define'
-i_sysstatfs='define'
-i_sysstatvfs='define'
-i_systime='define'
-i_systimek='undef'
-i_systimes='define'
-i_systypes='define'
-i_sysuio='define'
-i_sysun='define'
-i_sysutsname='define'
-i_sysvfs='define'
-i_syswait='define'
-i_termio='undef'
-i_termios='define'
-i_time='define'
-i_unistd='define'
-i_ustat='define'
-i_utime='define'
-i_values='define'
-i_varargs='undef'
-i_varhdr='stdarg.h'
-i_vfork='undef'
-ignore_versioned_solibs='y'
-inc_version_list=' '
-inc_version_list_init='0'
-incpath=''
-inews=''
-
-installbin='/usr/bin'
-initialinstalllocation='/usr/bin'
-installhtml1dir=''
-installhtml3dir=''
-installman1dir=''
-installman3dir=''
-installprefix='/usr'
-installprefixexp='/usr'
-
-installscript='/usr/bin'
-
-installsitebin='/usr/bin'
-installsitehtml1dir=''
-installsitehtml3dir=''
-
-installsiteman1dir=''
-installsiteman3dir=''
-installsitescript='/usr/bin'
-installstyle='lib/perl5'
-installusrbinperl='define'
-installvendorarch=''
-installvendorbin=''
-installvendorhtml1dir=''
-installvendorhtml3dir=''
-installvendorlib=''
-installvendorman1dir=''
-installvendorman3dir=''
-installvendorscript=''
-intsize='4'
-issymlink='test -h'
-ivdformat='"ld"'
-ivsize='4'
-ivtype='long'
-ksh=''
-ld='%%LD%%'
-lddlflags='-shared %%LDFLAGS%%'
-ldflags='%%EXTRA_PERLLIBDIRS%%'
-ldflags_uselargefiles=''
-ldlibpthname='LD_LIBRARY_PATH'
-less='less'
-lib_ext='.a'
-libc=''
-libperl='libperl.so'
-libpth='%%LIBDIRS%%'
-libs='-lgdbm -ldb -ldl -lm -lcrypt -lutil -lc'
-libsdirs='%%LIBDIRS%%'
-libsfiles=' libdl.so libm.so libcrypt.so libutil.so libc.so'
-#libsfound=' /usr/lib/libdl.so /usr/lib/libm.so /usr/lib/libcrypt.so /usr/lib/libutil.so /usr/lib/libc.so'
-libspath='%%LIBDIRS%%'
-libswanted='sfio socket inet nm ndbm gdbm dbm db malloc dl dld ld sun m crypt sec util c cposix posix ucb BSD'
-libswanted_uselargefiles=''
-line=''
-lint=''
-lkflags=''
-ln='ln'
-lns='/bin/ln -s'
-localtime_r_proto='0'
-locincpth=' '
-loclibpth=' '
-longdblkind='0'
-longdblsize='8'
-longlongsize='8'
-longsize='4'
-lp=''
-lpr=''
-ls='ls'
-lseeksize='8'
-lseektype='off_t'
-mail=''
-mailx=''
-make='make'
-make_set_make='#'
-mallocobj=''
-mallocsrc=''
-malloctype='void *'
-man1dir=' '
-man1direxp=''
-man1ext='0'
-man3dir=' '
-man3direxp=''
-man3ext='0'
-mips_type=''
-mistrustnm=''
-mkdir='mkdir'
-mmaptype='void *'
-modetype='mode_t'
-more='more'
-multiarch='undef'
-mv=''
-myarchname='armeb-linux-uclibc'
-mydomain='.dev.null'
-myhostname='maia'
-myuname='linux maia 2.6.22 #1 wed jul 11 12:24:09 cest 2007 armv5teb unknown unknown gnulinux '
-n='-n'
-need_va_copy='undef'
-netdb_hlen_type='size_t'
-netdb_host_type='const void *'
-netdb_name_type='const char *'
-netdb_net_type='in_addr_t'
-nm='nm'
-nm_opt=''
-nm_so_opt='--dynamic'
-
-nroff='nroff'
-nvEUformat='"E"'
-nvFUformat='"F"'
-nvGUformat='"G"'
-nv_preserves_uv_bits='32'
-nveformat='"e"'
-nvfformat='"f"'
-nvgformat='"g"'
-nvsize='8'
-nvtype='double'
-o_nonblock='O_NONBLOCK'
-obj_ext='.o'
-old_pthread_create_joinable=''
-optimize='-O2'
-orderlib='false'
-osname='linux'
-osvers='2.6.22'
-otherlibdirs=' '
-package='perl5'
-pager='/usr/bin/less'
-passcat='cat /etc/passwd'
-
-path_sep=':'
-perl5=''
-perl=''
-perl_patchlevel=''
-perladmin='root@maia.dev.null'
-perllibs='-ldl -lm -lcrypt -lutil -lc %%EXTRA_PERLLIBS%%'
-perlpath='/usr/bin/perl'
-pg='pg'
-phostname='hostname'
-pidtype='pid_t'
-plibpth=''
-pmake=''
-pr=''
-prefix='/usr'
-prefixexp='/usr'
-
-
-procselfexe='"/proc/self/exe"'
-prototype='define'
-ptrsize='4'
-quadkind='3'
-quadtype='long long'
-randbits='48'
-randfunc='drand48'
-random_r_proto='0'
-randseedtype='long'
-ranlib=':'
-rd_nodata='-1'
-readdir64_r_proto='0'
-readdir_r_proto='0'
-revision='5'
-rm='rm'
-rm_try='/bin/rm -f try try a.out .out try.[cho] try..o core core.try* try.core*'
-rmail=''
-run=''
-runnm='false'
-sPRIEUldbl='"E"'
-sPRIFUldbl='"F"'
-sPRIGUldbl='"G"'
-sPRIXU64='"LX"'
-sPRId64='"Ld"'
-sPRIeldbl='"e"'
-sPRIfldbl='"f"'
-sPRIgldbl='"g"'
-sPRIi64='"Li"'
-sPRIo64='"Lo"'
-sPRIu64='"Lu"'
-sPRIx64='"Lx"'
-sSCNfldbl='"f"'
-sched_yield='sched_yield()'
-scriptdir='/usr/bin'
-scriptdirexp='/usr/bin'
-sed='sed'
-seedfunc='srand48'
-selectminbits='32'
-selecttype='fd_set *'
-sendmail=''
-setgrent_r_proto='0'
-sethostent_r_proto='0'
-setlocale_r_proto='0'
-setnetent_r_proto='0'
-setprotoent_r_proto='0'
-setpwent_r_proto='0'
-setservent_r_proto='0'
-sh='/bin/sh'
-shar=''
-sharpbang='#!'
-shmattype='void *'
-shortsize='2'
-shrpenv=''
-shsharp='true'
-sig_count='64'
-sig_name='ZERO HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS RTMIN NUM33 NUM34 NUM35 NUM36 NUM37 NUM38 NUM39 NUM40 NUM41 NUM42 NUM43 NUM44 NUM45 NUM46 NUM47 NUM48 NUM49 NUM50 NUM51 NUM52 NUM53 NUM54 NUM55 NUM56 NUM57 NUM58 NUM59 NUM60 NUM61 NUM62 RTMAX IOT CLD POLL UNUSED '
-sig_name_init='"ZERO", "HUP", "INT", "QUIT", "ILL", "TRAP", "ABRT", "BUS", "FPE", "KILL", "USR1", "SEGV", "USR2", "PIPE", "ALRM", "TERM", "STKFLT", "CHLD", "CONT", "STOP", "TSTP", "TTIN", "TTOU", "URG", "XCPU", "XFSZ", "VTALRM", "PROF", "WINCH", "IO", "PWR", "SYS", "RTMIN", "NUM33", "NUM34", "NUM35", "NUM36", "NUM37", "NUM38", "NUM39", "NUM40", "NUM41", "NUM42", "NUM43", "NUM44", "NUM45", "NUM46", "NUM47", "NUM48", "NUM49", "NUM50", "NUM51", "NUM52", "NUM53", "NUM54", "NUM55", "NUM56", "NUM57", "NUM58", "NUM59", "NUM60", "NUM61", "NUM62", "RTMAX", "IOT", "CLD", "POLL", "UNUSED", 0'
-sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 6 17 29 31 '
-sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 6, 17, 29, 31, 0'
-sig_size='68'
-signal_t='void'
-sitearch=''
-sitearchexp=''
-sitebin='/usr/bin'
-sitebinexp='/usr/bin'
-sitehtml1dir=''
-sitehtml1direxp=''
-sitehtml3dir=''
-sitehtml3direxp=''
-sitelib=''
-#sitelib_stem='/usr/lib/perl5/site_perl'
-sitelibexp=''
-siteman1dir=''
-siteman1direxp=''
-siteman3dir=''
-siteman3direxp=''
-siteprefix='/usr'
-siteprefixexp='/usr'
-sitescript='/usr/bin'
-sitescriptexp='/usr/bin'
-sizesize='4'
-sizetype='size_t'
-sleep=''
-smail=''
-so='so'
-sockethdr=''
-socketlib=''
-socksizetype='socklen_t'
-sort='sort'
-spackage='Perl5'
-spitshell='cat'
-srand48_r_proto='0'
-srandom_r_proto='0'
-src='.'
-ssizetype='ssize_t'
-startperl='#!/usr/bin/perl'
-startsh='#!/bin/sh'
-static_ext=' '
-stdchar='char'
-stdio_base='((fp)->_base)'
-stdio_bufsiz='((fp)->_cnt + (fp)->_ptr - (fp)->_base)'
-stdio_cnt='((fp)->_cnt)'
-stdio_filbuf=''
-stdio_ptr='((fp)->_ptr)'
-stdio_stream_array=''
-strerror_r_proto='0'
-#strings='/usr/include/string.h'
-submit=''
-sysman='/usr/share/man/man1'
-tail=''
-tar=''
-targetarch='armeb-linux-uclibc'
-tbl=''
-tee=''
-test='test'
-#timeincl='/usr/include/sys/time.h /usr/include/time.h '
-timetype='time_t'
-tmpnam_r_proto='0'
-to=':'
-touch='touch'
-tr='tr'
-trnl='\n'
-troff=''
-ttyname_r_proto='0'
-u16size='2'
-u16type='unsigned short'
-u32size='4'
-u32type='unsigned long'
-u64size='8'
-u64type='unsigned long long'
-u8size='1'
-u8type='unsigned char'
-uidformat='"lu"'
-uidsign='1'
-uidsize='4'
-uidtype='uid_t'
-uname='uname'
-uniq='uniq'
-uquadtype='unsigned long long'
-use5005threads='undef'
-use64bitall='undef'
-use64bitint='undef'
-usecbacktrace='undef'
-usecrosscompile='define'
-usedl='define'
-usefaststdio='undef'
-useithreads='undef'
-uselargefiles='define'
-uselongdouble='undef'
-usemallocwrap='define'
-usemorebits='undef'
-usemultiplicity='undef'
-usemymalloc='n'
-usenm='true'
-useopcode='true'
-useperlio='define'
-useposix='true'
-usequadmath='undef'
-usereentrant='undef'
-userelocatableinc='undef'
-usesfio='false'
-useshrplib='true'
-usesitecustomize='undef'
-usesocks='undef'
-usethreads='undef'
-usevendorprefix='undef'
-usevfork='false'
-usrinc='%%INCDIRS%%'
-uuname=''
-uvXUformat='"lX"'
-uvoformat='"lo"'
-uvsize='4'
-uvtype='unsigned long'
-uvuformat='"lu"'
-uvxformat='"lx"'
-vendorarch=''
-vendorarchexp=''
-vendorbin=''
-vendorbinexp=''
-vendorhtml1dir=' '
-vendorhtml1direxp=''
-vendorhtml3dir=' '
-vendorhtml3direxp=''
-vendorlib=''
-vendorlib_stem=''
-vendorlibexp=''
-vendorman1dir=' '
-vendorman1direxp=''
-vendorman3dir=' '
-vendorman3direxp=''
-vendorprefix=''
-vendorprefixexp=''
-vendorscript=''
-vendorscriptexp=''
-
-
-versiononly='undef'
-vi=''
-voidflags='15'
-xlibpth='/usr/lib/386 /lib/386'
-yacc='yacc'
-yaccflags=''
-zcat=''
-zip='zip'
-# Configure command line arguments.
-config_arg0='./Configure'
-config_args='-der'
-config_argc=1
-config_arg1='-der'
-PERL_REVISION=5
-PERL_API_REVISION=5
-
-PERL_API_SUBVERSION=0
-PERL_PATCHLEVEL=
-PERL_CONFIG_SH=true
-# Fix problem with HiRes timer.
-d_nanosleep='define'
-d_clock_gettime='define'
-d_clock_getres='define'
-d_clock_nanosleep='define'
-d_clock='define'
-
-# New symbols for perl 5.20.0
-bin_ELF='define'
-charbits='8'
-charsize='1'
-d_asctime64='undef'
-d_attribute_deprecated='define'
-d_ctime64='undef'
-d_difftime64='undef'
-d_gdbm_ndbm_h_uses_prototypes='undef'
-d_gdbmndbm_h_uses_prototypes='undef'
-d_getaddrinfo='define'
-d_getnameinfo='define'
-d_gmtime64='undef'
-d_inetntop='define'
-d_inetpton='define'
-d_ip_mreq='define'
-d_ip_mreq_source='define'
-d_ipv6_mreq='%%IPV6%%'
-d_ipv6_mreq_source='undef'
-d_isblank='define'
-d_libname_unique='undef'
-d_localtime64='undef'
-d_mktime64='undef'
-d_ndbm='undef'
-d_ndbm_h_uses_prototypes='undef'
-d_prctl='define'
-d_prctl_set_name='define'
-d_sin6_scope_id='%%IPV6%%'
-d_sockaddr_in6='%%IPV6%%'
-d_sockaddr_sa_len='undef'
-d_static_inline='define'
-d_timegm='define'
-dtrace=''
-extern_C='extern'
-hostosname=''
-i_assert='define'
-i_bfd='undef'
-i_gdbm_ndbm='undef'
-i_gdbmndbm='undef'
-i_mallocmalloc='undef'
-i_stdbool='define'
-i_syspoll='define'
-#incpth='/usr/lib/gcc/i486-slackware-linux/4.8.2/include /usr/local/include /usr/lib/gcc/i486-slackware-linux/4.8.2/include-fixed /usr/include'
-ld_can_script='define'
-#libsfound=' /usr/lib/libgdbm.so /usr/lib/libdb.so /usr/lib/libdl.so /usr/lib/libm.so /usr/lib/libcrypt.so /usr/lib/libutil.so /usr/lib/libc.so'
-nv_overflows_integers_at='256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0'
-perl_static_inline='static __inline__'
-sGMTIME_max='2147483647'
-sGMTIME_min='-2147483648'
-sLOCALTIME_max='2147483647'
-sLOCALTIME_min='-2147483648'
-#sitelib_stem='/usr/local/lib/perl5/site_perl'
-st_ino_sign='1'
-st_ino_size='8'
-#strings='/usr/include/string.h'
-sysroot=''
-targetdir=''
-targetenv=''
-targethost=''
-targetmkdir=''
-targetport=''
-targetsh='/bin/sh'
-#timeincl='/usr/include/sys/time.h /usr/include/time.h '
-usedevel='undef'
-usedtrace='undef'
-usekernprocpathname='undef'
-usensgetexecutablepath='undef'
-useversionedarchname='undef'
-vaproto='define'
-libdb_needs_pthread='N'
-
-# These symbols changed from perl 5.10.0 to 5.20.0 and probably will
-# change again for new versions, so they're included here for
-# future reference
-api_version='22'
-# Always set this to the base version, not the patched one!
-api_versionstring='5.22.0'
-dynamic_ext='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/DosGlob File/Glob Filter/Util/Call GDBM_File Hash/Util Hash/Util/FieldHash I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc Opcode POSIX PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Tie/Hash/NamedCapture Time/HiRes Time/Piece Unicode/Collate XS/APItest XS/Typemap arybase attributes mro re threads threads/shared'
-installarchlib='/usr/lib/perl5/5.22'
-installprivlib='/usr/lib/perl5/5.22'
-installsitearch='/usr/lib/perl5/5.22'
-installsitelib='/usr/lib/perl5/5.22'
-nonxs_ext='Archive/Tar Attribute/Handlers AutoLoader B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Config/Perl/V Devel/SelfStubber Digest Dumpvalue Env Errno Exporter ExtUtils/CBuilder ExtUtils/Command ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS File/Fetch File/Find File/Path File/Temp FileCache Filter/Simple Getopt/Long HTTP/Tiny I18N/Collate I18N/LangTags IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP Locale/Codes Locale/Maketext Locale/Maketext/Simple Math/BigInt Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NEXT Net/Ping Params/Check Parse/CPAN/Meta Perl/OSType PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage Safe Search/Dict SelfLoader Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Memoize Tie/RefHash Time/Local XSLoader autodie autouse base bignum constant encoding/warnings experimental if lib libnet parent perlfaq podlators Unicode/Normalize version'
-privlib='/usr/lib/perl5/5.22'
-privlibexp='/usr/lib/perl5/5.22'
-archlib='/usr/lib/perl5/5.22'
-archlibexp='/usr/lib/perl5/5.22'
-version='5.22.0'
-version_patchlevel_string='version 22 subversion 0'
-PERL_VERSION=22
-PERL_API_VERSION=22
-PERL_SUBVERSION=0
-patchlevel='22'
-ccdlflags='-fPIC -Wl,-rpath,/usr/lib/perl5/5.22/CORE'
-subversion='0'
-extensions='B Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call GDBM_File Hash/Util I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex Time/HiRes Time/Piece XS/APItest XS/Typemap attrs re threads threads/shared Hash/Util/FieldHash Compress/Zlib Errno IO_Compress_Base IO_Compress_Zlib Unicode/Normalize'
-known_extensions='B Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call GDBM_File Hash/Util I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc NDBM_File ODBM_File Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex Time/HiRes Time/Piece Unicode/Normalize Win32 Win32API/File Win32CORE XS/APItest XS/Typemap attrs re threads threads/shared Hash/Util/FieldHash'
-
-# Make perl use these tools instead of the target binaries during build
-hostgenerate='%%HOSTGENERATE%%'
-hostperl='%%HOSTMINIPERL%%'
diff --git a/lang/perl/files/config.sh-avr32-mt.in b/lang/perl/files/config.sh-avr32-mt.in
deleted file mode 100644 (file)
index fd420a2..0000000
+++ /dev/null
@@ -1,1229 +0,0 @@
-#!/bin/sh
-#
-# This file was produced by running the Configure script. It holds all the
-# definitions figured out by Configure. Should you modify one of these values,
-# do not forget to propagate your changes by running "Configure -der". You may
-# instead choose to run each of the .SH files by yourself, or "Configure -S".
-#
-
-# Package name      : perl5
-# Source directory  : .
-# Configuration time: Fri Jul 20 04:39:05 MDT 2007
-# Configured by     : root
-# Target system     : linux maia 2.6.22 #1 wed jul 11 12:24:09 cest 2007 armv5teb unknown unknown gnulinux 
-
-Author=''
-Date=''
-Header=''
-Id=''
-Locker=''
-Log=''
-RCSfile=''
-Revision=''
-Source=''
-State=''
-_a='.a'
-_exe=''
-_o='.o'
-afs='false'
-afsroot='/afs'
-alignbytes='8'
-ansi2knr=''
-aphostname='/bin/hostname'
-api_revision='5'
-api_subversion='0'
-
-
-ar='ar'
-archname64=''
-archname='avr32-linux-uclibc'
-archobjs=''
-asctime_r_proto='REENTRANT_PROTO_B_SB'
-awk='awk'
-baserev='5.0'
-bash=''
-bin='/usr/bin'
-binexp='/usr/bin'
-bison='bison'
-byacc='byacc'
-byteorder='4321'
-c=''
-castflags='0'
-cat='cat'
-cc='%%CC%%'
-cccdlflags='-fPIC'
-ccflags='-D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 %%CFLAGS%%'
-ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
-ccname='gcc'
-ccsymbols=''
-ccversion=''
-cf_by='root'
-cf_email='root@maia.dev.null'
-cf_time='Fri Jul 20 04:39:05 MDT 2007'
-chgrp=''
-chmod='chmod'
-chown=''
-clocktype='clock_t'
-comm='comm'
-compress=''
-contains='grep'
-cp='cp'
-cpio=''
-cpp='cpp'
-cpp_stuff='42'
-cppccsymbols=''
-cppflags='-D_REENTRANT -D_GNU_SOURCE %%CFLAGS%%'
-cpplast='-'
-cppminus='-'
-cpprun='%%CPP%%'
-cppstdin='%%CPP%%'
-cppsymbols='__ELF__=1 _FILE_OFFSET_BITS=64 __GLIBC__=2 __GLIBC_MINOR__=2 __GNUC__=3 __GNUC_MINOR__=4 __GNU_LIBRARY__=6 _LARGEFILE_SOURCE=1 _POSIX_C_SOURCE=199506L _POSIX_SOURCE=1 __STDC__=1 __USE_BSD=1 __USE_FILE_OFFSET64=1 __USE_LARGEFILE=1 __USE_MISC=1 __USE_POSIX=1 __USE_POSIX199309=1 __USE_POSIX199506=1 __USE_POSIX2=1 __USE_SVID=1 linux=1 __linux=1 __linux__=1 unix=1 __unix=1 __unix__=1'
-crypt_r_proto='%%CRYPT_R_PROTO%%'
-cryptlib=''
-csh='csh'
-ctermid_r_proto='0'
-ctime_r_proto='REENTRANT_PROTO_B_SB'
-# Matteo Croce, Mon, 21 Apr 2008 03:19:30 +0200
-# Fixes perl: can't resolve symbol 'gcvt'
-d_Gconvert='sprintf((b),"%.*g",(n),(x))'
-d_PRIEUldbl='define'
-d_PRIFUldbl='define'
-d_PRIGUldbl='define'
-d_PRIXU64='define'
-d_PRId64='define'
-d_PRIeldbl='define'
-d_PRIfldbl='define'
-d_PRIgldbl='define'
-d_PRIi64='define'
-d_PRIo64='define'
-d_PRIu64='define'
-d_PRIx64='define'
-d_SCNfldbl='define'
-d__fwalk='undef'
-d_access='define'
-d_accessx='undef'
-d_acosh='define'
-d_aintl='undef'
-d_alarm='define'
-d_archlib='undef'
-d_asctime_r='define'
-d_asinh='define'
-d_atanh='define'
-d_atolf='undef'
-d_atoll='define'
-d_attribute_format='define'
-d_attribute_malloc='define'
-d_attribute_nonnull='define'
-d_attribute_noreturn='define'
-d_attribute_pure='define'
-d_attribute_unused='define'
-d_attribute_warn_unused_result='define'
-d_backtrace='define'
-d_bcmp='define'
-d_bcopy='define'
-d_bsd='undef'
-d_bsdgetpgrp='undef'
-d_bsdsetpgrp='undef'
-d_builtin_choose_expr='define'
-d_builtin_expect='undef'
-d_bzero='define'
-d_c99_variadic_macros='define'
-d_casti32='define'
-d_castneg='define'
-d_cbrt='define'
-d_charvspr='undef'
-d_chown='define'
-d_chroot='define'
-d_chsize='undef'
-d_class='undef'
-d_clearenv='define'
-d_closedir='define'
-d_cmsghdr_s='define'
-d_const='define'
-d_copysign='define'
-d_copysignl='undef'
-d_cplusplus='undef'
-d_crypt='%%CRYPT%%'
-d_crypt_r='%%CRYPT%%'
-d_csh='undef'
-d_ctermid='define'
-d_ctermid_r='undef'
-d_ctime_r='define'
-d_cuserid='define'
-d_dbl_dig='define'
-d_dbminitproto='undef'
-d_difftime='define'
-d_dir_dd_fd='undef'
-d_dirfd='define'
-d_dirnamlen='undef'
-d_dladdr='define'
-d_dlerror='define'
-d_dlopen='define'
-d_dlsymun='undef'
-d_dosuid='undef'
-d_drand48_r='define'
-d_drand48proto='define'
-d_dup2='define'
-d_eaccess='undef'
-d_endgrent='define'
-d_endgrent_r='undef'
-d_endhent='define'
-d_endhostent_r='undef'
-d_endnent='define'
-d_endnetent_r='undef'
-d_endpent='define'
-d_endprotoent_r='undef'
-d_endpwent='define'
-d_endpwent_r='undef'
-d_endsent='define'
-d_endservent_r='undef'
-d_eofnblk='define'
-d_erf='define'
-d_erfc='define'
-d_eunice='undef'
-d_exp2='define'
-d_expm1='define'
-d_faststdio='undef'
-d_fchdir='define'
-d_fchmod='define'
-d_fchown='define'
-d_fcntl='define'
-d_fcntl_can_lock='define'
-d_fd_macros='define'
-d_fd_set='define'
-d_fdim='define'
-d_fds_bits='define'
-d_fegetround='undef'
-d_fgetpos='define'
-d_finite='define'
-d_finitel='undef'
-d_flexfnam='define'
-d_flock='define'
-d_flockproto='define'
-d_fma='define'
-d_fmax='define'
-d_fmin='define'
-d_fork='define'
-d_fp_class='undef'
-d_fp_classify='undef'
-d_fp_classl='undef'
-d_fpathconf='define'
-d_fpclass='undef'
-d_fpclassify='define'
-d_fpclassl='undef'
-d_fpgetround='undef'
-d_fpos64_t='undef'
-d_frexpl='undef'
-d_fs_data_s='undef'
-d_fseeko='define'
-d_fsetpos='define'
-d_fstatfs='define'
-d_fstatvfs='define'
-d_fsync='define'
-d_ftello='define'
-d_ftime='undef'
-d_futimes='undef'
-d_getcwd='define'
-d_getespwnam='undef'
-d_getfsstat='undef'
-d_getgrent='define'
-d_getgrent_r='define'
-d_getgrgid_r='define'
-d_getgrnam_r='define'
-d_getgrps='define'
-d_gethbyaddr='define'
-d_gethbyname='define'
-d_gethent='define'
-d_gethname='define'
-d_gethostbyaddr_r='define'
-d_gethostbyname_r='define'
-d_gethostent_r='define'
-d_gethostprotos='define'
-d_getitimer='define'
-d_getlogin='define'
-d_getlogin_r='define'
-d_getmnt='undef'
-d_getmntent='define'
-d_getnbyaddr='define'
-d_getnbyname='define'
-d_getnent='define'
-d_getnetbyaddr_r='define'
-d_getnetbyname_r='define'
-d_getnetent_r='define'
-d_getnetprotos='define'
-d_getpagsz='define'
-d_getpbyname='define'
-d_getpbynumber='define'
-d_getpent='define'
-d_getpgid='define'
-d_getpgrp2='undef'
-d_getpgrp='define'
-d_getppid='define'
-d_getprior='define'
-d_getprotobyname_r='define'
-d_getprotobynumber_r='define'
-d_getprotoent_r='define'
-d_getprotoprotos='define'
-d_getprpwnam='undef'
-d_getpwent='define'
-d_getpwent_r='define'
-d_getpwnam_r='define'
-d_getpwuid_r='define'
-d_getsbyname='define'
-d_getsbyport='define'
-d_getsent='define'
-d_getservbyname_r='define'
-d_getservbyport_r='define'
-d_getservent_r='define'
-d_getservprotos='define'
-d_getspnam='define'
-d_getspnam_r='define'
-d_gettimeod='define'
-d_gmtime_r='define'
-d_gnulibc='undef'
-d_grpasswd='define'
-d_hasmntopt='define'
-d_htonl='define'
-d_hypot='define'
-d_ilogb='define'
-d_ilogbl='undef'
-d_inc_version_list='undef'
-d_index='undef'
-d_inetaton='define'
-d_int64_t='define'
-d_isascii='define'
-d_isfinite='define'
-d_isfinitel='undef'
-d_isinf='define'
-d_isinfl='define'
-d_isless='undef'
-d_isnan='define'
-d_isnanl='undef'
-d_isnormal='define'
-d_j0='undef'
-d_j0l='undef'
-d_killpg='define'
-d_lc_monetary_2008='define'
-d_lchown='define'
-d_ldbl_dig='define'
-d_ldexpl='define'
-d_lgamma='define'
-d_lgamma_r='define'
-d_libm_lib_version='define'
-d_link='define'
-d_llrint='define'
-d_llrintl='define'
-d_llround='define'
-d_llroundl='define'
-d_localtime_r='define'
-d_localtime_r_needs_tzset='define'
-d_locconv='define'
-d_lockf='define'
-d_log1p='define'
-d_log2='define'
-d_logb='define'
-d_longdbl='define'
-d_longlong='define'
-d_lrint='define'
-d_lrintl='define'
-d_lround='define'
-d_lroundl='define'
-d_lseekproto='define'
-d_lstat='define'
-d_madvise='define'
-d_malloc_good_size='undef'
-d_malloc_size='undef'
-d_mblen='define'
-d_mbstowcs='define'
-d_mbtowc='define'
-d_memchr='define'
-d_memcmp='define'
-d_memcpy='define'
-d_memmove='define'
-d_memset='define'
-d_mkdir='define'
-d_mkdtemp='define'
-d_mkfifo='define'
-d_mkstemp='define'
-d_mkstemps='undef'
-d_mktime='define'
-d_mmap='define'
-d_modfl='undef'
-d_modfl_pow32_bug='undef'
-d_modflproto='undef'
-d_mprotect='define'
-d_msg='define'
-d_msg_ctrunc='define'
-d_msg_dontroute='define'
-d_msg_oob='define'
-d_msg_peek='define'
-d_msg_proxy='define'
-d_msgctl='define'
-d_msgget='define'
-d_msghdr_s='define'
-d_msgrcv='define'
-d_msgsnd='define'
-d_msync='define'
-d_munmap='define'
-d_mymalloc='undef'
-d_nan='define'
-d_nearbyint='define'
-d_nextafter='define'
-d_nexttoward='undef'
-d_nice='define'
-d_nl_langinfo='define'
-d_nv_preserves_uv='define'
-d_nv_zero_is_allbits_zero='define'
-d_off64_t='define'
-d_old_pthread_create_joinable='undef'
-d_oldpthreads='undef'
-d_oldsock='undef'
-d_open3='define'
-d_pathconf='define'
-d_pause='define'
-d_perl_otherlibdirs='undef'
-d_phostname='undef'
-d_pipe='define'
-d_poll='define'
-d_portable='define'
-d_printf_format_null='define'
-d_procselfexe='define'
-d_pseudofork='undef'
-d_pthread_atfork='define'
-d_pthread_attr_setscope='define'
-d_pthread_yield='define'
-d_ptrdiff_t='define'
-d_pwage='undef'
-d_pwchange='undef'
-d_pwclass='undef'
-d_pwcomment='undef'
-d_pwexpire='undef'
-d_pwgecos='define'
-d_pwpasswd='define'
-d_pwquota='undef'
-d_qgcvt='undef'
-d_quad='define'
-d_random_r='define'
-d_re_comp='undef'
-d_readdir64_r='define'
-d_readdir='define'
-d_readdir_r='define'
-d_readlink='define'
-d_readv='define'
-d_recvmsg='define'
-d_regcmp='undef'
-d_regcomp='define'
-d_remainder='define'
-d_remquo='define'
-d_rename='define'
-d_rewinddir='define'
-d_rint='define'
-d_rmdir='define'
-d_round='define'
-d_safebcpy='undef'
-d_safemcpy='undef'
-d_sanemcmp='define'
-d_sbrkproto='define'
-d_scalbn='define'
-d_scalbnl='undef'
-d_sched_yield='define'
-d_scm_rights='define'
-d_seekdir='define'
-d_select='define'
-d_sem='define'
-d_semctl='define'
-d_semctl_semid_ds='define'
-d_semctl_semun='define'
-d_semget='define'
-d_semop='define'
-d_sendmsg='define'
-d_setegid='define'
-d_seteuid='define'
-d_setgrent='define'
-d_setgrent_r='undef'
-d_setgrps='define'
-d_sethent='define'
-d_sethostent_r='undef'
-d_setitimer='define'
-d_setlinebuf='define'
-d_setlocale='define'
-d_setlocale_r='undef'
-d_setnent='define'
-d_setnetent_r='undef'
-d_setpent='define'
-d_setpgid='define'
-d_setpgrp2='undef'
-d_setpgrp='define'
-d_setprior='define'
-d_setproctitle='undef'
-d_setprotoent_r='undef'
-d_setpwent='define'
-d_setpwent_r='undef'
-d_setregid='define'
-d_setresgid='define'
-d_setresuid='define'
-d_setreuid='define'
-d_setrgid='undef'
-d_setruid='undef'
-d_setsent='define'
-d_setservent_r='undef'
-d_setsid='define'
-d_setvbuf='define'
-d_sfio='undef'
-d_shm='define'
-d_shmat='define'
-d_shmatprototype='define'
-d_shmctl='define'
-d_shmdt='define'
-d_shmget='define'
-d_sigaction='define'
-d_signbit='undef'
-d_sigprocmask='define'
-d_sigsetjmp='define'
-d_sitearch='define'
-d_snprintf='define'
-d_sockatmark='undef'
-d_sockatmarkproto='undef'
-d_socket='define'
-d_socklen_t='define'
-d_sockpair='define'
-d_socks5_init='undef'
-d_sprintf_returns_strlen='define'
-d_sqrtl='undef'
-d_srand48_r='define'
-d_srandom_r='define'
-d_sresgproto='define'
-d_sresuproto='define'
-d_stat='define'
-d_statblks='define'
-d_statfs_f_flags='undef'
-d_statfs_s='define'
-d_statvfs='define'
-d_stdio_cnt_lval='undef'
-d_stdio_ptr_lval='undef'
-d_stdio_ptr_lval_nochange_cnt='undef'
-d_stdio_ptr_lval_sets_cnt='undef'
-d_stdio_stream_array='undef'
-d_stdiobase='undef'
-d_stdstdio='undef'
-d_strchr='define'
-d_strcoll='define'
-d_strctcpy='define'
-d_strerrm='strerror(e)'
-d_strerror='define'
-d_strerror_r='define'
-d_strftime='define'
-d_strlcat='define'
-d_strlcpy='define'
-d_strtod='define'
-d_strtol='define'
-d_strtold='define'
-d_strtoll='define'
-d_strtoq='define'
-d_strtoul='define'
-d_strtoull='define'
-d_strtouq='define'
-d_strxfrm='define'
-d_suidsafe='undef'
-d_symlink='define'
-d_syscall='define'
-d_syscallproto='define'
-d_sysconf='define'
-d_sysernlst=''
-d_syserrlst='undef'
-d_system='define'
-d_tcgetpgrp='define'
-d_tcsetpgrp='define'
-d_telldir='define'
-d_telldirproto='define'
-d_tgamma='define'
-d_time='define'
-d_times='define'
-d_tm_tm_gmtoff='define'
-d_tm_tm_zone='define'
-d_tmpnam_r='define'
-d_trunc='define'
-d_truncate='define'
-d_truncl='define'
-d_ttyname_r='define'
-d_tzname='define'
-d_u32align='undef'
-d_ualarm='define'
-d_umask='define'
-d_uname='define'
-d_union_semun='undef'
-d_unordered='undef'
-d_unsetenv='define'
-d_usleep='define'
-d_usleepproto='define'
-d_ustat='define'
-d_vendorarch='undef'
-d_vendorbin='undef'
-d_vendorlib='undef'
-d_vendorscript='undef'
-d_vfork='undef'
-d_void_closedir='undef'
-d_voidsig='define'
-d_voidtty=''
-d_volatile='define'
-d_vprintf='define'
-d_vsnprintf='define'
-d_wait4='define'
-d_waitpid='define'
-d_wcscmp='define'
-d_wcstombs='define'
-d_wcsxfrm='define'
-d_wctomb='define'
-d_writev='define'
-d_xenix='undef'
-date='date'
-db_hashtype='u_int32_t'
-db_prefixtype='size_t'
-db_version_major=''
-db_version_minor=''
-db_version_patch=''
-defvoidused='15'
-direntrytype='struct dirent'
-dlext='so'
-dlsrc='dl_dlopen.xs'
-doublekind='4'
-doublesize='8'
-drand01='drand48()'
-drand48_r_proto='REENTRANT_PROTO_I_ST'
-
-eagain='EAGAIN'
-ebcdic='undef'
-echo='echo'
-egrep='egrep'
-emacs=''
-endgrent_r_proto='0'
-endhostent_r_proto='0'
-endnetent_r_proto='0'
-endprotoent_r_proto='0'
-endpwent_r_proto='0'
-endservent_r_proto='0'
-eunicefix=':'
-exe_ext=''
-expr='expr'
-extras=''
-fflushNULL='define'
-fflushall='undef'
-find=''
-firstmakefile='makefile'
-flex=''
-fpossize='20'
-fpostype='fpos_t'
-freetype='void'
-from=':'
-full_ar='%%AR%%'
-full_csh='csh'
-full_sed='sed'
-gccansipedantic=''
-gccosandvers=''
-gccversion='3.4.3'
-getgrent_r_proto='REENTRANT_PROTO_I_SBWR'
-getgrgid_r_proto='REENTRANT_PROTO_I_TSBWR'
-getgrnam_r_proto='REENTRANT_PROTO_I_CSBWR'
-gethostbyaddr_r_proto='REENTRANT_PROTO_I_TsISBWRE'
-gethostbyname_r_proto='REENTRANT_PROTO_I_CSBWRE'
-gethostent_r_proto='REENTRANT_PROTO_I_SBWRE'
-getlogin_r_proto='REENTRANT_PROTO_I_BW'
-getnetbyaddr_r_proto='REENTRANT_PROTO_I_uISBWRE'
-getnetbyname_r_proto='REENTRANT_PROTO_I_CSBWRE'
-getnetent_r_proto='REENTRANT_PROTO_I_SBWRE'
-getprotobyname_r_proto='REENTRANT_PROTO_I_CSBWR'
-getprotobynumber_r_proto='REENTRANT_PROTO_I_ISBWR'
-getprotoent_r_proto='REENTRANT_PROTO_I_SBWR'
-getpwent_r_proto='REENTRANT_PROTO_I_SBWR'
-getpwnam_r_proto='REENTRANT_PROTO_I_CSBWR'
-getpwuid_r_proto='REENTRANT_PROTO_I_TSBWR'
-getservbyname_r_proto='REENTRANT_PROTO_I_CCSBWR'
-getservbyport_r_proto='REENTRANT_PROTO_I_ICSBWR'
-getservent_r_proto='REENTRANT_PROTO_I_SBWR'
-getspnam_r_proto='REENTRANT_PROTO_I_CSBWR'
-gidformat='"lu"'
-gidsign='1'
-gidsize='4'
-gidtype='gid_t'
-glibpth='/usr/shlib  /lib /usr/lib /usr/lib/386 /lib/386 /usr/ccs/lib /usr/ucblib /usr/local/lib '
-gmake='gmake'
-gmtime_r_proto='REENTRANT_PROTO_S_TS'
-gnulibc_version=''
-grep='grep'
-groupcat='cat /etc/group'
-groupstype='gid_t'
-gzip='gzip'
-h_fcntl='false'
-h_sysfile='true'
-hint='recommended'
-hostcat='cat /etc/hosts'
-html1dir=' '
-html1direxp=''
-html3dir=' '
-html3direxp=''
-i16size='2'
-i16type='short'
-i32size='4'
-i32type='long'
-i64size='8'
-i64type='long long'
-i8size='1'
-i8type='char'
-i_arpainet='define'
-i_bsdioctl=''
-i_crypt='%%CRYPT%%'
-i_db='define'
-i_dbm='undef'
-i_dirent='define'
-i_dld='undef'
-i_dlfcn='define'
-i_execinfo='define'
-i_fcntl='undef'
-i_fenv='undef'
-i_float='define'
-i_fp='undef'
-i_fp_class='undef'
-i_gdbm='define'
-i_grp='define'
-i_ieeefp='undef'
-i_inttypes='define'
-i_langinfo='define'
-i_libutil='undef'
-i_limits='define'
-i_locale='define'
-i_machcthr='undef'
-i_malloc='define'
-i_math='define'
-i_memory='undef'
-i_mntent='define'
-i_ndbm='undef'
-i_netdb='define'
-i_neterrno='undef'
-i_netinettcp='define'
-i_niin='define'
-i_poll='define'
-i_prot='undef'
-i_pthread='define'
-i_pwd='define'
-i_quadmath='define'
-i_rpcsvcdbm='undef'
-i_sfio='undef'
-i_sgtty='undef'
-i_shadow='define'
-i_socks='undef'
-i_stdarg='define'
-i_stddef='define'
-i_stdint='define'
-i_stdlib='define'
-i_string='define'
-i_sunmath='undef'
-i_sysaccess='undef'
-i_sysdir='define'
-i_sysfile='define'
-i_sysfilio='undef'
-i_sysin='undef'
-i_sysioctl='define'
-i_syslog='define'
-i_sysmman='define'
-i_sysmode='undef'
-i_sysmount='define'
-i_sysndir='undef'
-i_sysparam='define'
-i_sysresrc='define'
-i_syssecrt='undef'
-i_sysselct='define'
-i_syssockio='undef'
-i_sysstat='define'
-i_sysstatfs='define'
-i_sysstatvfs='define'
-i_systime='define'
-i_systimek='undef'
-i_systimes='define'
-i_systypes='define'
-i_sysuio='define'
-i_sysun='define'
-i_sysutsname='define'
-i_sysvfs='define'
-i_syswait='define'
-i_termio='undef'
-i_termios='define'
-i_time='define'
-i_unistd='define'
-i_ustat='define'
-i_utime='define'
-i_values='define'
-i_varargs='undef'
-i_varhdr='stdarg.h'
-i_vfork='undef'
-ignore_versioned_solibs='y'
-inc_version_list=' '
-inc_version_list_init='0'
-incpath=''
-inews=''
-
-installbin='/usr/bin'
-initialinstalllocation='/usr/bin'
-installhtml1dir=''
-installhtml3dir=''
-installman1dir=''
-installman3dir=''
-installprefix='/usr'
-installprefixexp='/usr'
-
-installscript='/usr/bin'
-
-installsitebin='/usr/bin'
-installsitehtml1dir=''
-installsitehtml3dir=''
-
-installsiteman1dir=''
-installsiteman3dir=''
-installsitescript='/usr/bin'
-installstyle='lib/perl5'
-installusrbinperl='define'
-installvendorarch=''
-installvendorbin=''
-installvendorhtml1dir=''
-installvendorhtml3dir=''
-installvendorlib=''
-installvendorman1dir=''
-installvendorman3dir=''
-installvendorscript=''
-intsize='4'
-issymlink='test -h'
-ivdformat='"ld"'
-ivsize='4'
-ivtype='long'
-ksh=''
-ld='%%LD%%'
-lddlflags='-shared %%LDFLAGS%%'
-ldflags='%%EXTRA_PERLLIBDIRS%%'
-ldflags_uselargefiles=''
-ldlibpthname='LD_LIBRARY_PATH'
-less='less'
-lib_ext='.a'
-libc=''
-libperl='libperl.so'
-libpth='%%LIBDIRS%%'
-libs='-lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread -lc'
-libsdirs='%%LIBDIRS%%'
-libsfiles=' libdl.so libm.so libcrypt.so libutil.so libpthread.so libc.so'
-#libsfound=' /usr/lib/libdl.so /usr/lib/libm.so /usr/lib/libcrypt.so /usr/lib/libutil.so /usr/lib/libc.so'
-libspath='%%LIBDIRS%%'
-libswanted='sfio socket inet nm ndbm gdbm dbm db malloc dl dld ld sun m crypt sec util pthread c cposix posix ucb BSD'
-libswanted_uselargefiles=''
-line=''
-lint=''
-lkflags=''
-ln='ln'
-lns='/bin/ln -s'
-localtime_r_proto='REENTRANT_PROTO_S_TS'
-locincpth=' '
-loclibpth=' '
-longdblkind='0'
-longdblsize='8'
-longlongsize='8'
-longsize='4'
-lp=''
-lpr=''
-ls='ls'
-lseeksize='8'
-lseektype='off_t'
-mail=''
-mailx=''
-make='make'
-make_set_make='#'
-mallocobj=''
-mallocsrc=''
-malloctype='void *'
-man1dir=' '
-man1direxp=''
-man1ext='0'
-man3dir=' '
-man3direxp=''
-man3ext='0'
-mips_type=''
-mistrustnm=''
-mkdir='mkdir'
-mmaptype='void *'
-modetype='mode_t'
-more='more'
-multiarch='undef'
-mv=''
-myarchname='avr32-linux-uclibc'
-mydomain='.dev.null'
-myhostname='maia'
-myuname='linux maia 2.6.22 #1 wed jul 11 12:24:09 cest 2007 armv5teb unknown unknown gnulinux '
-n='-n'
-need_va_copy='undef'
-netdb_hlen_type='size_t'
-netdb_host_type='const void *'
-netdb_name_type='const char *'
-netdb_net_type='in_addr_t'
-nm='nm'
-nm_opt=''
-nm_so_opt='--dynamic'
-
-nroff='nroff'
-nvEUformat='"E"'
-nvFUformat='"F"'
-nvGUformat='"G"'
-nv_preserves_uv_bits='32'
-nveformat='"e"'
-nvfformat='"f"'
-nvgformat='"g"'
-nvsize='8'
-nvtype='double'
-o_nonblock='O_NONBLOCK'
-obj_ext='.o'
-old_pthread_create_joinable=''
-optimize='-O2'
-orderlib='false'
-osname='linux'
-osvers='2.6.22'
-otherlibdirs=' '
-package='perl5'
-pager='/usr/bin/less'
-passcat='cat /etc/passwd'
-
-path_sep=':'
-perl5=''
-perl=''
-perl_patchlevel=''
-perladmin='root@maia.dev.null'
-perllibs='-ldl -lm -lcrypt -lutil -lpthread -lc %%EXTRA_PERLLIBS%%'
-perlpath='/usr/bin/perl'
-pg='pg'
-phostname='hostname'
-pidtype='pid_t'
-plibpth=''
-pmake=''
-pr=''
-prefix='/usr'
-prefixexp='/usr'
-
-
-procselfexe='"/proc/self/exe"'
-prototype='define'
-ptrsize='4'
-quadkind='3'
-quadtype='long long'
-randbits='48'
-randfunc='drand48'
-random_r_proto='REENTRANT_PROTO_I_St'
-randseedtype='long'
-ranlib=':'
-rd_nodata='-1'
-readdir64_r_proto='REENTRANT_PROTO_I_TSR'
-readdir_r_proto='REENTRANT_PROTO_I_TSR'
-revision='5'
-rm='rm'
-rm_try='/bin/rm -f try try a.out .out try.[cho] try..o core core.try* try.core*'
-rmail=''
-run=''
-runnm='false'
-sPRIEUldbl='"E"'
-sPRIFUldbl='"F"'
-sPRIGUldbl='"G"'
-sPRIXU64='"LX"'
-sPRId64='"Ld"'
-sPRIeldbl='"e"'
-sPRIfldbl='"f"'
-sPRIgldbl='"g"'
-sPRIi64='"Li"'
-sPRIo64='"Lo"'
-sPRIu64='"Lu"'
-sPRIx64='"Lx"'
-sSCNfldbl='"f"'
-sched_yield='sched_yield()'
-scriptdir='/usr/bin'
-scriptdirexp='/usr/bin'
-sed='sed'
-seedfunc='srand48'
-selectminbits='32'
-selecttype='fd_set *'
-sendmail=''
-setgrent_r_proto='0'
-sethostent_r_proto='0'
-setlocale_r_proto='0'
-setnetent_r_proto='0'
-setprotoent_r_proto='0'
-setpwent_r_proto='0'
-setservent_r_proto='0'
-sh='/bin/sh'
-shar=''
-sharpbang='#!'
-shmattype='void *'
-shortsize='2'
-shrpenv=''
-shsharp='true'
-sig_count='64'
-sig_name='ZERO HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS RTMIN NUM33 NUM34 NUM35 NUM36 NUM37 NUM38 NUM39 NUM40 NUM41 NUM42 NUM43 NUM44 NUM45 NUM46 NUM47 NUM48 NUM49 NUM50 NUM51 NUM52 NUM53 NUM54 NUM55 NUM56 NUM57 NUM58 NUM59 NUM60 NUM61 NUM62 RTMAX IOT CLD POLL UNUSED '
-sig_name_init='"ZERO", "HUP", "INT", "QUIT", "ILL", "TRAP", "ABRT", "BUS", "FPE", "KILL", "USR1", "SEGV", "USR2", "PIPE", "ALRM", "TERM", "STKFLT", "CHLD", "CONT", "STOP", "TSTP", "TTIN", "TTOU", "URG", "XCPU", "XFSZ", "VTALRM", "PROF", "WINCH", "IO", "PWR", "SYS", "RTMIN", "NUM33", "NUM34", "NUM35", "NUM36", "NUM37", "NUM38", "NUM39", "NUM40", "NUM41", "NUM42", "NUM43", "NUM44", "NUM45", "NUM46", "NUM47", "NUM48", "NUM49", "NUM50", "NUM51", "NUM52", "NUM53", "NUM54", "NUM55", "NUM56", "NUM57", "NUM58", "NUM59", "NUM60", "NUM61", "NUM62", "RTMAX", "IOT", "CLD", "POLL", "UNUSED", 0'
-sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 6 17 29 31 '
-sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 6, 17, 29, 31, 0'
-sig_size='68'
-signal_t='void'
-sitearch=''
-sitearchexp=''
-sitebin='/usr/bin'
-sitebinexp='/usr/bin'
-sitehtml1dir=''
-sitehtml1direxp=''
-sitehtml3dir=''
-sitehtml3direxp=''
-sitelib=''
-#sitelib_stem='/usr/lib/perl5/site_perl'
-sitelibexp=''
-siteman1dir=''
-siteman1direxp=''
-siteman3dir=''
-siteman3direxp=''
-siteprefix='/usr'
-siteprefixexp='/usr'
-sitescript='/usr/bin'
-sitescriptexp='/usr/bin'
-sizesize='4'
-sizetype='size_t'
-sleep=''
-smail=''
-so='so'
-sockethdr=''
-socketlib=''
-socksizetype='socklen_t'
-sort='sort'
-spackage='Perl5'
-spitshell='cat'
-srand48_r_proto='REENTRANT_PROTO_I_LS'
-srandom_r_proto='REENTRANT_PROTO_I_TS'
-src='.'
-ssizetype='ssize_t'
-startperl='#!/usr/bin/perl'
-startsh='#!/bin/sh'
-static_ext=' '
-stdchar='char'
-stdio_base='((fp)->_base)'
-stdio_bufsiz='((fp)->_cnt + (fp)->_ptr - (fp)->_base)'
-stdio_cnt='((fp)->_cnt)'
-stdio_filbuf=''
-stdio_ptr='((fp)->_ptr)'
-stdio_stream_array=''
-strerror_r_proto='REENTRANT_PROTO_B_IBW'
-#strings='/usr/include/string.h'
-submit=''
-sysman='/usr/share/man/man1'
-tail=''
-tar=''
-targetarch='avr32-linux-uclibc'
-tbl=''
-tee=''
-test='test'
-#timeincl='/usr/include/sys/time.h /usr/include/time.h '
-timetype='time_t'
-tmpnam_r_proto='REENTRANT_PROTO_B_B'
-to=':'
-touch='touch'
-tr='tr'
-trnl='\n'
-troff=''
-ttyname_r_proto='REENTRANT_PROTO_I_IBW'
-u16size='2'
-u16type='unsigned short'
-u32size='4'
-u32type='unsigned long'
-u64size='8'
-u64type='unsigned long long'
-u8size='1'
-u8type='unsigned char'
-uidformat='"lu"'
-uidsign='1'
-uidsize='4'
-uidtype='uid_t'
-uname='uname'
-uniq='uniq'
-uquadtype='unsigned long long'
-use5005threads='undef'
-use64bitall='undef'
-use64bitint='undef'
-usecbacktrace='undef'
-usecrosscompile='undef'
-usedl='define'
-usefaststdio='undef'
-useithreads='define'
-uselargefiles='define'
-uselongdouble='undef'
-usemallocwrap='define'
-usemorebits='undef'
-usemultiplicity='define'
-usemymalloc='n'
-usenm='true'
-useopcode='true'
-useperlio='define'
-useposix='true'
-usequadmath='undef'
-usereentrant='undef'
-userelocatableinc='undef'
-usesfio='false'
-useshrplib='true'
-usesitecustomize='undef'
-usesocks='undef'
-usethreads='define'
-usevendorprefix='undef'
-usevfork='false'
-usrinc='%%INCDIRS%%'
-uuname=''
-uvXUformat='"lX"'
-uvoformat='"lo"'
-uvsize='4'
-uvtype='unsigned long'
-uvuformat='"lu"'
-uvxformat='"lx"'
-vendorarch=''
-vendorarchexp=''
-vendorbin=''
-vendorbinexp=''
-vendorhtml1dir=' '
-vendorhtml1direxp=''
-vendorhtml3dir=' '
-vendorhtml3direxp=''
-vendorlib=''
-vendorlib_stem=''
-vendorlibexp=''
-vendorman1dir=' '
-vendorman1direxp=''
-vendorman3dir=' '
-vendorman3direxp=''
-vendorprefix=''
-vendorprefixexp=''
-vendorscript=''
-vendorscriptexp=''
-
-
-versiononly='undef'
-vi=''
-voidflags='15'
-xlibpth='/usr/lib/386 /lib/386'
-yacc='yacc'
-yaccflags=''
-zcat=''
-zip='zip'
-# Configure command line arguments.
-config_arg0='./Configure'
-config_args='-der -Dusethreads'
-config_argc=2
-config_arg1='-der'
-config_arg2='-Dusethreads'
-PERL_REVISION=5
-PERL_API_REVISION=5
-
-PERL_API_SUBVERSION=0
-PERL_PATCHLEVEL=
-PERL_CONFIG_SH=true
-# Fix problem with HiRes timer.
-d_nanosleep='define'
-d_clock_gettime='define'
-d_clock_getres='define'
-d_clock_nanosleep='define'
-d_clock='define'
-
-# New symbols for perl 5.20.0
-bin_ELF='define'
-charbits='8'
-charsize='1'
-d_asctime64='undef'
-d_attribute_deprecated='define'
-d_ctime64='undef'
-d_difftime64='undef'
-d_gdbm_ndbm_h_uses_prototypes='undef'
-d_gdbmndbm_h_uses_prototypes='undef'
-d_getaddrinfo='define'
-d_getnameinfo='define'
-d_gmtime64='undef'
-d_inetntop='define'
-d_inetpton='define'
-d_ip_mreq='define'
-d_ip_mreq_source='define'
-d_ipv6_mreq='%%IPV6%%'
-d_ipv6_mreq_source='undef'
-d_isblank='define'
-d_libname_unique='undef'
-d_localtime64='undef'
-d_mktime64='undef'
-d_ndbm='undef'
-d_ndbm_h_uses_prototypes='undef'
-d_prctl='define'
-d_prctl_set_name='define'
-d_sin6_scope_id='%%IPV6%%'
-d_sockaddr_in6='%%IPV6%%'
-d_sockaddr_sa_len='undef'
-d_static_inline='define'
-d_timegm='define'
-dtrace=''
-extern_C='extern'
-hostosname=''
-i_assert='define'
-i_bfd='undef'
-i_gdbm_ndbm='undef'
-i_gdbmndbm='undef'
-i_mallocmalloc='undef'
-i_stdbool='define'
-i_syspoll='define'
-#incpth='/usr/lib/gcc/i486-slackware-linux/4.8.2/include /usr/local/include /usr/lib/gcc/i486-slackware-linux/4.8.2/include-fixed /usr/include'
-ld_can_script='define'
-#libsfound=' /usr/lib/libgdbm.so /usr/lib/libdb.so /usr/lib/libdl.so /usr/lib/libm.so /usr/lib/libcrypt.so /usr/lib/libutil.so /usr/lib/libc.so'
-nv_overflows_integers_at='256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0'
-perl_static_inline='static __inline__'
-sGMTIME_max='2147483647'
-sGMTIME_min='-2147483648'
-sLOCALTIME_max='2147483647'
-sLOCALTIME_min='-2147483648'
-#sitelib_stem='/usr/local/lib/perl5/site_perl'
-st_ino_sign='1'
-st_ino_size='8'
-#strings='/usr/include/string.h'
-sysroot=''
-targetdir=''
-targetenv=''
-targethost=''
-targetmkdir=''
-targetport=''
-targetsh='/bin/sh'
-#timeincl='/usr/include/sys/time.h /usr/include/time.h '
-usedevel='undef'
-usedtrace='undef'
-usekernprocpathname='undef'
-usensgetexecutablepath='undef'
-useversionedarchname='undef'
-vaproto='define'
-libdb_needs_pthread='N'
-
-# These symbols changed from perl 5.10.0 to 5.20.0 and probably will
-# change again for new versions, so they're included here for
-# future reference
-api_version='22'
-# Always set this to the base version, not the patched one!
-api_versionstring='5.22.0'
-dynamic_ext='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/DosGlob File/Glob Filter/Util/Call GDBM_File Hash/Util Hash/Util/FieldHash I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc Opcode POSIX PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Tie/Hash/NamedCapture Time/HiRes Time/Piece Unicode/Collate XS/APItest XS/Typemap arybase attributes mro re threads threads/shared'
-installarchlib='/usr/lib/perl5/5.22'
-installprivlib='/usr/lib/perl5/5.22'
-installsitearch='/usr/lib/perl5/5.22'
-installsitelib='/usr/lib/perl5/5.22'
-nonxs_ext='Archive/Tar Attribute/Handlers AutoLoader B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Config/Perl/V Devel/SelfStubber Digest Dumpvalue Env Errno Exporter ExtUtils/CBuilder ExtUtils/Command ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS File/Fetch File/Find File/Path File/Temp FileCache Filter/Simple Getopt/Long HTTP/Tiny I18N/Collate I18N/LangTags IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP Locale/Codes Locale/Maketext Locale/Maketext/Simple Math/BigInt Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NEXT Net/Ping Params/Check Parse/CPAN/Meta Perl/OSType PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage Safe Search/Dict SelfLoader Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Memoize Tie/RefHash Time/Local XSLoader autodie autouse base bignum constant encoding/warnings experimental if lib libnet parent perlfaq podlators Unicode/Normalize version'
-privlib='/usr/lib/perl5/5.22'
-privlibexp='/usr/lib/perl5/5.22'
-archlib='/usr/lib/perl5/5.22'
-archlibexp='/usr/lib/perl5/5.22'
-version='5.22.0'
-version_patchlevel_string='version 22 subversion 0'
-PERL_VERSION=22
-PERL_API_VERSION=22
-PERL_SUBVERSION=0
-patchlevel='22'
-ccdlflags='-fPIC -Wl,-rpath,/usr/lib/perl5/5.22/CORE'
-subversion='0'
-extensions='B Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call GDBM_File Hash/Util I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex Time/HiRes Time/Piece XS/APItest XS/Typemap attrs re threads threads/shared Hash/Util/FieldHash Compress/Zlib Errno IO_Compress_Base IO_Compress_Zlib Unicode/Normalize'
-known_extensions='B Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call GDBM_File Hash/Util I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc NDBM_File ODBM_File Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex Time/HiRes Time/Piece Unicode/Normalize Win32 Win32API/File Win32CORE XS/APItest XS/Typemap attrs re threads threads/shared Hash/Util/FieldHash'
-
-# Make perl use these tools instead of the target binaries during build
-hostgenerate='%%HOSTGENERATE%%'
-hostperl='%%HOSTMINIPERL%%'
diff --git a/lang/perl/files/config.sh-avr32.in b/lang/perl/files/config.sh-avr32.in
deleted file mode 100644 (file)
index ee4e5ce..0000000
+++ /dev/null
@@ -1,1228 +0,0 @@
-#!/bin/sh
-#
-# This file was produced by running the Configure script. It holds all the
-# definitions figured out by Configure. Should you modify one of these values,
-# do not forget to propagate your changes by running "Configure -der". You may
-# instead choose to run each of the .SH files by yourself, or "Configure -S".
-#
-
-# Package name      : perl5
-# Source directory  : .
-# Configuration time: Fri Jul 20 04:39:05 MDT 2007
-# Configured by     : root
-# Target system     : linux maia 2.6.22 #1 wed jul 11 12:24:09 cest 2007 armv5teb unknown unknown gnulinux 
-
-Author=''
-Date=''
-Header=''
-Id=''
-Locker=''
-Log=''
-RCSfile=''
-Revision=''
-Source=''
-State=''
-_a='.a'
-_exe=''
-_o='.o'
-afs='false'
-afsroot='/afs'
-alignbytes='8'
-ansi2knr=''
-aphostname='/bin/hostname'
-api_revision='5'
-api_subversion='0'
-
-
-ar='ar'
-archname64=''
-archname='avr32-linux-uclibc'
-archobjs=''
-asctime_r_proto='0'
-awk='awk'
-baserev='5.0'
-bash=''
-bin='/usr/bin'
-binexp='/usr/bin'
-bison='bison'
-byacc='byacc'
-byteorder='4321'
-c=''
-castflags='0'
-cat='cat'
-cc='%%CC%%'
-cccdlflags='-fPIC'
-ccflags='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 %%CFLAGS%%'
-ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
-ccname='gcc'
-ccsymbols=''
-ccversion=''
-cf_by='root'
-cf_email='root@maia.dev.null'
-cf_time='Fri Jul 20 04:39:05 MDT 2007'
-chgrp=''
-chmod='chmod'
-chown=''
-clocktype='clock_t'
-comm='comm'
-compress=''
-contains='grep'
-cp='cp'
-cpio=''
-cpp='cpp'
-cpp_stuff='42'
-cppccsymbols=''
-cppflags='%%CFLAGS%%'
-cpplast='-'
-cppminus='-'
-cpprun='%%CPP%%'
-cppstdin='%%CPP%%'
-cppsymbols='__ELF__=1 _FILE_OFFSET_BITS=64 __GLIBC__=2 __GLIBC_MINOR__=2 __GNUC__=3 __GNUC_MINOR__=4 __GNU_LIBRARY__=6 _LARGEFILE_SOURCE=1 _POSIX_C_SOURCE=199506L _POSIX_SOURCE=1 __STDC__=1 __USE_BSD=1 __USE_FILE_OFFSET64=1 __USE_LARGEFILE=1 __USE_MISC=1 __USE_POSIX=1 __USE_POSIX199309=1 __USE_POSIX199506=1 __USE_POSIX2=1 __USE_SVID=1 linux=1 __linux=1 __linux__=1 unix=1 __unix=1 __unix__=1'
-crypt_r_proto='0'
-cryptlib=''
-csh='csh'
-ctermid_r_proto='0'
-ctime_r_proto='0'
-# Matteo Croce, Mon, 21 Apr 2008 03:19:30 +0200
-# Fixes perl: can't resolve symbol 'gcvt'
-d_Gconvert='sprintf((b),"%.*g",(n),(x))'
-d_PRIEUldbl='define'
-d_PRIFUldbl='define'
-d_PRIGUldbl='define'
-d_PRIXU64='define'
-d_PRId64='define'
-d_PRIeldbl='define'
-d_PRIfldbl='define'
-d_PRIgldbl='define'
-d_PRIi64='define'
-d_PRIo64='define'
-d_PRIu64='define'
-d_PRIx64='define'
-d_SCNfldbl='define'
-d__fwalk='undef'
-d_access='define'
-d_accessx='undef'
-d_acosh='define'
-d_aintl='undef'
-d_alarm='define'
-d_archlib='undef'
-d_asctime_r='undef'
-d_asinh='define'
-d_atanh='define'
-d_atolf='undef'
-d_atoll='define'
-d_attribute_format='define'
-d_attribute_malloc='define'
-d_attribute_nonnull='define'
-d_attribute_noreturn='define'
-d_attribute_pure='define'
-d_attribute_unused='define'
-d_attribute_warn_unused_result='define'
-d_backtrace='define'
-d_bcmp='define'
-d_bcopy='define'
-d_bsd='undef'
-d_bsdgetpgrp='undef'
-d_bsdsetpgrp='undef'
-d_builtin_choose_expr='define'
-d_builtin_expect='undef'
-d_bzero='define'
-d_c99_variadic_macros='define'
-d_casti32='define'
-d_castneg='define'
-d_cbrt='define'
-d_charvspr='undef'
-d_chown='define'
-d_chroot='define'
-d_chsize='undef'
-d_class='undef'
-d_clearenv='define'
-d_closedir='define'
-d_cmsghdr_s='define'
-d_const='define'
-d_copysign='define'
-d_copysignl='undef'
-d_cplusplus='undef'
-d_crypt='define'
-d_crypt_r='undef'
-d_csh='undef'
-d_ctermid='define'
-d_ctermid_r='undef'
-d_ctime_r='undef'
-d_cuserid='define'
-d_dbl_dig='define'
-d_dbminitproto='undef'
-d_difftime='define'
-d_dir_dd_fd='undef'
-d_dirfd='define'
-d_dirnamlen='undef'
-d_dladdr='define'
-d_dlerror='define'
-d_dlopen='define'
-d_dlsymun='undef'
-d_dosuid='undef'
-d_drand48_r='undef'
-d_drand48proto='define'
-d_dup2='define'
-d_eaccess='undef'
-d_endgrent='define'
-d_endgrent_r='undef'
-d_endhent='define'
-d_endhostent_r='undef'
-d_endnent='define'
-d_endnetent_r='undef'
-d_endpent='define'
-d_endprotoent_r='undef'
-d_endpwent='define'
-d_endpwent_r='undef'
-d_endsent='define'
-d_endservent_r='undef'
-d_eofnblk='define'
-d_erf='define'
-d_erfc='define'
-d_eunice='undef'
-d_exp2='define'
-d_expm1='define'
-d_faststdio='undef'
-d_fchdir='define'
-d_fchmod='define'
-d_fchown='define'
-d_fcntl='define'
-d_fcntl_can_lock='define'
-d_fd_macros='define'
-d_fd_set='define'
-d_fdim='define'
-d_fds_bits='undef'
-d_fegetround='undef'
-d_fgetpos='define'
-d_finite='define'
-d_finitel='undef'
-d_flexfnam='define'
-d_flock='define'
-d_flockproto='define'
-d_fma='define'
-d_fmax='define'
-d_fmin='define'
-d_fork='define'
-d_fp_class='undef'
-d_fp_classify='undef'
-d_fp_classl='undef'
-d_fpathconf='define'
-d_fpclass='undef'
-d_fpclassify='define'
-d_fpclassl='undef'
-d_fpgetround='undef'
-d_fpos64_t='undef'
-d_frexpl='undef'
-d_fs_data_s='undef'
-d_fseeko='define'
-d_fsetpos='define'
-d_fstatfs='define'
-d_fstatvfs='define'
-d_fsync='define'
-d_ftello='define'
-d_ftime='undef'
-d_futimes='undef'
-d_getcwd='define'
-d_getespwnam='undef'
-d_getfsstat='undef'
-d_getgrent='define'
-d_getgrent_r='undef'
-d_getgrgid_r='undef'
-d_getgrnam_r='undef'
-d_getgrps='define'
-d_gethbyaddr='define'
-d_gethbyname='define'
-d_gethent='define'
-d_gethname='define'
-d_gethostbyaddr_r='undef'
-d_gethostbyname_r='undef'
-d_gethostent_r='undef'
-d_gethostprotos='define'
-d_getitimer='define'
-d_getlogin='define'
-d_getlogin_r='undef'
-d_getmnt='undef'
-d_getmntent='define'
-d_getnbyaddr='define'
-d_getnbyname='define'
-d_getnent='define'
-d_getnetbyaddr_r='undef'
-d_getnetbyname_r='undef'
-d_getnetent_r='undef'
-d_getnetprotos='define'
-d_getpagsz='define'
-d_getpbyname='define'
-d_getpbynumber='define'
-d_getpent='define'
-d_getpgid='define'
-d_getpgrp2='undef'
-d_getpgrp='define'
-d_getppid='define'
-d_getprior='define'
-d_getprotobyname_r='undef'
-d_getprotobynumber_r='undef'
-d_getprotoent_r='undef'
-d_getprotoprotos='define'
-d_getprpwnam='undef'
-d_getpwent='define'
-d_getpwent_r='undef'
-d_getpwnam_r='undef'
-d_getpwuid_r='undef'
-d_getsbyname='define'
-d_getsbyport='define'
-d_getsent='define'
-d_getservbyname_r='undef'
-d_getservbyport_r='undef'
-d_getservent_r='undef'
-d_getservprotos='define'
-d_getspnam='define'
-d_getspnam_r='undef'
-d_gettimeod='define'
-d_gmtime_r='undef'
-d_gnulibc='undef'
-d_grpasswd='define'
-d_hasmntopt='define'
-d_htonl='define'
-d_hypot='define'
-d_ilogb='define'
-d_ilogbl='undef'
-d_inc_version_list='undef'
-d_index='undef'
-d_inetaton='define'
-d_int64_t='define'
-d_isascii='define'
-d_isfinite='define'
-d_isfinitel='undef'
-d_isinf='define'
-d_isinfl='define'
-d_isless='undef'
-d_isnan='define'
-d_isnanl='undef'
-d_isnormal='define'
-d_j0='undef'
-d_j0l='undef'
-d_killpg='define'
-d_lc_monetary_2008='define'
-d_lchown='define'
-d_ldbl_dig='define'
-d_ldexpl='define'
-d_lgamma='define'
-d_lgamma_r='define'
-d_libm_lib_version='define'
-d_link='define'
-d_llrint='define'
-d_llrintl='define'
-d_llround='define'
-d_llroundl='define'
-d_localtime_r='undef'
-d_localtime_r_needs_tzset='undef'
-d_locconv='define'
-d_lockf='define'
-d_log1p='define'
-d_log2='define'
-d_logb='define'
-d_longdbl='define'
-d_longlong='define'
-d_lrint='define'
-d_lrintl='define'
-d_lround='define'
-d_lroundl='define'
-d_lseekproto='define'
-d_lstat='define'
-d_madvise='define'
-d_malloc_good_size='undef'
-d_malloc_size='undef'
-d_mblen='define'
-d_mbstowcs='define'
-d_mbtowc='define'
-d_memchr='define'
-d_memcmp='define'
-d_memcpy='define'
-d_memmove='define'
-d_memset='define'
-d_mkdir='define'
-d_mkdtemp='define'
-d_mkfifo='define'
-d_mkstemp='define'
-d_mkstemps='undef'
-d_mktime='define'
-d_mmap='define'
-d_modfl='undef'
-d_modfl_pow32_bug='undef'
-d_modflproto='undef'
-d_mprotect='define'
-d_msg='define'
-d_msg_ctrunc='define'
-d_msg_dontroute='define'
-d_msg_oob='define'
-d_msg_peek='define'
-d_msg_proxy='define'
-d_msgctl='define'
-d_msgget='define'
-d_msghdr_s='define'
-d_msgrcv='define'
-d_msgsnd='define'
-d_msync='define'
-d_munmap='define'
-d_mymalloc='undef'
-d_nan='define'
-d_nearbyint='define'
-d_nextafter='define'
-d_nexttoward='undef'
-d_nice='define'
-d_nl_langinfo='define'
-d_nv_preserves_uv='define'
-d_nv_zero_is_allbits_zero='define'
-d_off64_t='undef'
-d_old_pthread_create_joinable='undef'
-d_oldpthreads='undef'
-d_oldsock='undef'
-d_open3='define'
-d_pathconf='define'
-d_pause='define'
-d_perl_otherlibdirs='undef'
-d_phostname='undef'
-d_pipe='define'
-d_poll='define'
-d_portable='define'
-d_printf_format_null='define'
-d_procselfexe='define'
-d_pseudofork='undef'
-d_pthread_atfork='undef'
-d_pthread_attr_setscope='define'
-d_pthread_yield='undef'
-d_ptrdiff_t='define'
-d_pwage='undef'
-d_pwchange='undef'
-d_pwclass='undef'
-d_pwcomment='undef'
-d_pwexpire='undef'
-d_pwgecos='define'
-d_pwpasswd='define'
-d_pwquota='undef'
-d_qgcvt='undef'
-d_quad='define'
-d_random_r='undef'
-d_re_comp='undef'
-d_readdir64_r='undef'
-d_readdir='define'
-d_readdir_r='undef'
-d_readlink='define'
-d_readv='define'
-d_recvmsg='define'
-d_regcmp='undef'
-d_regcomp='define'
-d_remainder='define'
-d_remquo='define'
-d_rename='define'
-d_rewinddir='define'
-d_rint='define'
-d_rmdir='define'
-d_round='define'
-d_safebcpy='undef'
-d_safemcpy='undef'
-d_sanemcmp='define'
-d_sbrkproto='define'
-d_scalbn='define'
-d_scalbnl='undef'
-d_sched_yield='define'
-d_scm_rights='define'
-d_seekdir='define'
-d_select='define'
-d_sem='define'
-d_semctl='define'
-d_semctl_semid_ds='define'
-d_semctl_semun='define'
-d_semget='define'
-d_semop='define'
-d_sendmsg='define'
-d_setegid='define'
-d_seteuid='define'
-d_setgrent='define'
-d_setgrent_r='undef'
-d_setgrps='define'
-d_sethent='define'
-d_sethostent_r='undef'
-d_setitimer='define'
-d_setlinebuf='define'
-d_setlocale='define'
-d_setlocale_r='undef'
-d_setnent='define'
-d_setnetent_r='undef'
-d_setpent='define'
-d_setpgid='define'
-d_setpgrp2='undef'
-d_setpgrp='define'
-d_setprior='define'
-d_setproctitle='undef'
-d_setprotoent_r='undef'
-d_setpwent='define'
-d_setpwent_r='undef'
-d_setregid='define'
-d_setresgid='define'
-d_setresuid='define'
-d_setreuid='define'
-d_setrgid='undef'
-d_setruid='undef'
-d_setsent='define'
-d_setservent_r='undef'
-d_setsid='define'
-d_setvbuf='define'
-d_sfio='undef'
-d_shm='define'
-d_shmat='define'
-d_shmatprototype='define'
-d_shmctl='define'
-d_shmdt='define'
-d_shmget='define'
-d_sigaction='define'
-d_signbit='undef'
-d_sigprocmask='define'
-d_sigsetjmp='define'
-d_sitearch='define'
-d_snprintf='define'
-d_sockatmark='undef'
-d_sockatmarkproto='undef'
-d_socket='define'
-d_socklen_t='define'
-d_sockpair='define'
-d_socks5_init='undef'
-d_sprintf_returns_strlen='define'
-d_sqrtl='undef'
-d_srand48_r='undef'
-d_srandom_r='undef'
-d_sresgproto='undef'
-d_sresuproto='undef'
-d_stat='define'
-d_statblks='define'
-d_statfs_f_flags='undef'
-d_statfs_s='define'
-d_statvfs='define'
-d_stdio_cnt_lval='undef'
-d_stdio_ptr_lval='undef'
-d_stdio_ptr_lval_nochange_cnt='undef'
-d_stdio_ptr_lval_sets_cnt='undef'
-d_stdio_stream_array='undef'
-d_stdiobase='undef'
-d_stdstdio='undef'
-d_strchr='define'
-d_strcoll='define'
-d_strctcpy='define'
-d_strerrm='strerror(e)'
-d_strerror='define'
-d_strerror_r='undef'
-d_strftime='define'
-d_strlcat='define'
-d_strlcpy='define'
-d_strtod='define'
-d_strtol='define'
-d_strtold='define'
-d_strtoll='define'
-d_strtoq='define'
-d_strtoul='define'
-d_strtoull='define'
-d_strtouq='define'
-d_strxfrm='define'
-d_suidsafe='undef'
-d_symlink='define'
-d_syscall='define'
-d_syscallproto='define'
-d_sysconf='define'
-d_sysernlst=''
-d_syserrlst='undef'
-d_system='define'
-d_tcgetpgrp='define'
-d_tcsetpgrp='define'
-d_telldir='define'
-d_telldirproto='define'
-d_tgamma='define'
-d_time='define'
-d_times='define'
-d_tm_tm_gmtoff='define'
-d_tm_tm_zone='define'
-d_tmpnam_r='undef'
-d_trunc='define'
-d_truncate='define'
-d_truncl='define'
-d_ttyname_r='undef'
-d_tzname='define'
-d_u32align='undef'
-d_ualarm='define'
-d_umask='define'
-d_uname='define'
-d_union_semun='undef'
-d_unordered='undef'
-d_unsetenv='define'
-d_usleep='define'
-d_usleepproto='define'
-d_ustat='define'
-d_vendorarch='undef'
-d_vendorbin='undef'
-d_vendorlib='undef'
-d_vendorscript='undef'
-d_vfork='undef'
-d_void_closedir='undef'
-d_voidsig='define'
-d_voidtty=''
-d_volatile='define'
-d_vprintf='define'
-d_vsnprintf='define'
-d_wait4='define'
-d_waitpid='define'
-d_wcscmp='define'
-d_wcstombs='define'
-d_wcsxfrm='define'
-d_wctomb='define'
-d_writev='define'
-d_xenix='undef'
-date='date'
-db_hashtype='u_int32_t'
-db_prefixtype='size_t'
-db_version_major=''
-db_version_minor=''
-db_version_patch=''
-defvoidused='15'
-direntrytype='struct dirent'
-dlext='so'
-dlsrc='dl_dlopen.xs'
-doublekind='4'
-doublesize='8'
-drand01='drand48()'
-drand48_r_proto='0'
-
-eagain='EAGAIN'
-ebcdic='undef'
-echo='echo'
-egrep='egrep'
-emacs=''
-endgrent_r_proto='0'
-endhostent_r_proto='0'
-endnetent_r_proto='0'
-endprotoent_r_proto='0'
-endpwent_r_proto='0'
-endservent_r_proto='0'
-eunicefix=':'
-exe_ext=''
-expr='expr'
-extras=''
-fflushNULL='define'
-fflushall='undef'
-find=''
-firstmakefile='makefile'
-flex=''
-fpossize='20'
-fpostype='fpos_t'
-freetype='void'
-from=':'
-full_ar='%%AR%%'
-full_csh='csh'
-full_sed='sed'
-gccansipedantic=''
-gccosandvers=''
-gccversion='3.4.3'
-getgrent_r_proto='0'
-getgrgid_r_proto='0'
-getgrnam_r_proto='0'
-gethostbyaddr_r_proto='0'
-gethostbyname_r_proto='0'
-gethostent_r_proto='0'
-getlogin_r_proto='0'
-getnetbyaddr_r_proto='0'
-getnetbyname_r_proto='0'
-getnetent_r_proto='0'
-getprotobyname_r_proto='0'
-getprotobynumber_r_proto='0'
-getprotoent_r_proto='0'
-getpwent_r_proto='0'
-getpwnam_r_proto='0'
-getpwuid_r_proto='0'
-getservbyname_r_proto='0'
-getservbyport_r_proto='0'
-getservent_r_proto='0'
-getspnam_r_proto='0'
-gidformat='"lu"'
-gidsign='1'
-gidsize='4'
-gidtype='gid_t'
-glibpth='/usr/shlib  /lib /usr/lib /usr/lib/386 /lib/386 /usr/ccs/lib /usr/ucblib /usr/local/lib '
-gmake='gmake'
-gmtime_r_proto='0'
-gnulibc_version=''
-grep='grep'
-groupcat='cat /etc/group'
-groupstype='gid_t'
-gzip='gzip'
-h_fcntl='false'
-h_sysfile='true'
-hint='recommended'
-hostcat='cat /etc/hosts'
-html1dir=' '
-html1direxp=''
-html3dir=' '
-html3direxp=''
-i16size='2'
-i16type='short'
-i32size='4'
-i32type='long'
-i64size='8'
-i64type='long long'
-i8size='1'
-i8type='char'
-i_arpainet='define'
-i_bsdioctl=''
-i_crypt='define'
-i_db='define'
-i_dbm='undef'
-i_dirent='define'
-i_dld='undef'
-i_dlfcn='define'
-i_execinfo='define'
-i_fcntl='undef'
-i_fenv='undef'
-i_float='define'
-i_fp='undef'
-i_fp_class='undef'
-i_gdbm='define'
-i_grp='define'
-i_ieeefp='undef'
-i_inttypes='define'
-i_langinfo='define'
-i_libutil='undef'
-i_limits='define'
-i_locale='define'
-i_machcthr='undef'
-i_malloc='define'
-i_math='define'
-i_memory='undef'
-i_mntent='define'
-i_ndbm='undef'
-i_netdb='define'
-i_neterrno='undef'
-i_netinettcp='define'
-i_niin='define'
-i_poll='define'
-i_prot='undef'
-i_pthread='define'
-i_pwd='define'
-i_quadmath='define'
-i_rpcsvcdbm='undef'
-i_sfio='undef'
-i_sgtty='undef'
-i_shadow='define'
-i_socks='undef'
-i_stdarg='define'
-i_stddef='define'
-i_stdint='define'
-i_stdlib='define'
-i_string='define'
-i_sunmath='undef'
-i_sysaccess='undef'
-i_sysdir='define'
-i_sysfile='define'
-i_sysfilio='undef'
-i_sysin='undef'
-i_sysioctl='define'
-i_syslog='define'
-i_sysmman='define'
-i_sysmode='undef'
-i_sysmount='define'
-i_sysndir='undef'
-i_sysparam='define'
-i_sysresrc='define'
-i_syssecrt='undef'
-i_sysselct='define'
-i_syssockio='undef'
-i_sysstat='define'
-i_sysstatfs='define'
-i_sysstatvfs='define'
-i_systime='define'
-i_systimek='undef'
-i_systimes='define'
-i_systypes='define'
-i_sysuio='define'
-i_sysun='define'
-i_sysutsname='define'
-i_sysvfs='define'
-i_syswait='define'
-i_termio='undef'
-i_termios='define'
-i_time='define'
-i_unistd='define'
-i_ustat='define'
-i_utime='define'
-i_values='define'
-i_varargs='undef'
-i_varhdr='stdarg.h'
-i_vfork='undef'
-ignore_versioned_solibs='y'
-inc_version_list=' '
-inc_version_list_init='0'
-incpath=''
-inews=''
-
-installbin='/usr/bin'
-initialinstalllocation='/usr/bin'
-installhtml1dir=''
-installhtml3dir=''
-installman1dir=''
-installman3dir=''
-installprefix='/usr'
-installprefixexp='/usr'
-
-installscript='/usr/bin'
-
-installsitebin='/usr/bin'
-installsitehtml1dir=''
-installsitehtml3dir=''
-
-installsiteman1dir=''
-installsiteman3dir=''
-installsitescript='/usr/bin'
-installstyle='lib/perl5'
-installusrbinperl='define'
-installvendorarch=''
-installvendorbin=''
-installvendorhtml1dir=''
-installvendorhtml3dir=''
-installvendorlib=''
-installvendorman1dir=''
-installvendorman3dir=''
-installvendorscript=''
-intsize='4'
-issymlink='test -h'
-ivdformat='"ld"'
-ivsize='4'
-ivtype='long'
-ksh=''
-ld='%%LD%%'
-lddlflags='-shared %%LDFLAGS%%'
-ldflags='%%EXTRA_PERLLIBDIRS%%'
-ldflags_uselargefiles=''
-ldlibpthname='LD_LIBRARY_PATH'
-less='less'
-lib_ext='.a'
-libc=''
-libperl='libperl.so'
-libpth='%%LIBDIRS%%'
-libs='-lgdbm -ldb -ldl -lm -lcrypt -lutil -lc'
-libsdirs='%%LIBDIRS%%'
-libsfiles=' libdl.so libm.so libcrypt.so libutil.so libc.so'
-#libsfound=' /usr/lib/libdl.so /usr/lib/libm.so /usr/lib/libcrypt.so /usr/lib/libutil.so /usr/lib/libc.so'
-libspath='%%LIBDIRS%%'
-libswanted='sfio socket inet nm ndbm gdbm dbm db malloc dl dld ld sun m crypt sec util c cposix posix ucb BSD'
-libswanted_uselargefiles=''
-line=''
-lint=''
-lkflags=''
-ln='ln'
-lns='/bin/ln -s'
-localtime_r_proto='0'
-locincpth=' '
-loclibpth=' '
-longdblkind='0'
-longdblsize='8'
-longlongsize='8'
-longsize='4'
-lp=''
-lpr=''
-ls='ls'
-lseeksize='8'
-lseektype='off_t'
-mail=''
-mailx=''
-make='make'
-make_set_make='#'
-mallocobj=''
-mallocsrc=''
-malloctype='void *'
-man1dir=' '
-man1direxp=''
-man1ext='0'
-man3dir=' '
-man3direxp=''
-man3ext='0'
-mips_type=''
-mistrustnm=''
-mkdir='mkdir'
-mmaptype='void *'
-modetype='mode_t'
-more='more'
-multiarch='undef'
-mv=''
-myarchname='avr32-linux-uclibc'
-mydomain='.dev.null'
-myhostname='maia'
-myuname='linux maia 2.6.22 #1 wed jul 11 12:24:09 cest 2007 armv5teb unknown unknown gnulinux '
-n='-n'
-need_va_copy='undef'
-netdb_hlen_type='size_t'
-netdb_host_type='const void *'
-netdb_name_type='const char *'
-netdb_net_type='in_addr_t'
-nm='nm'
-nm_opt=''
-nm_so_opt='--dynamic'
-
-nroff='nroff'
-nvEUformat='"E"'
-nvFUformat='"F"'
-nvGUformat='"G"'
-nv_preserves_uv_bits='32'
-nveformat='"e"'
-nvfformat='"f"'
-nvgformat='"g"'
-nvsize='8'
-nvtype='double'
-o_nonblock='O_NONBLOCK'
-obj_ext='.o'
-old_pthread_create_joinable=''
-optimize='-O2'
-orderlib='false'
-osname='linux'
-osvers='2.6.22'
-otherlibdirs=' '
-package='perl5'
-pager='/usr/bin/less'
-passcat='cat /etc/passwd'
-
-path_sep=':'
-perl5=''
-perl=''
-perl_patchlevel=''
-perladmin='root@maia.dev.null'
-perllibs='-ldl -lm -lcrypt -lutil -lc %%EXTRA_PERLLIBS%%'
-perlpath='/usr/bin/perl'
-pg='pg'
-phostname='hostname'
-pidtype='pid_t'
-plibpth=''
-pmake=''
-pr=''
-prefix='/usr'
-prefixexp='/usr'
-
-
-procselfexe='"/proc/self/exe"'
-prototype='define'
-ptrsize='4'
-quadkind='3'
-quadtype='long long'
-randbits='48'
-randfunc='drand48'
-random_r_proto='0'
-randseedtype='long'
-ranlib=':'
-rd_nodata='-1'
-readdir64_r_proto='0'
-readdir_r_proto='0'
-revision='5'
-rm='rm'
-rm_try='/bin/rm -f try try a.out .out try.[cho] try..o core core.try* try.core*'
-rmail=''
-run=''
-runnm='false'
-sPRIEUldbl='"E"'
-sPRIFUldbl='"F"'
-sPRIGUldbl='"G"'
-sPRIXU64='"LX"'
-sPRId64='"Ld"'
-sPRIeldbl='"e"'
-sPRIfldbl='"f"'
-sPRIgldbl='"g"'
-sPRIi64='"Li"'
-sPRIo64='"Lo"'
-sPRIu64='"Lu"'
-sPRIx64='"Lx"'
-sSCNfldbl='"f"'
-sched_yield='sched_yield()'
-scriptdir='/usr/bin'
-scriptdirexp='/usr/bin'
-sed='sed'
-seedfunc='srand48'
-selectminbits='32'
-selecttype='fd_set *'
-sendmail=''
-setgrent_r_proto='0'
-sethostent_r_proto='0'
-setlocale_r_proto='0'
-setnetent_r_proto='0'
-setprotoent_r_proto='0'
-setpwent_r_proto='0'
-setservent_r_proto='0'
-sh='/bin/sh'
-shar=''
-sharpbang='#!'
-shmattype='void *'
-shortsize='2'
-shrpenv=''
-shsharp='true'
-sig_count='64'
-sig_name='ZERO HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS RTMIN NUM33 NUM34 NUM35 NUM36 NUM37 NUM38 NUM39 NUM40 NUM41 NUM42 NUM43 NUM44 NUM45 NUM46 NUM47 NUM48 NUM49 NUM50 NUM51 NUM52 NUM53 NUM54 NUM55 NUM56 NUM57 NUM58 NUM59 NUM60 NUM61 NUM62 RTMAX IOT CLD POLL UNUSED '
-sig_name_init='"ZERO", "HUP", "INT", "QUIT", "ILL", "TRAP", "ABRT", "BUS", "FPE", "KILL", "USR1", "SEGV", "USR2", "PIPE", "ALRM", "TERM", "STKFLT", "CHLD", "CONT", "STOP", "TSTP", "TTIN", "TTOU", "URG", "XCPU", "XFSZ", "VTALRM", "PROF", "WINCH", "IO", "PWR", "SYS", "RTMIN", "NUM33", "NUM34", "NUM35", "NUM36", "NUM37", "NUM38", "NUM39", "NUM40", "NUM41", "NUM42", "NUM43", "NUM44", "NUM45", "NUM46", "NUM47", "NUM48", "NUM49", "NUM50", "NUM51", "NUM52", "NUM53", "NUM54", "NUM55", "NUM56", "NUM57", "NUM58", "NUM59", "NUM60", "NUM61", "NUM62", "RTMAX", "IOT", "CLD", "POLL", "UNUSED", 0'
-sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 6 17 29 31 '
-sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 6, 17, 29, 31, 0'
-sig_size='68'
-signal_t='void'
-sitearch=''
-sitearchexp=''
-sitebin='/usr/bin'
-sitebinexp='/usr/bin'
-sitehtml1dir=''
-sitehtml1direxp=''
-sitehtml3dir=''
-sitehtml3direxp=''
-sitelib=''
-#sitelib_stem='/usr/lib/perl5/site_perl'
-sitelibexp=''
-siteman1dir=''
-siteman1direxp=''
-siteman3dir=''
-siteman3direxp=''
-siteprefix='/usr'
-siteprefixexp='/usr'
-sitescript='/usr/bin'
-sitescriptexp='/usr/bin'
-sizesize='4'
-sizetype='size_t'
-sleep=''
-smail=''
-so='so'
-sockethdr=''
-socketlib=''
-socksizetype='socklen_t'
-sort='sort'
-spackage='Perl5'
-spitshell='cat'
-srand48_r_proto='0'
-srandom_r_proto='0'
-src='.'
-ssizetype='ssize_t'
-startperl='#!/usr/bin/perl'
-startsh='#!/bin/sh'
-static_ext=' '
-stdchar='char'
-stdio_base='((fp)->_base)'
-stdio_bufsiz='((fp)->_cnt + (fp)->_ptr - (fp)->_base)'
-stdio_cnt='((fp)->_cnt)'
-stdio_filbuf=''
-stdio_ptr='((fp)->_ptr)'
-stdio_stream_array=''
-strerror_r_proto='0'
-#strings='/usr/include/string.h'
-submit=''
-sysman='/usr/share/man/man1'
-tail=''
-tar=''
-targetarch='avr32-linux-uclibc'
-tbl=''
-tee=''
-test='test'
-#timeincl='/usr/include/sys/time.h /usr/include/time.h '
-timetype='time_t'
-tmpnam_r_proto='0'
-to=':'
-touch='touch'
-tr='tr'
-trnl='\n'
-troff=''
-ttyname_r_proto='0'
-u16size='2'
-u16type='unsigned short'
-u32size='4'
-u32type='unsigned long'
-u64size='8'
-u64type='unsigned long long'
-u8size='1'
-u8type='unsigned char'
-uidformat='"lu"'
-uidsign='1'
-uidsize='4'
-uidtype='uid_t'
-uname='uname'
-uniq='uniq'
-uquadtype='unsigned long long'
-use5005threads='undef'
-use64bitall='undef'
-use64bitint='undef'
-usecbacktrace='undef'
-usecrosscompile='undef'
-usedl='define'
-usefaststdio='undef'
-useithreads='undef'
-uselargefiles='define'
-uselongdouble='undef'
-usemallocwrap='define'
-usemorebits='undef'
-usemultiplicity='undef'
-usemymalloc='n'
-usenm='true'
-useopcode='true'
-useperlio='define'
-useposix='true'
-usequadmath='undef'
-usereentrant='undef'
-userelocatableinc='undef'
-usesfio='false'
-useshrplib='true'
-usesitecustomize='undef'
-usesocks='undef'
-usethreads='undef'
-usevendorprefix='undef'
-usevfork='false'
-usrinc='%%INCDIRS%%'
-uuname=''
-uvXUformat='"lX"'
-uvoformat='"lo"'
-uvsize='4'
-uvtype='unsigned long'
-uvuformat='"lu"'
-uvxformat='"lx"'
-vendorarch=''
-vendorarchexp=''
-vendorbin=''
-vendorbinexp=''
-vendorhtml1dir=' '
-vendorhtml1direxp=''
-vendorhtml3dir=' '
-vendorhtml3direxp=''
-vendorlib=''
-vendorlib_stem=''
-vendorlibexp=''
-vendorman1dir=' '
-vendorman1direxp=''
-vendorman3dir=' '
-vendorman3direxp=''
-vendorprefix=''
-vendorprefixexp=''
-vendorscript=''
-vendorscriptexp=''
-
-
-versiononly='undef'
-vi=''
-voidflags='15'
-xlibpth='/usr/lib/386 /lib/386'
-yacc='yacc'
-yaccflags=''
-zcat=''
-zip='zip'
-# Configure command line arguments.
-config_arg0='./Configure'
-config_args='-der'
-config_argc=1
-config_arg1='-der'
-PERL_REVISION=5
-PERL_API_REVISION=5
-
-PERL_API_SUBVERSION=0
-PERL_PATCHLEVEL=
-PERL_CONFIG_SH=true
-# Fix problem with HiRes timer.
-d_nanosleep='define'
-d_clock_gettime='define'
-d_clock_getres='define'
-d_clock_nanosleep='define'
-d_clock='define'
-
-# New symbols for perl 5.20.0
-bin_ELF='define'
-charbits='8'
-charsize='1'
-d_asctime64='undef'
-d_attribute_deprecated='define'
-d_ctime64='undef'
-d_difftime64='undef'
-d_gdbm_ndbm_h_uses_prototypes='undef'
-d_gdbmndbm_h_uses_prototypes='undef'
-d_getaddrinfo='define'
-d_getnameinfo='define'
-d_gmtime64='undef'
-d_inetntop='define'
-d_inetpton='define'
-d_ip_mreq='define'
-d_ip_mreq_source='define'
-d_ipv6_mreq='%%IPV6%%'
-d_ipv6_mreq_source='undef'
-d_isblank='define'
-d_libname_unique='undef'
-d_localtime64='undef'
-d_mktime64='undef'
-d_ndbm='undef'
-d_ndbm_h_uses_prototypes='undef'
-d_prctl='define'
-d_prctl_set_name='define'
-d_sin6_scope_id='%%IPV6%%'
-d_sockaddr_in6='%%IPV6%%'
-d_sockaddr_sa_len='undef'
-d_static_inline='define'
-d_timegm='define'
-dtrace=''
-extern_C='extern'
-hostosname=''
-i_assert='define'
-i_bfd='undef'
-i_gdbm_ndbm='undef'
-i_gdbmndbm='undef'
-i_mallocmalloc='undef'
-i_stdbool='define'
-i_syspoll='define'
-#incpth='/usr/lib/gcc/i486-slackware-linux/4.8.2/include /usr/local/include /usr/lib/gcc/i486-slackware-linux/4.8.2/include-fixed /usr/include'
-ld_can_script='define'
-#libsfound=' /usr/lib/libgdbm.so /usr/lib/libdb.so /usr/lib/libdl.so /usr/lib/libm.so /usr/lib/libcrypt.so /usr/lib/libutil.so /usr/lib/libc.so'
-nv_overflows_integers_at='256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0'
-perl_static_inline='static __inline__'
-sGMTIME_max='2147483647'
-sGMTIME_min='-2147483648'
-sLOCALTIME_max='2147483647'
-sLOCALTIME_min='-2147483648'
-#sitelib_stem='/usr/local/lib/perl5/site_perl'
-st_ino_sign='1'
-st_ino_size='8'
-#strings='/usr/include/string.h'
-sysroot=''
-targetdir=''
-targetenv=''
-targethost=''
-targetmkdir=''
-targetport=''
-targetsh='/bin/sh'
-#timeincl='/usr/include/sys/time.h /usr/include/time.h '
-usedevel='undef'
-usedtrace='undef'
-usekernprocpathname='undef'
-usensgetexecutablepath='undef'
-useversionedarchname='undef'
-vaproto='define'
-libdb_needs_pthread='N'
-
-# These symbols changed from perl 5.10.0 to 5.20.0 and probably will
-# change again for new versions, so they're included here for
-# future reference
-api_version='22'
-# Always set this to the base version, not the patched one!
-api_versionstring='5.22.0'
-dynamic_ext='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/DosGlob File/Glob Filter/Util/Call GDBM_File Hash/Util Hash/Util/FieldHash I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc Opcode POSIX PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Tie/Hash/NamedCapture Time/HiRes Time/Piece Unicode/Collate XS/APItest XS/Typemap arybase attributes mro re threads threads/shared'
-installarchlib='/usr/lib/perl5/5.22'
-installprivlib='/usr/lib/perl5/5.22'
-installsitearch='/usr/lib/perl5/5.22'
-installsitelib='/usr/lib/perl5/5.22'
-nonxs_ext='Archive/Tar Attribute/Handlers AutoLoader B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Config/Perl/V Devel/SelfStubber Digest Dumpvalue Env Errno Exporter ExtUtils/CBuilder ExtUtils/Command ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS File/Fetch File/Find File/Path File/Temp FileCache Filter/Simple Getopt/Long HTTP/Tiny I18N/Collate I18N/LangTags IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP Locale/Codes Locale/Maketext Locale/Maketext/Simple Math/BigInt Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NEXT Net/Ping Params/Check Parse/CPAN/Meta Perl/OSType PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage Safe Search/Dict SelfLoader Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Memoize Tie/RefHash Time/Local XSLoader autodie autouse base bignum constant encoding/warnings experimental if lib libnet parent perlfaq podlators Unicode/Normalize version'
-privlib='/usr/lib/perl5/5.22'
-privlibexp='/usr/lib/perl5/5.22'
-archlib='/usr/lib/perl5/5.22'
-archlibexp='/usr/lib/perl5/5.22'
-version='5.22.0'
-version_patchlevel_string='version 22 subversion 0'
-PERL_VERSION=22
-PERL_API_VERSION=22
-PERL_SUBVERSION=0
-patchlevel='22'
-ccdlflags='-fPIC -Wl,-rpath,/usr/lib/perl5/5.22/CORE'
-subversion='0'
-extensions='B Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call GDBM_File Hash/Util I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex Time/HiRes Time/Piece XS/APItest XS/Typemap attrs re threads threads/shared Hash/Util/FieldHash Compress/Zlib Errno IO_Compress_Base IO_Compress_Zlib Unicode/Normalize'
-known_extensions='B Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call GDBM_File Hash/Util I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc NDBM_File ODBM_File Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex Time/HiRes Time/Piece Unicode/Normalize Win32 Win32API/File Win32CORE XS/APItest XS/Typemap attrs re threads threads/shared Hash/Util/FieldHash'
-
-# Make perl use these tools instead of the target binaries during build
-hostgenerate='%%HOSTGENERATE%%'
-hostperl='%%HOSTMINIPERL%%'
diff --git a/lang/perl/files/config.sh-i486-mt.in b/lang/perl/files/config.sh-i486-mt.in
deleted file mode 100644 (file)
index 06c8c5e..0000000
+++ /dev/null
@@ -1,1213 +0,0 @@
-#!/bin/sh
-#
-# This file was produced by running the Configure script. It holds all the
-# definitions figured out by Configure. Should you modify one of these values,
-# do not forget to propagate your changes by running "Configure -der". You may
-# instead choose to run each of the .SH files by yourself, or "Configure -S".
-#
-
-# Package name      : perl5
-# Source directory  : .
-# Configuration time: Sat Apr 19 15:51:11 MDT 2008
-# Configured by     : root
-# Target system     : linux maia 2.6.25 #2 sat apr 19 09:46:49 cest 2008 i686 unknown unknown gnulinux 
-
-Author=''
-Date=''
-Header=''
-Id=''
-Locker=''
-Log=''
-RCSfile=''
-Revision=''
-Source=''
-State=''
-_a='.a'
-_exe=''
-_o='.o'
-afs='false'
-afsroot='/afs'
-alignbytes='4'
-ansi2knr=''
-aphostname='/bin/hostname'
-api_revision='5'
-api_subversion='0'
-ar='ar'
-archname64=''
-archname='i386-linux-uclibc'
-archobjs=''
-asctime_r_proto='REENTRANT_PROTO_B_SB'
-awk='awk'
-baserev='5.0'
-bash=''
-bin='/usr/bin'
-binexp='/usr/bin'
-bison='bison'
-byacc='byacc'
-byteorder='1234'
-c=''
-castflags='0'
-cat='cat'
-cc='%%CC%%'
-cccdlflags='-fPIC'
-ccflags='-D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 %%CFLAGS%%'
-ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
-ccname='gcc'
-ccsymbols=''
-ccversion=''
-cf_by='root'
-cf_email='root@maia.dev.null'
-cf_time='Sat Apr 19 15:51:11 MDT 2008'
-chgrp=''
-chmod='chmod'
-chown=''
-clocktype='clock_t'
-comm='comm'
-compress=''
-contains='grep'
-cp='cp'
-cpio=''
-cpp='cpp'
-cpp_stuff='42'
-cppccsymbols=''
-cppflags='-D_REENTRANT -D_GNU_SOURCE %%CFLAGS%%'
-cpplast='-'
-cppminus='-'
-cpprun='%%CPP%%'
-cppstdin='%%CPP%%'
-cppsymbols='__ELF__=1 _FILE_OFFSET_BITS=64 __GLIBC__=2 __GLIBC_MINOR__=2 __GNUC__=3 __GNUC_MINOR__=4 __GNU_LIBRARY__=6 _LARGEFILE_SOURCE=1 _POSIX_C_SOURCE=199506L _POSIX_SOURCE=1 __STDC__=1 __USE_BSD=1 __USE_FILE_OFFSET64=1 __USE_LARGEFILE=1 __USE_MISC=1 __USE_POSIX=1 __USE_POSIX199309=1 __USE_POSIX199506=1 __USE_POSIX2=1 __USE_SVID=1 i386=1 __i386=1 __i386__=1 linux=1 __linux=1 __linux__=1 unix=1 __unix=1 __unix__=1'
-crypt_r_proto='%%CRYPT_R_PROTO%%'
-cryptlib=''
-csh='csh'
-ctermid_r_proto='0'
-ctime_r_proto='REENTRANT_PROTO_B_SB'
-d_Gconvert='sprintf((b),"%.*g",(n),(x))'
-d_PRIEUldbl='define'
-d_PRIFUldbl='define'
-d_PRIGUldbl='define'
-d_PRIXU64='define'
-d_PRId64='define'
-d_PRIeldbl='define'
-d_PRIfldbl='define'
-d_PRIgldbl='define'
-d_PRIi64='define'
-d_PRIo64='define'
-d_PRIu64='define'
-d_PRIx64='define'
-d_SCNfldbl='define'
-d__fwalk='undef'
-d_access='define'
-d_accessx='undef'
-d_acosh='define'
-d_aintl='undef'
-d_alarm='define'
-d_archlib='undef'
-d_asctime_r='define'
-d_asinh='define'
-d_atanh='define'
-d_atolf='undef'
-d_atoll='define'
-d_attribute_format='define'
-d_attribute_malloc='define'
-d_attribute_nonnull='define'
-d_attribute_noreturn='define'
-d_attribute_pure='define'
-d_attribute_unused='define'
-d_attribute_warn_unused_result='define'
-d_backtrace='define'
-d_bcmp='define'
-d_bcopy='define'
-d_bsd='undef'
-d_bsdgetpgrp='undef'
-d_bsdsetpgrp='undef'
-d_builtin_choose_expr='define'
-d_builtin_expect='undef'
-d_bzero='define'
-d_c99_variadic_macros='define'
-d_casti32='undef'
-d_castneg='define'
-d_cbrt='define'
-d_charvspr='undef'
-d_chown='define'
-d_chroot='define'
-d_chsize='undef'
-d_class='undef'
-d_clearenv='define'
-d_closedir='define'
-d_cmsghdr_s='define'
-d_const='define'
-d_copysign='define'
-d_copysignl='undef'
-d_cplusplus='undef'
-d_crypt='%%CRYPT%%'
-d_crypt_r='%%CRYPT%%'
-d_csh='undef'
-d_ctermid='define'
-d_ctermid_r='undef'
-d_ctime_r='define'
-d_cuserid='define'
-d_dbl_dig='define'
-d_dbminitproto='undef'
-d_difftime='define'
-d_dir_dd_fd='undef'
-d_dirfd='define'
-d_dirnamlen='undef'
-d_dladdr='define'
-d_dlerror='define'
-d_dlopen='define'
-d_dlsymun='undef'
-d_dosuid='undef'
-d_drand48_r='define'
-d_drand48proto='define'
-d_dup2='define'
-d_eaccess='undef'
-d_endgrent='define'
-d_endgrent_r='undef'
-d_endhent='define'
-d_endhostent_r='undef'
-d_endnent='define'
-d_endnetent_r='undef'
-d_endpent='define'
-d_endprotoent_r='undef'
-d_endpwent='define'
-d_endpwent_r='undef'
-d_endsent='define'
-d_endservent_r='undef'
-d_eofnblk='define'
-d_erf='define'
-d_erfc='define'
-d_eunice='undef'
-d_exp2='define'
-d_expm1='define'
-d_faststdio='undef'
-d_fchdir='define'
-d_fchmod='define'
-d_fchown='define'
-d_fcntl='define'
-d_fcntl_can_lock='define'
-d_fd_macros='define'
-d_fd_set='define'
-d_fdim='define'
-d_fds_bits='define'
-d_fegetround='undef'
-d_fgetpos='define'
-d_finite='define'
-d_finitel='undef'
-d_flexfnam='define'
-d_flock='define'
-d_flockproto='define'
-d_fma='define'
-d_fmax='define'
-d_fmin='define'
-d_fork='define'
-d_fp_class='undef'
-d_fp_classify='undef'
-d_fp_classl='undef'
-d_fpathconf='define'
-d_fpclass='undef'
-d_fpclassify='define'
-d_fpclassl='undef'
-d_fpgetround='undef'
-d_fpos64_t='undef'
-d_frexpl='undef'
-d_fs_data_s='undef'
-d_fseeko='define'
-d_fsetpos='define'
-d_fstatfs='define'
-d_fstatvfs='define'
-d_fsync='define'
-d_ftello='define'
-d_ftime='undef'
-d_futimes='undef'
-d_getcwd='define'
-d_getespwnam='undef'
-d_getfsstat='undef'
-d_getgrent='define'
-d_getgrent_r='define'
-d_getgrgid_r='define'
-d_getgrnam_r='define'
-d_getgrps='define'
-d_gethbyaddr='define'
-d_gethbyname='define'
-d_gethent='define'
-d_gethname='define'
-d_gethostbyaddr_r='define'
-d_gethostbyname_r='define'
-d_gethostent_r='define'
-d_gethostprotos='define'
-d_getitimer='define'
-d_getlogin='define'
-d_getlogin_r='define'
-d_getmnt='undef'
-d_getmntent='define'
-d_getnbyaddr='define'
-d_getnbyname='define'
-d_getnent='define'
-d_getnetbyaddr_r='define'
-d_getnetbyname_r='define'
-d_getnetent_r='define'
-d_getnetprotos='define'
-d_getpagsz='define'
-d_getpbyname='define'
-d_getpbynumber='define'
-d_getpent='define'
-d_getpgid='define'
-d_getpgrp2='undef'
-d_getpgrp='define'
-d_getppid='define'
-d_getprior='define'
-d_getprotobyname_r='define'
-d_getprotobynumber_r='define'
-d_getprotoent_r='define'
-d_getprotoprotos='define'
-d_getprpwnam='undef'
-d_getpwent='define'
-d_getpwent_r='define'
-d_getpwnam_r='define'
-d_getpwuid_r='define'
-d_getsbyname='define'
-d_getsbyport='define'
-d_getsent='define'
-d_getservbyname_r='define'
-d_getservbyport_r='define'
-d_getservent_r='define'
-d_getservprotos='define'
-d_getspnam='define'
-d_getspnam_r='define'
-d_gettimeod='define'
-d_gmtime_r='define'
-d_gnulibc='undef'
-d_grpasswd='define'
-d_hasmntopt='define'
-d_htonl='define'
-d_hypot='define'
-d_ilogb='define'
-d_ilogbl='undef'
-d_inc_version_list='undef'
-d_index='undef'
-d_inetaton='define'
-d_int64_t='define'
-d_isascii='define'
-d_isfinite='define'
-d_isfinitel='undef'
-d_isinf='define'
-d_isinfl='define'
-d_isless='undef'
-d_isnan='define'
-d_isnanl='undef'
-d_isnormal='define'
-d_j0='undef'
-d_j0l='undef'
-d_killpg='define'
-d_lc_monetary_2008='define'
-d_lchown='define'
-d_ldbl_dig='define'
-d_ldexpl='define'
-d_lgamma='define'
-d_lgamma_r='define'
-d_libm_lib_version='define'
-d_link='define'
-d_llrint='define'
-d_llrintl='define'
-d_llround='define'
-d_llroundl='define'
-d_localtime_r='define'
-d_localtime_r_needs_tzset='define'
-d_locconv='define'
-d_lockf='define'
-d_log1p='define'
-d_log2='define'
-d_logb='define'
-d_longdbl='define'
-d_longlong='define'
-d_lrint='define'
-d_lrintl='define'
-d_lround='define'
-d_lroundl='define'
-d_lseekproto='define'
-d_lstat='define'
-d_madvise='define'
-d_malloc_good_size='undef'
-d_malloc_size='undef'
-d_mblen='define'
-d_mbstowcs='define'
-d_mbtowc='define'
-d_memchr='define'
-d_memcmp='define'
-d_memcpy='define'
-d_memmove='define'
-d_memset='define'
-d_mkdir='define'
-d_mkdtemp='define'
-d_mkfifo='define'
-d_mkstemp='define'
-d_mkstemps='undef'
-d_mktime='define'
-d_mmap='define'
-d_modfl='undef'
-d_modfl_pow32_bug='undef'
-d_modflproto='define'
-d_mprotect='define'
-d_msg='define'
-d_msg_ctrunc='define'
-d_msg_dontroute='define'
-d_msg_oob='define'
-d_msg_peek='define'
-d_msg_proxy='define'
-d_msgctl='define'
-d_msgget='define'
-d_msghdr_s='define'
-d_msgrcv='define'
-d_msgsnd='define'
-d_msync='define'
-d_munmap='define'
-d_mymalloc='undef'
-d_nan='define'
-d_nearbyint='define'
-d_nextafter='define'
-d_nexttoward='undef'
-d_nice='define'
-d_nl_langinfo='define'
-d_nv_preserves_uv='define'
-d_nv_zero_is_allbits_zero='define'
-d_off64_t='define'
-d_old_pthread_create_joinable='undef'
-d_oldpthreads='undef'
-d_oldsock='undef'
-d_open3='define'
-d_pathconf='define'
-d_pause='define'
-d_perl_otherlibdirs='undef'
-d_phostname='undef'
-d_pipe='define'
-d_poll='define'
-d_portable='define'
-d_printf_format_null='define'
-d_procselfexe='define'
-d_pseudofork='undef'
-d_pthread_atfork='define'
-d_pthread_attr_setscope='define'
-d_pthread_yield='define'
-d_ptrdiff_t='define'
-d_pwage='undef'
-d_pwchange='undef'
-d_pwclass='undef'
-d_pwcomment='undef'
-d_pwexpire='undef'
-d_pwgecos='define'
-d_pwpasswd='define'
-d_pwquota='undef'
-d_qgcvt='undef'
-d_quad='define'
-d_random_r='define'
-d_re_comp='undef'
-d_readdir64_r='define'
-d_readdir='define'
-d_readdir_r='define'
-d_readlink='define'
-d_readv='define'
-d_recvmsg='define'
-d_regcmp='undef'
-d_regcomp='define'
-d_remainder='define'
-d_remquo='define'
-d_rename='define'
-d_rewinddir='define'
-d_rint='define'
-d_rmdir='define'
-d_round='define'
-d_safebcpy='undef'
-d_safemcpy='undef'
-d_sanemcmp='define'
-d_sbrkproto='define'
-d_scalbn='define'
-d_scalbnl='undef'
-d_sched_yield='define'
-d_scm_rights='define'
-d_seekdir='define'
-d_select='define'
-d_sem='define'
-d_semctl='define'
-d_semctl_semid_ds='define'
-d_semctl_semun='define'
-d_semget='define'
-d_semop='define'
-d_sendmsg='define'
-d_setegid='define'
-d_seteuid='define'
-d_setgrent='define'
-d_setgrent_r='undef'
-d_setgrps='define'
-d_sethent='define'
-d_sethostent_r='undef'
-d_setitimer='define'
-d_setlinebuf='define'
-d_setlocale='define'
-d_setlocale_r='undef'
-d_setnent='define'
-d_setnetent_r='undef'
-d_setpent='define'
-d_setpgid='define'
-d_setpgrp2='undef'
-d_setpgrp='define'
-d_setprior='define'
-d_setproctitle='undef'
-d_setprotoent_r='undef'
-d_setpwent='define'
-d_setpwent_r='undef'
-d_setregid='define'
-d_setresgid='define'
-d_setresuid='define'
-d_setreuid='define'
-d_setrgid='undef'
-d_setruid='undef'
-d_setsent='define'
-d_setservent_r='undef'
-d_setsid='define'
-d_setvbuf='define'
-d_sfio='undef'
-d_shm='define'
-d_shmat='define'
-d_shmatprototype='define'
-d_shmctl='define'
-d_shmdt='define'
-d_shmget='define'
-d_sigaction='define'
-d_signbit='undef'
-d_sigprocmask='define'
-d_sigsetjmp='define'
-d_sitearch='define'
-d_snprintf='define'
-d_sockatmark='undef'
-d_sockatmarkproto='undef'
-d_socket='define'
-d_socklen_t='define'
-d_sockpair='define'
-d_socks5_init='undef'
-d_sprintf_returns_strlen='define'
-d_sqrtl='undef'
-d_srand48_r='define'
-d_srandom_r='define'
-d_sresgproto='define'
-d_sresuproto='define'
-d_stat='define'
-d_statblks='define'
-d_statfs_f_flags='undef'
-d_statfs_s='define'
-d_statvfs='define'
-d_stdio_cnt_lval='undef'
-d_stdio_ptr_lval='undef'
-d_stdio_ptr_lval_nochange_cnt='undef'
-d_stdio_ptr_lval_sets_cnt='undef'
-d_stdio_stream_array='undef'
-d_stdiobase='undef'
-d_stdstdio='undef'
-d_strchr='define'
-d_strcoll='define'
-d_strctcpy='define'
-d_strerrm='strerror(e)'
-d_strerror='define'
-d_strerror_r='define'
-d_strftime='define'
-d_strlcat='define'
-d_strlcpy='define'
-d_strtod='define'
-d_strtol='define'
-d_strtold='define'
-d_strtoll='define'
-d_strtoq='define'
-d_strtoul='define'
-d_strtoull='define'
-d_strtouq='define'
-d_strxfrm='define'
-d_suidsafe='undef'
-d_symlink='define'
-d_syscall='define'
-d_syscallproto='define'
-d_sysconf='define'
-d_sysernlst=''
-d_syserrlst='undef'
-d_system='define'
-d_tcgetpgrp='define'
-d_tcsetpgrp='define'
-d_telldir='define'
-d_telldirproto='define'
-d_tgamma='define'
-d_time='define'
-d_times='define'
-d_tm_tm_gmtoff='define'
-d_tm_tm_zone='define'
-d_tmpnam_r='define'
-d_trunc='define'
-d_truncate='define'
-d_truncl='define'
-d_ttyname_r='define'
-d_tzname='define'
-d_u32align='undef'
-d_ualarm='define'
-d_umask='define'
-d_uname='define'
-d_union_semun='undef'
-d_unordered='undef'
-d_unsetenv='define'
-d_usleep='define'
-d_usleepproto='define'
-d_ustat='define'
-d_vendorarch='undef'
-d_vendorbin='undef'
-d_vendorlib='undef'
-d_vendorscript='undef'
-d_vfork='undef'
-d_void_closedir='undef'
-d_voidsig='define'
-d_voidtty=''
-d_volatile='define'
-d_vprintf='define'
-d_vsnprintf='define'
-d_wait4='define'
-d_waitpid='define'
-d_wcscmp='define'
-d_wcstombs='define'
-d_wcsxfrm='define'
-d_wctomb='define'
-d_writev='define'
-d_xenix='undef'
-date='date'
-db_hashtype='u_int32_t'
-db_prefixtype='size_t'
-db_version_major=''
-db_version_minor=''
-db_version_patch=''
-defvoidused='15'
-direntrytype='struct dirent'
-dlext='so'
-dlsrc='dl_dlopen.xs'
-doublekind='3'
-doublesize='8'
-drand01='drand48()'
-drand48_r_proto='REENTRANT_PROTO_I_ST'
-eagain='EAGAIN'
-ebcdic='undef'
-echo='echo'
-egrep='egrep'
-emacs=''
-endgrent_r_proto='0'
-endhostent_r_proto='0'
-endnetent_r_proto='0'
-endprotoent_r_proto='0'
-endpwent_r_proto='0'
-endservent_r_proto='0'
-eunicefix=':'
-exe_ext=''
-expr='expr'
-extras=''
-fflushNULL='define'
-fflushall='undef'
-find=''
-firstmakefile='makefile'
-flex=''
-fpossize='20'
-fpostype='fpos_t'
-freetype='void'
-from=':'
-full_ar='%%AR%%'
-full_csh='csh'
-full_sed='sed'
-gccansipedantic=''
-gccosandvers=''
-gccversion='3.4.3'
-getgrent_r_proto='REENTRANT_PROTO_I_SBWR'
-getgrgid_r_proto='REENTRANT_PROTO_I_TSBWR'
-getgrnam_r_proto='REENTRANT_PROTO_I_CSBWR'
-gethostbyaddr_r_proto='REENTRANT_PROTO_I_TsISBWRE'
-gethostbyname_r_proto='REENTRANT_PROTO_I_CSBWRE'
-gethostent_r_proto='REENTRANT_PROTO_I_SBWRE'
-getlogin_r_proto='REENTRANT_PROTO_I_BW'
-getnetbyaddr_r_proto='REENTRANT_PROTO_I_uISBWRE'
-getnetbyname_r_proto='REENTRANT_PROTO_I_CSBWRE'
-getnetent_r_proto='REENTRANT_PROTO_I_SBWRE'
-getprotobyname_r_proto='REENTRANT_PROTO_I_CSBWR'
-getprotobynumber_r_proto='REENTRANT_PROTO_I_ISBWR'
-getprotoent_r_proto='REENTRANT_PROTO_I_SBWR'
-getpwent_r_proto='REENTRANT_PROTO_I_SBWR'
-getpwnam_r_proto='REENTRANT_PROTO_I_CSBWR'
-getpwuid_r_proto='REENTRANT_PROTO_I_TSBWR'
-getservbyname_r_proto='REENTRANT_PROTO_I_CCSBWR'
-getservbyport_r_proto='REENTRANT_PROTO_I_ICSBWR'
-getservent_r_proto='REENTRANT_PROTO_I_SBWR'
-getspnam_r_proto='REENTRANT_PROTO_I_CSBWR'
-gidformat='"lu"'
-gidsign='1'
-gidsize='4'
-gidtype='gid_t'
-glibpth='/usr/shlib  /lib /usr/lib /usr/lib/386 /lib/386 /usr/ccs/lib /usr/ucblib /usr/local/lib '
-gmake='gmake'
-gmtime_r_proto='REENTRANT_PROTO_S_TS'
-gnulibc_version=''
-grep='grep'
-groupcat='cat /etc/group'
-groupstype='gid_t'
-gzip='gzip'
-h_fcntl='false'
-h_sysfile='true'
-hint='recommended'
-hostcat='cat /etc/hosts'
-html1dir=' '
-html1direxp=''
-html3dir=' '
-html3direxp=''
-i16size='2'
-i16type='short'
-i32size='4'
-i32type='long'
-i64size='8'
-i64type='long long'
-i8size='1'
-i8type='char'
-i_arpainet='define'
-i_bsdioctl=''
-i_crypt='%%CRYPT%%'
-i_db='define'
-i_dbm='undef'
-i_dirent='define'
-i_dld='undef'
-i_dlfcn='define'
-i_execinfo='define'
-i_fcntl='undef'
-i_fenv='undef'
-i_float='define'
-i_fp='undef'
-i_fp_class='undef'
-i_gdbm='define'
-i_grp='define'
-i_ieeefp='undef'
-i_inttypes='define'
-i_langinfo='define'
-i_libutil='undef'
-i_limits='define'
-i_locale='define'
-i_machcthr='undef'
-i_malloc='define'
-i_math='define'
-i_memory='undef'
-i_mntent='define'
-i_ndbm='undef'
-i_netdb='define'
-i_neterrno='undef'
-i_netinettcp='define'
-i_niin='define'
-i_poll='define'
-i_prot='undef'
-i_pthread='define'
-i_pwd='define'
-i_quadmath='define'
-i_rpcsvcdbm='undef'
-i_sfio='undef'
-i_sgtty='undef'
-i_shadow='define'
-i_socks='undef'
-i_stdarg='define'
-i_stddef='define'
-i_stdint='define'
-i_stdlib='define'
-i_string='define'
-i_sunmath='undef'
-i_sysaccess='undef'
-i_sysdir='define'
-i_sysfile='define'
-i_sysfilio='undef'
-i_sysin='undef'
-i_sysioctl='define'
-i_syslog='define'
-i_sysmman='define'
-i_sysmode='undef'
-i_sysmount='define'
-i_sysndir='undef'
-i_sysparam='define'
-i_sysresrc='define'
-i_syssecrt='undef'
-i_sysselct='define'
-i_syssockio='undef'
-i_sysstat='define'
-i_sysstatfs='define'
-i_sysstatvfs='define'
-i_systime='define'
-i_systimek='undef'
-i_systimes='define'
-i_systypes='define'
-i_sysuio='define'
-i_sysun='define'
-i_sysutsname='define'
-i_sysvfs='define'
-i_syswait='define'
-i_termio='undef'
-i_termios='define'
-i_time='define'
-i_unistd='define'
-i_ustat='define'
-i_utime='define'
-i_values='define'
-i_varargs='undef'
-i_varhdr='stdarg.h'
-i_vfork='undef'
-ignore_versioned_solibs='y'
-inc_version_list=' '
-inc_version_list_init='0'
-incpath=''
-inews=''
-installbin='/usr/bin'
-initialinstalllocation='/usr/bin'
-installhtml1dir=''
-installhtml3dir=''
-installman1dir=''
-installman3dir=''
-installprefix='/usr'
-installprefixexp='/usr'
-installscript='/usr/bin'
-installsitebin='/usr/bin'
-installsitehtml1dir=''
-installsitehtml3dir=''
-installsiteman1dir=''
-installsiteman3dir=''
-installsitescript='/usr/bin'
-installstyle='lib/perl5'
-installusrbinperl='define'
-installvendorarch=''
-installvendorbin=''
-installvendorhtml1dir=''
-installvendorhtml3dir=''
-installvendorlib=''
-installvendorman1dir=''
-installvendorman3dir=''
-installvendorscript=''
-intsize='4'
-issymlink='test -h'
-ivdformat='"ld"'
-ivsize='4'
-ivtype='long'
-ksh=''
-ld='%%LD%%'
-lddlflags='-shared %%LDFLAGS%%'
-ldflags='%%EXTRA_PERLLIBDIRS%%'
-ldflags_uselargefiles=''
-ldlibpthname='LD_LIBRARY_PATH'
-less='less'
-lib_ext='.a'
-libc=''
-libperl='libperl.so'
-libpth='%%LIBDIRS%%'
-libs='-lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread -lc'
-libsdirs='%%LIBDIRS%%'
-libsfiles=' libdl.so libm.so libcrypt.so libutil.so libpthread.so libc.so'
-#libsfound=' /usr/lib/libdl.so /usr/lib/libm.so /usr/lib/libcrypt.so /usr/lib/libutil.so /usr/lib/libc.so'
-libspath='%%LIBDIRS%%'
-libswanted='sfio socket inet nm ndbm gdbm dbm db malloc dl dld ld sun m crypt sec util pthread c cposix posix ucb BSD'
-libswanted_uselargefiles=''
-line=''
-lint=''
-lkflags=''
-ln='ln'
-lns='/bin/ln -s'
-localtime_r_proto='REENTRANT_PROTO_S_TS'
-locincpth=' '
-loclibpth=' '
-longdblkind='3'
-longdblsize='12'
-longlongsize='8'
-longsize='4'
-lp=''
-lpr=''
-ls='ls'
-lseeksize='8'
-lseektype='off_t'
-mail=''
-mailx=''
-make='make'
-make_set_make='#'
-mallocobj=''
-mallocsrc=''
-malloctype='void *'
-man1dir=' '
-man1direxp=''
-man1ext='0'
-man3dir=' '
-man3direxp=''
-man3ext='0'
-mips_type=''
-mistrustnm=''
-mkdir='mkdir'
-mmaptype='void *'
-modetype='mode_t'
-more='more'
-multiarch='undef'
-mv=''
-myarchname='i386-linux-uclibc'
-mydomain='.dev.null'
-myhostname='maia'
-myuname='linux maia 2.6.25 #2 sat apr 19 09:46:49 cest 2008 i686 unknown unknown gnulinux '
-n='-n'
-need_va_copy='undef'
-netdb_hlen_type='size_t'
-netdb_host_type='const void *'
-netdb_name_type='const char *'
-netdb_net_type='in_addr_t'
-nm='nm'
-nm_opt=''
-nm_so_opt='--dynamic'
-nroff='nroff'
-nvEUformat='"E"'
-nvFUformat='"F"'
-nvGUformat='"G"'
-nv_preserves_uv_bits='32'
-nveformat='"e"'
-nvfformat='"f"'
-nvgformat='"g"'
-nvsize='8'
-nvtype='double'
-o_nonblock='O_NONBLOCK'
-obj_ext='.o'
-old_pthread_create_joinable=''
-optimize='-O2'
-orderlib='false'
-osname='linux'
-osvers='2.6.25'
-otherlibdirs=' '
-package='perl5'
-pager='/usr/bin/less'
-passcat='cat /etc/passwd'
-path_sep=':'
-perl5=''
-perl=''
-perl_patchlevel=''
-perladmin='root@maia.dev.null'
-perllibs='-ldl -lm -lcrypt -lutil -lpthread -lc %%EXTRA_PERLLIBS%%'
-perlpath='/usr/bin/perl'
-pg='pg'
-phostname='hostname'
-pidtype='pid_t'
-plibpth=''
-pmake=''
-pr=''
-prefix='/usr'
-prefixexp='/usr'
-procselfexe='"/proc/self/exe"'
-prototype='define'
-ptrsize='4'
-quadkind='3'
-quadtype='long long'
-randbits='48'
-randfunc='drand48'
-random_r_proto='REENTRANT_PROTO_I_St'
-randseedtype='long'
-ranlib=':'
-rd_nodata='-1'
-readdir64_r_proto='REENTRANT_PROTO_I_TSR'
-readdir_r_proto='REENTRANT_PROTO_I_TSR'
-revision='5'
-rm='rm'
-rm_try='/bin/rm -f try try a.out .out try.[cho] try..o core core.try* try.core*'
-rmail=''
-run=''
-runnm='false'
-sPRIEUldbl='"LE"'
-sPRIFUldbl='"LF"'
-sPRIGUldbl='"LG"'
-sPRIXU64='"LX"'
-sPRId64='"Ld"'
-sPRIeldbl='"Le"'
-sPRIfldbl='"Lf"'
-sPRIgldbl='"Lg"'
-sPRIi64='"Li"'
-sPRIo64='"Lo"'
-sPRIu64='"Lu"'
-sPRIx64='"Lx"'
-sSCNfldbl='"Lf"'
-sched_yield='sched_yield()'
-scriptdir='/usr/bin'
-scriptdirexp='/usr/bin'
-sed='sed'
-seedfunc='srand48'
-selectminbits='32'
-selecttype='fd_set *'
-sendmail=''
-setgrent_r_proto='0'
-sethostent_r_proto='0'
-setlocale_r_proto='0'
-setnetent_r_proto='0'
-setprotoent_r_proto='0'
-setpwent_r_proto='0'
-setservent_r_proto='0'
-sh='/bin/sh'
-shar=''
-sharpbang='#!'
-shmattype='void *'
-shortsize='2'
-shrpenv=''
-shsharp='true'
-sig_count='64'
-sig_name='ZERO HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS NUM32 NUM33 RTMIN NUM35 NUM36 NUM37 NUM38 NUM39 NUM40 NUM41 NUM42 NUM43 NUM44 NUM45 NUM46 NUM47 NUM48 NUM49 NUM50 NUM51 NUM52 NUM53 NUM54 NUM55 NUM56 NUM57 NUM58 NUM59 NUM60 NUM61 NUM62 RTMAX IOT CLD POLL UNUSED '
-sig_name_init='"ZERO", "HUP", "INT", "QUIT", "ILL", "TRAP", "ABRT", "BUS", "FPE", "KILL", "USR1", "SEGV", "USR2", "PIPE", "ALRM", "TERM", "STKFLT", "CHLD", "CONT", "STOP", "TSTP", "TTIN", "TTOU", "URG", "XCPU", "XFSZ", "VTALRM", "PROF", "WINCH", "IO", "PWR", "SYS", "NUM32", "NUM33", "RTMIN", "NUM35", "NUM36", "NUM37", "NUM38", "NUM39", "NUM40", "NUM41", "NUM42", "NUM43", "NUM44", "NUM45", "NUM46", "NUM47", "NUM48", "NUM49", "NUM50", "NUM51", "NUM52", "NUM53", "NUM54", "NUM55", "NUM56", "NUM57", "NUM58", "NUM59", "NUM60", "NUM61", "NUM62", "RTMAX", "IOT", "CLD", "POLL", "UNUSED", 0'
-sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 6 17 29 31 '
-sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 6, 17, 29, 31, 0'
-sig_size='68'
-signal_t='void'
-sitearch=''
-sitearchexp=''
-sitebin='/usr/bin'
-sitebinexp='/usr/bin'
-sitehtml1dir=''
-sitehtml1direxp=''
-sitehtml3dir=''
-sitehtml3direxp=''
-sitelib=''
-#sitelib_stem='/usr/lib/perl5/site_perl'
-sitelibexp=''
-siteman1dir=''
-siteman1direxp=''
-siteman3dir=''
-siteman3direxp=''
-siteprefix='/usr'
-siteprefixexp='/usr'
-sitescript='/usr/bin'
-sitescriptexp='/usr/bin'
-sizesize='4'
-sizetype='size_t'
-sleep=''
-smail=''
-so='so'
-sockethdr=''
-socketlib=''
-socksizetype='socklen_t'
-sort='sort'
-spackage='Perl5'
-spitshell='cat'
-srand48_r_proto='REENTRANT_PROTO_I_LS'
-srandom_r_proto='REENTRANT_PROTO_I_TS'
-src='.'
-ssizetype='ssize_t'
-startperl='#!/usr/bin/perl'
-startsh='#!/bin/sh'
-static_ext=' '
-stdchar='char'
-stdio_base='((fp)->_base)'
-stdio_bufsiz='((fp)->_cnt + (fp)->_ptr - (fp)->_base)'
-stdio_cnt='((fp)->_cnt)'
-stdio_filbuf=''
-stdio_ptr='((fp)->_ptr)'
-stdio_stream_array=''
-strerror_r_proto='REENTRANT_PROTO_B_IBW'
-#strings='/usr/include/string.h'
-submit=''
-sysman='/usr/share/man/man1'
-tail=''
-tar=''
-targetarch='i386-linux-uclibc'
-tbl=''
-tee=''
-test='test'
-#timeincl='/usr/include/sys/time.h /usr/include/time.h '
-timetype='time_t'
-tmpnam_r_proto='REENTRANT_PROTO_B_B'
-to=':'
-touch='touch'
-tr='tr'
-trnl='\n'
-troff=''
-ttyname_r_proto='REENTRANT_PROTO_I_IBW'
-u16size='2'
-u16type='unsigned short'
-u32size='4'
-u32type='unsigned long'
-u64size='8'
-u64type='unsigned long long'
-u8size='1'
-u8type='unsigned char'
-uidformat='"lu"'
-uidsign='1'
-uidsize='4'
-uidtype='uid_t'
-uname='uname'
-uniq='uniq'
-uquadtype='unsigned long long'
-use5005threads='undef'
-use64bitall='undef'
-use64bitint='undef'
-usecbacktrace='undef'
-usecrosscompile='define'
-usedl='define'
-usefaststdio='undef'
-useithreads='define'
-uselargefiles='define'
-uselongdouble='undef'
-usemallocwrap='define'
-usemorebits='undef'
-usemultiplicity='define'
-usemymalloc='n'
-usenm='true'
-useopcode='true'
-useperlio='define'
-useposix='true'
-usequadmath='undef'
-usereentrant='undef'
-userelocatableinc='undef'
-usesfio='false'
-useshrplib='true'
-usesitecustomize='undef'
-usesocks='undef'
-usethreads='define'
-usevendorprefix='undef'
-usevfork='false'
-usrinc='%%INCDIRS%%'
-uuname=''
-uvXUformat='"lX"'
-uvoformat='"lo"'
-uvsize='4'
-uvtype='unsigned long'
-uvuformat='"lu"'
-uvxformat='"lx"'
-vendorarch=''
-vendorarchexp=''
-vendorbin=''
-vendorbinexp=''
-vendorhtml1dir=' '
-vendorhtml1direxp=''
-vendorhtml3dir=' '
-vendorhtml3direxp=''
-vendorlib=''
-vendorlib_stem=''
-vendorlibexp=''
-vendorman1dir=' '
-vendorman1direxp=''
-vendorman3dir=' '
-vendorman3direxp=''
-vendorprefix=''
-vendorprefixexp=''
-vendorscript=''
-vendorscriptexp=''
-versiononly='undef'
-vi=''
-voidflags='15'
-xlibpth='/usr/lib/386 /lib/386'
-yacc='yacc'
-yaccflags=''
-zcat=''
-zip='zip'
-# Configure command line arguments.
-config_arg0='./Configure'
-config_args='-der -Dusethreads'
-config_argc=2
-config_arg1='-der'
-config_arg2='-Dusethreads'
-PERL_REVISION=5
-PERL_API_REVISION=5
-PERL_API_SUBVERSION=0
-PERL_PATCHLEVEL=
-PERL_CONFIG_SH=true
-# Fix problem with HiRes timer.
-d_nanosleep='define'
-d_clock_gettime='define'
-d_clock_getres='define'
-d_clock_nanosleep='define'
-d_clock='define'
-
-# New symbols for perl 5.20.0
-bin_ELF='define'
-charbits='8'
-charsize='1'
-d_asctime64='undef'
-d_attribute_deprecated='define'
-d_ctime64='undef'
-d_difftime64='undef'
-d_gdbm_ndbm_h_uses_prototypes='undef'
-d_gdbmndbm_h_uses_prototypes='undef'
-d_getaddrinfo='define'
-d_getnameinfo='define'
-d_gmtime64='undef'
-d_inetntop='define'
-d_inetpton='define'
-d_ip_mreq='define'
-d_ip_mreq_source='define'
-d_ipv6_mreq='%%IPV6%%'
-d_ipv6_mreq_source='undef'
-d_isblank='define'
-d_libname_unique='undef'
-d_localtime64='undef'
-d_mktime64='undef'
-d_ndbm='undef'
-d_ndbm_h_uses_prototypes='undef'
-d_prctl='define'
-d_prctl_set_name='define'
-d_sin6_scope_id='%%IPV6%%'
-d_sockaddr_in6='%%IPV6%%'
-d_sockaddr_sa_len='undef'
-d_static_inline='define'
-d_timegm='define'
-dtrace=''
-extern_C='extern'
-hostosname=''
-i_assert='define'
-i_bfd='undef'
-i_gdbm_ndbm='undef'
-i_gdbmndbm='undef'
-i_mallocmalloc='undef'
-i_stdbool='define'
-i_syspoll='define'
-#incpth='/usr/lib/gcc/i486-slackware-linux/4.8.2/include /usr/local/include /usr/lib/gcc/i486-slackware-linux/4.8.2/include-fixed /usr/include'
-ld_can_script='define'
-#libsfound=' /usr/lib/libgdbm.so /usr/lib/libdb.so /usr/lib/libdl.so /usr/lib/libm.so /usr/lib/libcrypt.so /usr/lib/libutil.so /usr/lib/libc.so'
-nv_overflows_integers_at='256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0'
-perl_static_inline='static __inline__'
-sGMTIME_max='2147483647'
-sGMTIME_min='-2147483648'
-sLOCALTIME_max='2147483647'
-sLOCALTIME_min='-2147483648'
-#sitelib_stem='/usr/local/lib/perl5/site_perl'
-st_ino_sign='1'
-st_ino_size='8'
-#strings='/usr/include/string.h'
-sysroot=''
-targetdir=''
-targetenv=''
-targethost=''
-targetmkdir=''
-targetport=''
-targetsh='/bin/sh'
-#timeincl='/usr/include/sys/time.h /usr/include/time.h '
-usedevel='undef'
-usedtrace='undef'
-usekernprocpathname='undef'
-usensgetexecutablepath='undef'
-useversionedarchname='undef'
-vaproto='define'
-libdb_needs_pthread='N'
-
-# These symbols changed from perl 5.10.0 to 5.20.0 and probably will
-# change again for new versions, so they're included here for
-# future reference
-api_version='22'
-# Always set this to the base version, not the patched one!
-api_versionstring='5.22.0'
-dynamic_ext='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/DosGlob File/Glob Filter/Util/Call GDBM_File Hash/Util Hash/Util/FieldHash I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc Opcode POSIX PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Tie/Hash/NamedCapture Time/HiRes Time/Piece Unicode/Collate XS/APItest XS/Typemap arybase attributes mro re threads threads/shared'
-installarchlib='/usr/lib/perl5/5.22'
-installprivlib='/usr/lib/perl5/5.22'
-installsitearch='/usr/lib/perl5/5.22'
-installsitelib='/usr/lib/perl5/5.22'
-nonxs_ext='Archive/Tar Attribute/Handlers AutoLoader B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Config/Perl/V Devel/SelfStubber Digest Dumpvalue Env Errno Exporter ExtUtils/CBuilder ExtUtils/Command ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS File/Fetch File/Find File/Path File/Temp FileCache Filter/Simple Getopt/Long HTTP/Tiny I18N/Collate I18N/LangTags IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP Locale/Codes Locale/Maketext Locale/Maketext/Simple Math/BigInt Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NEXT Net/Ping Params/Check Parse/CPAN/Meta Perl/OSType PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage Safe Search/Dict SelfLoader Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Memoize Tie/RefHash Time/Local XSLoader autodie autouse base bignum constant encoding/warnings experimental if lib libnet parent perlfaq podlators Unicode/Normalize version'
-privlib='/usr/lib/perl5/5.22'
-privlibexp='/usr/lib/perl5/5.22'
-archlib='/usr/lib/perl5/5.22'
-archlibexp='/usr/lib/perl5/5.22'
-version='5.22.0'
-version_patchlevel_string='version 22 subversion 0'
-PERL_VERSION=22
-PERL_API_VERSION=22
-PERL_SUBVERSION=0
-patchlevel='22'
-ccdlflags='-fPIC -Wl,-rpath,/usr/lib/perl5/5.22/CORE'
-subversion='0'
-extensions='B Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call GDBM_File Hash/Util I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex Time/HiRes Time/Piece XS/APItest XS/Typemap attrs re threads threads/shared Hash/Util/FieldHash Compress/Zlib Errno IO_Compress_Base IO_Compress_Zlib Unicode/Normalize'
-known_extensions='B Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call GDBM_File Hash/Util I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc NDBM_File ODBM_File Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex Time/HiRes Time/Piece Unicode/Normalize Win32 Win32API/File Win32CORE XS/APItest XS/Typemap attrs re threads threads/shared Hash/Util/FieldHash'
-
-# Make perl use these tools instead of the target binaries during build
-hostgenerate='%%HOSTGENERATE%%'
-hostperl='%%HOSTMINIPERL%%'
diff --git a/lang/perl/files/config.sh-i486.in b/lang/perl/files/config.sh-i486.in
deleted file mode 100644 (file)
index a423037..0000000
+++ /dev/null
@@ -1,1212 +0,0 @@
-#!/bin/sh
-#
-# This file was produced by running the Configure script. It holds all the
-# definitions figured out by Configure. Should you modify one of these values,
-# do not forget to propagate your changes by running "Configure -der". You may
-# instead choose to run each of the .SH files by yourself, or "Configure -S".
-#
-
-# Package name      : perl5
-# Source directory  : .
-# Configuration time: Sat Apr 19 15:51:11 MDT 2008
-# Configured by     : root
-# Target system     : linux maia 2.6.25 #2 sat apr 19 09:46:49 cest 2008 i686 unknown unknown gnulinux 
-
-Author=''
-Date=''
-Header=''
-Id=''
-Locker=''
-Log=''
-RCSfile=''
-Revision=''
-Source=''
-State=''
-_a='.a'
-_exe=''
-_o='.o'
-afs='false'
-afsroot='/afs'
-alignbytes='4'
-ansi2knr=''
-aphostname='/bin/hostname'
-api_revision='5'
-api_subversion='0'
-ar='ar'
-archname64=''
-archname='i386-linux-uclibc'
-archobjs=''
-asctime_r_proto='0'
-awk='awk'
-baserev='5.0'
-bash=''
-bin='/usr/bin'
-binexp='/usr/bin'
-bison='bison'
-byacc='byacc'
-byteorder='1234'
-c=''
-castflags='0'
-cat='cat'
-cc='%%CC%%'
-cccdlflags='-fPIC'
-ccflags='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 %%CFLAGS%%'
-ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
-ccname='gcc'
-ccsymbols=''
-ccversion=''
-cf_by='root'
-cf_email='root@maia.dev.null'
-cf_time='Sat Apr 19 15:51:11 MDT 2008'
-chgrp=''
-chmod='chmod'
-chown=''
-clocktype='clock_t'
-comm='comm'
-compress=''
-contains='grep'
-cp='cp'
-cpio=''
-cpp='cpp'
-cpp_stuff='42'
-cppccsymbols=''
-cppflags='%%CFLAGS%%'
-cpplast='-'
-cppminus='-'
-cpprun='%%CPP%%'
-cppstdin='%%CPP%%'
-cppsymbols='__ELF__=1 _FILE_OFFSET_BITS=64 __GLIBC__=2 __GLIBC_MINOR__=2 __GNUC__=3 __GNUC_MINOR__=4 __GNU_LIBRARY__=6 _LARGEFILE_SOURCE=1 _POSIX_C_SOURCE=199506L _POSIX_SOURCE=1 __STDC__=1 __USE_BSD=1 __USE_FILE_OFFSET64=1 __USE_LARGEFILE=1 __USE_MISC=1 __USE_POSIX=1 __USE_POSIX199309=1 __USE_POSIX199506=1 __USE_POSIX2=1 __USE_SVID=1 i386=1 __i386=1 __i386__=1 linux=1 __linux=1 __linux__=1 unix=1 __unix=1 __unix__=1'
-crypt_r_proto='0'
-cryptlib=''
-csh='csh'
-ctermid_r_proto='0'
-ctime_r_proto='0'
-d_Gconvert='sprintf((b),"%.*g",(n),(x))'
-d_PRIEUldbl='define'
-d_PRIFUldbl='define'
-d_PRIGUldbl='define'
-d_PRIXU64='define'
-d_PRId64='define'
-d_PRIeldbl='define'
-d_PRIfldbl='define'
-d_PRIgldbl='define'
-d_PRIi64='define'
-d_PRIo64='define'
-d_PRIu64='define'
-d_PRIx64='define'
-d_SCNfldbl='define'
-d__fwalk='undef'
-d_access='define'
-d_accessx='undef'
-d_acosh='define'
-d_aintl='undef'
-d_alarm='define'
-d_archlib='undef'
-d_asctime_r='undef'
-d_asinh='define'
-d_atanh='define'
-d_atolf='undef'
-d_atoll='define'
-d_attribute_format='define'
-d_attribute_malloc='define'
-d_attribute_nonnull='define'
-d_attribute_noreturn='define'
-d_attribute_pure='define'
-d_attribute_unused='define'
-d_attribute_warn_unused_result='define'
-d_backtrace='define'
-d_bcmp='define'
-d_bcopy='define'
-d_bsd='undef'
-d_bsdgetpgrp='undef'
-d_bsdsetpgrp='undef'
-d_builtin_choose_expr='define'
-d_builtin_expect='undef'
-d_bzero='define'
-d_c99_variadic_macros='define'
-d_casti32='undef'
-d_castneg='define'
-d_cbrt='define'
-d_charvspr='undef'
-d_chown='define'
-d_chroot='define'
-d_chsize='undef'
-d_class='undef'
-d_clearenv='define'
-d_closedir='define'
-d_cmsghdr_s='define'
-d_const='define'
-d_copysign='define'
-d_copysignl='undef'
-d_cplusplus='undef'
-d_crypt='define'
-d_crypt_r='undef'
-d_csh='undef'
-d_ctermid='define'
-d_ctermid_r='undef'
-d_ctime_r='undef'
-d_cuserid='define'
-d_dbl_dig='define'
-d_dbminitproto='undef'
-d_difftime='define'
-d_dir_dd_fd='undef'
-d_dirfd='define'
-d_dirnamlen='undef'
-d_dladdr='define'
-d_dlerror='define'
-d_dlopen='define'
-d_dlsymun='undef'
-d_dosuid='undef'
-d_drand48_r='undef'
-d_drand48proto='define'
-d_dup2='define'
-d_eaccess='undef'
-d_endgrent='define'
-d_endgrent_r='undef'
-d_endhent='define'
-d_endhostent_r='undef'
-d_endnent='define'
-d_endnetent_r='undef'
-d_endpent='define'
-d_endprotoent_r='undef'
-d_endpwent='define'
-d_endpwent_r='undef'
-d_endsent='define'
-d_endservent_r='undef'
-d_eofnblk='define'
-d_erf='define'
-d_erfc='define'
-d_eunice='undef'
-d_exp2='define'
-d_expm1='define'
-d_faststdio='undef'
-d_fchdir='define'
-d_fchmod='define'
-d_fchown='define'
-d_fcntl='define'
-d_fcntl_can_lock='define'
-d_fd_macros='define'
-d_fd_set='define'
-d_fdim='define'
-d_fds_bits='undef'
-d_fegetround='undef'
-d_fgetpos='define'
-d_finite='define'
-d_finitel='undef'
-d_flexfnam='define'
-d_flock='define'
-d_flockproto='define'
-d_fma='define'
-d_fmax='define'
-d_fmin='define'
-d_fork='define'
-d_fp_class='undef'
-d_fp_classify='undef'
-d_fp_classl='undef'
-d_fpathconf='define'
-d_fpclass='undef'
-d_fpclassify='define'
-d_fpclassl='undef'
-d_fpgetround='undef'
-d_fpos64_t='undef'
-d_frexpl='undef'
-d_fs_data_s='undef'
-d_fseeko='define'
-d_fsetpos='define'
-d_fstatfs='define'
-d_fstatvfs='define'
-d_fsync='define'
-d_ftello='define'
-d_ftime='undef'
-d_futimes='undef'
-d_getcwd='define'
-d_getespwnam='undef'
-d_getfsstat='undef'
-d_getgrent='define'
-d_getgrent_r='undef'
-d_getgrgid_r='undef'
-d_getgrnam_r='undef'
-d_getgrps='define'
-d_gethbyaddr='define'
-d_gethbyname='define'
-d_gethent='define'
-d_gethname='define'
-d_gethostbyaddr_r='undef'
-d_gethostbyname_r='undef'
-d_gethostent_r='undef'
-d_gethostprotos='define'
-d_getitimer='define'
-d_getlogin='define'
-d_getlogin_r='undef'
-d_getmnt='undef'
-d_getmntent='define'
-d_getnbyaddr='define'
-d_getnbyname='define'
-d_getnent='define'
-d_getnetbyaddr_r='undef'
-d_getnetbyname_r='undef'
-d_getnetent_r='undef'
-d_getnetprotos='define'
-d_getpagsz='define'
-d_getpbyname='define'
-d_getpbynumber='define'
-d_getpent='define'
-d_getpgid='define'
-d_getpgrp2='undef'
-d_getpgrp='define'
-d_getppid='define'
-d_getprior='define'
-d_getprotobyname_r='undef'
-d_getprotobynumber_r='undef'
-d_getprotoent_r='undef'
-d_getprotoprotos='define'
-d_getprpwnam='undef'
-d_getpwent='define'
-d_getpwent_r='undef'
-d_getpwnam_r='undef'
-d_getpwuid_r='undef'
-d_getsbyname='define'
-d_getsbyport='define'
-d_getsent='define'
-d_getservbyname_r='undef'
-d_getservbyport_r='undef'
-d_getservent_r='undef'
-d_getservprotos='define'
-d_getspnam='define'
-d_getspnam_r='undef'
-d_gettimeod='define'
-d_gmtime_r='undef'
-d_gnulibc='undef'
-d_grpasswd='define'
-d_hasmntopt='define'
-d_htonl='define'
-d_hypot='define'
-d_ilogb='define'
-d_ilogbl='undef'
-d_inc_version_list='undef'
-d_index='undef'
-d_inetaton='define'
-d_int64_t='define'
-d_isascii='define'
-d_isfinite='define'
-d_isfinitel='undef'
-d_isinf='define'
-d_isinfl='define'
-d_isless='undef'
-d_isnan='define'
-d_isnanl='undef'
-d_isnormal='define'
-d_j0='undef'
-d_j0l='undef'
-d_killpg='define'
-d_lc_monetary_2008='define'
-d_lchown='define'
-d_ldbl_dig='define'
-d_ldexpl='define'
-d_lgamma='define'
-d_lgamma_r='define'
-d_libm_lib_version='define'
-d_link='define'
-d_llrint='define'
-d_llrintl='define'
-d_llround='define'
-d_llroundl='define'
-d_localtime_r='undef'
-d_localtime_r_needs_tzset='undef'
-d_locconv='define'
-d_lockf='define'
-d_log1p='define'
-d_log2='define'
-d_logb='define'
-d_longdbl='define'
-d_longlong='define'
-d_lrint='define'
-d_lrintl='define'
-d_lround='define'
-d_lroundl='define'
-d_lseekproto='define'
-d_lstat='define'
-d_madvise='define'
-d_malloc_good_size='undef'
-d_malloc_size='undef'
-d_mblen='define'
-d_mbstowcs='define'
-d_mbtowc='define'
-d_memchr='define'
-d_memcmp='define'
-d_memcpy='define'
-d_memmove='define'
-d_memset='define'
-d_mkdir='define'
-d_mkdtemp='define'
-d_mkfifo='define'
-d_mkstemp='define'
-d_mkstemps='undef'
-d_mktime='define'
-d_mmap='define'
-d_modfl='undef'
-d_modfl_pow32_bug='undef'
-d_modflproto='define'
-d_mprotect='define'
-d_msg='define'
-d_msg_ctrunc='define'
-d_msg_dontroute='define'
-d_msg_oob='define'
-d_msg_peek='define'
-d_msg_proxy='define'
-d_msgctl='define'
-d_msgget='define'
-d_msghdr_s='define'
-d_msgrcv='define'
-d_msgsnd='define'
-d_msync='define'
-d_munmap='define'
-d_mymalloc='undef'
-d_nan='define'
-d_nearbyint='define'
-d_nextafter='define'
-d_nexttoward='undef'
-d_nice='define'
-d_nl_langinfo='define'
-d_nv_preserves_uv='define'
-d_nv_zero_is_allbits_zero='define'
-d_off64_t='undef'
-d_old_pthread_create_joinable='undef'
-d_oldpthreads='undef'
-d_oldsock='undef'
-d_open3='define'
-d_pathconf='define'
-d_pause='define'
-d_perl_otherlibdirs='undef'
-d_phostname='undef'
-d_pipe='define'
-d_poll='define'
-d_portable='define'
-d_printf_format_null='define'
-d_procselfexe='define'
-d_pseudofork='undef'
-d_pthread_atfork='undef'
-d_pthread_attr_setscope='define'
-d_pthread_yield='undef'
-d_ptrdiff_t='define'
-d_pwage='undef'
-d_pwchange='undef'
-d_pwclass='undef'
-d_pwcomment='undef'
-d_pwexpire='undef'
-d_pwgecos='define'
-d_pwpasswd='define'
-d_pwquota='undef'
-d_qgcvt='undef'
-d_quad='define'
-d_random_r='undef'
-d_re_comp='undef'
-d_readdir64_r='undef'
-d_readdir='define'
-d_readdir_r='undef'
-d_readlink='define'
-d_readv='define'
-d_recvmsg='define'
-d_regcmp='undef'
-d_regcomp='define'
-d_remainder='define'
-d_remquo='define'
-d_rename='define'
-d_rewinddir='define'
-d_rint='define'
-d_rmdir='define'
-d_round='define'
-d_safebcpy='undef'
-d_safemcpy='undef'
-d_sanemcmp='define'
-d_sbrkproto='define'
-d_scalbn='define'
-d_scalbnl='undef'
-d_sched_yield='define'
-d_scm_rights='define'
-d_seekdir='define'
-d_select='define'
-d_sem='define'
-d_semctl='define'
-d_semctl_semid_ds='define'
-d_semctl_semun='define'
-d_semget='define'
-d_semop='define'
-d_sendmsg='define'
-d_setegid='define'
-d_seteuid='define'
-d_setgrent='define'
-d_setgrent_r='undef'
-d_setgrps='define'
-d_sethent='define'
-d_sethostent_r='undef'
-d_setitimer='define'
-d_setlinebuf='define'
-d_setlocale='define'
-d_setlocale_r='undef'
-d_setnent='define'
-d_setnetent_r='undef'
-d_setpent='define'
-d_setpgid='define'
-d_setpgrp2='undef'
-d_setpgrp='define'
-d_setprior='define'
-d_setproctitle='undef'
-d_setprotoent_r='undef'
-d_setpwent='define'
-d_setpwent_r='undef'
-d_setregid='define'
-d_setresgid='define'
-d_setresuid='define'
-d_setreuid='define'
-d_setrgid='undef'
-d_setruid='undef'
-d_setsent='define'
-d_setservent_r='undef'
-d_setsid='define'
-d_setvbuf='define'
-d_sfio='undef'
-d_shm='define'
-d_shmat='define'
-d_shmatprototype='define'
-d_shmctl='define'
-d_shmdt='define'
-d_shmget='define'
-d_sigaction='define'
-d_signbit='undef'
-d_sigprocmask='define'
-d_sigsetjmp='define'
-d_sitearch='define'
-d_snprintf='define'
-d_sockatmark='undef'
-d_sockatmarkproto='undef'
-d_socket='define'
-d_socklen_t='define'
-d_sockpair='define'
-d_socks5_init='undef'
-d_sprintf_returns_strlen='define'
-d_sqrtl='undef'
-d_srand48_r='undef'
-d_srandom_r='undef'
-d_sresgproto='undef'
-d_sresuproto='undef'
-d_stat='define'
-d_statblks='define'
-d_statfs_f_flags='undef'
-d_statfs_s='define'
-d_statvfs='define'
-d_stdio_cnt_lval='undef'
-d_stdio_ptr_lval='undef'
-d_stdio_ptr_lval_nochange_cnt='undef'
-d_stdio_ptr_lval_sets_cnt='undef'
-d_stdio_stream_array='undef'
-d_stdiobase='undef'
-d_stdstdio='undef'
-d_strchr='define'
-d_strcoll='define'
-d_strctcpy='define'
-d_strerrm='strerror(e)'
-d_strerror='define'
-d_strerror_r='undef'
-d_strftime='define'
-d_strlcat='define'
-d_strlcpy='define'
-d_strtod='define'
-d_strtol='define'
-d_strtold='define'
-d_strtoll='define'
-d_strtoq='define'
-d_strtoul='define'
-d_strtoull='define'
-d_strtouq='define'
-d_strxfrm='define'
-d_suidsafe='undef'
-d_symlink='define'
-d_syscall='define'
-d_syscallproto='define'
-d_sysconf='define'
-d_sysernlst=''
-d_syserrlst='undef'
-d_system='define'
-d_tcgetpgrp='define'
-d_tcsetpgrp='define'
-d_telldir='define'
-d_telldirproto='define'
-d_tgamma='define'
-d_time='define'
-d_times='define'
-d_tm_tm_gmtoff='define'
-d_tm_tm_zone='define'
-d_tmpnam_r='undef'
-d_trunc='define'
-d_truncate='define'
-d_truncl='define'
-d_ttyname_r='undef'
-d_tzname='define'
-d_u32align='undef'
-d_ualarm='define'
-d_umask='define'
-d_uname='define'
-d_union_semun='undef'
-d_unordered='undef'
-d_unsetenv='define'
-d_usleep='define'
-d_usleepproto='define'
-d_ustat='define'
-d_vendorarch='undef'
-d_vendorbin='undef'
-d_vendorlib='undef'
-d_vendorscript='undef'
-d_vfork='undef'
-d_void_closedir='undef'
-d_voidsig='define'
-d_voidtty=''
-d_volatile='define'
-d_vprintf='define'
-d_vsnprintf='define'
-d_wait4='define'
-d_waitpid='define'
-d_wcscmp='define'
-d_wcstombs='define'
-d_wcsxfrm='define'
-d_wctomb='define'
-d_writev='define'
-d_xenix='undef'
-date='date'
-db_hashtype='u_int32_t'
-db_prefixtype='size_t'
-db_version_major=''
-db_version_minor=''
-db_version_patch=''
-defvoidused='15'
-direntrytype='struct dirent'
-dlext='so'
-dlsrc='dl_dlopen.xs'
-doublekind='3'
-doublesize='8'
-drand01='drand48()'
-drand48_r_proto='0'
-eagain='EAGAIN'
-ebcdic='undef'
-echo='echo'
-egrep='egrep'
-emacs=''
-endgrent_r_proto='0'
-endhostent_r_proto='0'
-endnetent_r_proto='0'
-endprotoent_r_proto='0'
-endpwent_r_proto='0'
-endservent_r_proto='0'
-eunicefix=':'
-exe_ext=''
-expr='expr'
-extras=''
-fflushNULL='define'
-fflushall='undef'
-find=''
-firstmakefile='makefile'
-flex=''
-fpossize='20'
-fpostype='fpos_t'
-freetype='void'
-from=':'
-full_ar='%%AR%%'
-full_csh='csh'
-full_sed='sed'
-gccansipedantic=''
-gccosandvers=''
-gccversion='3.4.3'
-getgrent_r_proto='0'
-getgrgid_r_proto='0'
-getgrnam_r_proto='0'
-gethostbyaddr_r_proto='0'
-gethostbyname_r_proto='0'
-gethostent_r_proto='0'
-getlogin_r_proto='0'
-getnetbyaddr_r_proto='0'
-getnetbyname_r_proto='0'
-getnetent_r_proto='0'
-getprotobyname_r_proto='0'
-getprotobynumber_r_proto='0'
-getprotoent_r_proto='0'
-getpwent_r_proto='0'
-getpwnam_r_proto='0'
-getpwuid_r_proto='0'
-getservbyname_r_proto='0'
-getservbyport_r_proto='0'
-getservent_r_proto='0'
-getspnam_r_proto='0'
-gidformat='"lu"'
-gidsign='1'
-gidsize='4'
-gidtype='gid_t'
-glibpth='/usr/shlib  /lib /usr/lib /usr/lib/386 /lib/386 /usr/ccs/lib /usr/ucblib /usr/local/lib '
-gmake='gmake'
-gmtime_r_proto='0'
-gnulibc_version=''
-grep='grep'
-groupcat='cat /etc/group'
-groupstype='gid_t'
-gzip='gzip'
-h_fcntl='false'
-h_sysfile='true'
-hint='recommended'
-hostcat='cat /etc/hosts'
-html1dir=' '
-html1direxp=''
-html3dir=' '
-html3direxp=''
-i16size='2'
-i16type='short'
-i32size='4'
-i32type='long'
-i64size='8'
-i64type='long long'
-i8size='1'
-i8type='char'
-i_arpainet='define'
-i_bsdioctl=''
-i_crypt='define'
-i_db='define'
-i_dbm='undef'
-i_dirent='define'
-i_dld='undef'
-i_dlfcn='define'
-i_execinfo='define'
-i_fcntl='undef'
-i_fenv='undef'
-i_float='define'
-i_fp='undef'
-i_fp_class='undef'
-i_gdbm='define'
-i_grp='define'
-i_ieeefp='undef'
-i_inttypes='define'
-i_langinfo='define'
-i_libutil='undef'
-i_limits='define'
-i_locale='define'
-i_machcthr='undef'
-i_malloc='define'
-i_math='define'
-i_memory='undef'
-i_mntent='define'
-i_ndbm='undef'
-i_netdb='define'
-i_neterrno='undef'
-i_netinettcp='define'
-i_niin='define'
-i_poll='define'
-i_prot='undef'
-i_pthread='define'
-i_pwd='define'
-i_quadmath='define'
-i_rpcsvcdbm='undef'
-i_sfio='undef'
-i_sgtty='undef'
-i_shadow='define'
-i_socks='undef'
-i_stdarg='define'
-i_stddef='define'
-i_stdint='define'
-i_stdlib='define'
-i_string='define'
-i_sunmath='undef'
-i_sysaccess='undef'
-i_sysdir='define'
-i_sysfile='define'
-i_sysfilio='undef'
-i_sysin='undef'
-i_sysioctl='define'
-i_syslog='define'
-i_sysmman='define'
-i_sysmode='undef'
-i_sysmount='define'
-i_sysndir='undef'
-i_sysparam='define'
-i_sysresrc='define'
-i_syssecrt='undef'
-i_sysselct='define'
-i_syssockio='undef'
-i_sysstat='define'
-i_sysstatfs='define'
-i_sysstatvfs='define'
-i_systime='define'
-i_systimek='undef'
-i_systimes='define'
-i_systypes='define'
-i_sysuio='define'
-i_sysun='define'
-i_sysutsname='define'
-i_sysvfs='define'
-i_syswait='define'
-i_termio='undef'
-i_termios='define'
-i_time='define'
-i_unistd='define'
-i_ustat='define'
-i_utime='define'
-i_values='define'
-i_varargs='undef'
-i_varhdr='stdarg.h'
-i_vfork='undef'
-ignore_versioned_solibs='y'
-inc_version_list=' '
-inc_version_list_init='0'
-incpath=''
-inews=''
-installbin='/usr/bin'
-initialinstalllocation='/usr/bin'
-installhtml1dir=''
-installhtml3dir=''
-installman1dir=''
-installman3dir=''
-installprefix='/usr'
-installprefixexp='/usr'
-installscript='/usr/bin'
-installsitebin='/usr/bin'
-installsitehtml1dir=''
-installsitehtml3dir=''
-installsiteman1dir=''
-installsiteman3dir=''
-installsitescript='/usr/bin'
-installstyle='lib/perl5'
-installusrbinperl='define'
-installvendorarch=''
-installvendorbin=''
-installvendorhtml1dir=''
-installvendorhtml3dir=''
-installvendorlib=''
-installvendorman1dir=''
-installvendorman3dir=''
-installvendorscript=''
-intsize='4'
-issymlink='test -h'
-ivdformat='"ld"'
-ivsize='4'
-ivtype='long'
-ksh=''
-ld='%%LD%%'
-lddlflags='-shared %%LDFLAGS%%'
-ldflags='%%EXTRA_PERLLIBDIRS%%'
-ldflags_uselargefiles=''
-ldlibpthname='LD_LIBRARY_PATH'
-less='less'
-lib_ext='.a'
-libc=''
-libperl='libperl.so'
-libpth='%%LIBDIRS%%'
-libs='-lgdbm -ldb -ldl -lm -lcrypt -lutil -lc'
-libsdirs='%%LIBDIRS%%'
-libsfiles=' libdl.so libm.so libcrypt.so libutil.so libc.so'
-#libsfound=' /usr/lib/libdl.so /usr/lib/libm.so /usr/lib/libcrypt.so /usr/lib/libutil.so /usr/lib/libc.so'
-libspath='%%LIBDIRS%%'
-libswanted='sfio socket inet nm ndbm gdbm dbm db malloc dl dld ld sun m crypt sec util c cposix posix ucb BSD'
-libswanted_uselargefiles=''
-line=''
-lint=''
-lkflags=''
-ln='ln'
-lns='/bin/ln -s'
-localtime_r_proto='0'
-locincpth=' '
-loclibpth=' '
-longdblkind='3'
-longdblsize='12'
-longlongsize='8'
-longsize='4'
-lp=''
-lpr=''
-ls='ls'
-lseeksize='8'
-lseektype='off_t'
-mail=''
-mailx=''
-make='make'
-make_set_make='#'
-mallocobj=''
-mallocsrc=''
-malloctype='void *'
-man1dir=' '
-man1direxp=''
-man1ext='0'
-man3dir=' '
-man3direxp=''
-man3ext='0'
-mips_type=''
-mistrustnm=''
-mkdir='mkdir'
-mmaptype='void *'
-modetype='mode_t'
-more='more'
-multiarch='undef'
-mv=''
-myarchname='i386-linux-uclibc'
-mydomain='.dev.null'
-myhostname='maia'
-myuname='linux maia 2.6.25 #2 sat apr 19 09:46:49 cest 2008 i686 unknown unknown gnulinux '
-n='-n'
-need_va_copy='undef'
-netdb_hlen_type='size_t'
-netdb_host_type='const void *'
-netdb_name_type='const char *'
-netdb_net_type='in_addr_t'
-nm='nm'
-nm_opt=''
-nm_so_opt='--dynamic'
-nroff='nroff'
-nvEUformat='"E"'
-nvFUformat='"F"'
-nvGUformat='"G"'
-nv_preserves_uv_bits='32'
-nveformat='"e"'
-nvfformat='"f"'
-nvgformat='"g"'
-nvsize='8'
-nvtype='double'
-o_nonblock='O_NONBLOCK'
-obj_ext='.o'
-old_pthread_create_joinable=''
-optimize='-O2'
-orderlib='false'
-osname='linux'
-osvers='2.6.25'
-otherlibdirs=' '
-package='perl5'
-pager='/usr/bin/less'
-passcat='cat /etc/passwd'
-path_sep=':'
-perl5=''
-perl=''
-perl_patchlevel=''
-perladmin='root@maia.dev.null'
-perllibs='-ldl -lm -lcrypt -lutil -lc %%EXTRA_PERLLIBS%%'
-perlpath='/usr/bin/perl'
-pg='pg'
-phostname='hostname'
-pidtype='pid_t'
-plibpth=''
-pmake=''
-pr=''
-prefix='/usr'
-prefixexp='/usr'
-procselfexe='"/proc/self/exe"'
-prototype='define'
-ptrsize='4'
-quadkind='3'
-quadtype='long long'
-randbits='48'
-randfunc='drand48'
-random_r_proto='0'
-randseedtype='long'
-ranlib=':'
-rd_nodata='-1'
-readdir64_r_proto='0'
-readdir_r_proto='0'
-revision='5'
-rm='rm'
-rm_try='/bin/rm -f try try a.out .out try.[cho] try..o core core.try* try.core*'
-rmail=''
-run=''
-runnm='false'
-sPRIEUldbl='"LE"'
-sPRIFUldbl='"LF"'
-sPRIGUldbl='"LG"'
-sPRIXU64='"LX"'
-sPRId64='"Ld"'
-sPRIeldbl='"Le"'
-sPRIfldbl='"Lf"'
-sPRIgldbl='"Lg"'
-sPRIi64='"Li"'
-sPRIo64='"Lo"'
-sPRIu64='"Lu"'
-sPRIx64='"Lx"'
-sSCNfldbl='"Lf"'
-sched_yield='sched_yield()'
-scriptdir='/usr/bin'
-scriptdirexp='/usr/bin'
-sed='sed'
-seedfunc='srand48'
-selectminbits='32'
-selecttype='fd_set *'
-sendmail=''
-setgrent_r_proto='0'
-sethostent_r_proto='0'
-setlocale_r_proto='0'
-setnetent_r_proto='0'
-setprotoent_r_proto='0'
-setpwent_r_proto='0'
-setservent_r_proto='0'
-sh='/bin/sh'
-shar=''
-sharpbang='#!'
-shmattype='void *'
-shortsize='2'
-shrpenv=''
-shsharp='true'
-sig_count='64'
-sig_name='ZERO HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS NUM32 NUM33 RTMIN NUM35 NUM36 NUM37 NUM38 NUM39 NUM40 NUM41 NUM42 NUM43 NUM44 NUM45 NUM46 NUM47 NUM48 NUM49 NUM50 NUM51 NUM52 NUM53 NUM54 NUM55 NUM56 NUM57 NUM58 NUM59 NUM60 NUM61 NUM62 RTMAX IOT CLD POLL UNUSED '
-sig_name_init='"ZERO", "HUP", "INT", "QUIT", "ILL", "TRAP", "ABRT", "BUS", "FPE", "KILL", "USR1", "SEGV", "USR2", "PIPE", "ALRM", "TERM", "STKFLT", "CHLD", "CONT", "STOP", "TSTP", "TTIN", "TTOU", "URG", "XCPU", "XFSZ", "VTALRM", "PROF", "WINCH", "IO", "PWR", "SYS", "NUM32", "NUM33", "RTMIN", "NUM35", "NUM36", "NUM37", "NUM38", "NUM39", "NUM40", "NUM41", "NUM42", "NUM43", "NUM44", "NUM45", "NUM46", "NUM47", "NUM48", "NUM49", "NUM50", "NUM51", "NUM52", "NUM53", "NUM54", "NUM55", "NUM56", "NUM57", "NUM58", "NUM59", "NUM60", "NUM61", "NUM62", "RTMAX", "IOT", "CLD", "POLL", "UNUSED", 0'
-sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 6 17 29 31 '
-sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 6, 17, 29, 31, 0'
-sig_size='68'
-signal_t='void'
-sitearch=''
-sitearchexp=''
-sitebin='/usr/bin'
-sitebinexp='/usr/bin'
-sitehtml1dir=''
-sitehtml1direxp=''
-sitehtml3dir=''
-sitehtml3direxp=''
-sitelib=''
-#sitelib_stem='/usr/lib/perl5/site_perl'
-sitelibexp=''
-siteman1dir=''
-siteman1direxp=''
-siteman3dir=''
-siteman3direxp=''
-siteprefix='/usr'
-siteprefixexp='/usr'
-sitescript='/usr/bin'
-sitescriptexp='/usr/bin'
-sizesize='4'
-sizetype='size_t'
-sleep=''
-smail=''
-so='so'
-sockethdr=''
-socketlib=''
-socksizetype='socklen_t'
-sort='sort'
-spackage='Perl5'
-spitshell='cat'
-srand48_r_proto='0'
-srandom_r_proto='0'
-src='.'
-ssizetype='ssize_t'
-startperl='#!/usr/bin/perl'
-startsh='#!/bin/sh'
-static_ext=' '
-stdchar='char'
-stdio_base='((fp)->_base)'
-stdio_bufsiz='((fp)->_cnt + (fp)->_ptr - (fp)->_base)'
-stdio_cnt='((fp)->_cnt)'
-stdio_filbuf=''
-stdio_ptr='((fp)->_ptr)'
-stdio_stream_array=''
-strerror_r_proto='0'
-#strings='/usr/include/string.h'
-submit=''
-sysman='/usr/share/man/man1'
-tail=''
-tar=''
-targetarch='i386-linux-uclibc'
-tbl=''
-tee=''
-test='test'
-#timeincl='/usr/include/sys/time.h /usr/include/time.h '
-timetype='time_t'
-tmpnam_r_proto='0'
-to=':'
-touch='touch'
-tr='tr'
-trnl='\n'
-troff=''
-ttyname_r_proto='0'
-u16size='2'
-u16type='unsigned short'
-u32size='4'
-u32type='unsigned long'
-u64size='8'
-u64type='unsigned long long'
-u8size='1'
-u8type='unsigned char'
-uidformat='"lu"'
-uidsign='1'
-uidsize='4'
-uidtype='uid_t'
-uname='uname'
-uniq='uniq'
-uquadtype='unsigned long long'
-use5005threads='undef'
-use64bitall='undef'
-use64bitint='undef'
-usecbacktrace='undef'
-usecrosscompile='define'
-usedl='define'
-usefaststdio='undef'
-useithreads='undef'
-uselargefiles='define'
-uselongdouble='undef'
-usemallocwrap='define'
-usemorebits='undef'
-usemultiplicity='undef'
-usemymalloc='n'
-usenm='true'
-useopcode='true'
-useperlio='define'
-useposix='true'
-usequadmath='undef'
-usereentrant='undef'
-userelocatableinc='undef'
-usesfio='false'
-useshrplib='true'
-usesitecustomize='undef'
-usesocks='undef'
-usethreads='undef'
-usevendorprefix='undef'
-usevfork='false'
-usrinc='%%INCDIRS%%'
-uuname=''
-uvXUformat='"lX"'
-uvoformat='"lo"'
-uvsize='4'
-uvtype='unsigned long'
-uvuformat='"lu"'
-uvxformat='"lx"'
-vendorarch=''
-vendorarchexp=''
-vendorbin=''
-vendorbinexp=''
-vendorhtml1dir=' '
-vendorhtml1direxp=''
-vendorhtml3dir=' '
-vendorhtml3direxp=''
-vendorlib=''
-vendorlib_stem=''
-vendorlibexp=''
-vendorman1dir=' '
-vendorman1direxp=''
-vendorman3dir=' '
-vendorman3direxp=''
-vendorprefix=''
-vendorprefixexp=''
-vendorscript=''
-vendorscriptexp=''
-versiononly='undef'
-vi=''
-voidflags='15'
-xlibpth='/usr/lib/386 /lib/386'
-yacc='yacc'
-yaccflags=''
-zcat=''
-zip='zip'
-# Configure command line arguments.
-config_arg0='./Configure'
-config_args='-der'
-config_argc=1
-config_arg1='-der'
-PERL_REVISION=5
-PERL_API_REVISION=5
-PERL_API_SUBVERSION=0
-PERL_PATCHLEVEL=
-PERL_CONFIG_SH=true
-# Fix problem with HiRes timer.
-d_nanosleep='define'
-d_clock_gettime='define'
-d_clock_getres='define'
-d_clock_nanosleep='define'
-d_clock='define'
-
-# New symbols for perl 5.20.0
-bin_ELF='define'
-charbits='8'
-charsize='1'
-d_asctime64='undef'
-d_attribute_deprecated='define'
-d_ctime64='undef'
-d_difftime64='undef'
-d_gdbm_ndbm_h_uses_prototypes='undef'
-d_gdbmndbm_h_uses_prototypes='undef'
-d_getaddrinfo='define'
-d_getnameinfo='define'
-d_gmtime64='undef'
-d_inetntop='define'
-d_inetpton='define'
-d_ip_mreq='define'
-d_ip_mreq_source='define'
-d_ipv6_mreq='%%IPV6%%'
-d_ipv6_mreq_source='undef'
-d_isblank='define'
-d_libname_unique='undef'
-d_localtime64='undef'
-d_mktime64='undef'
-d_ndbm='undef'
-d_ndbm_h_uses_prototypes='undef'
-d_prctl='define'
-d_prctl_set_name='define'
-d_sin6_scope_id='%%IPV6%%'
-d_sockaddr_in6='%%IPV6%%'
-d_sockaddr_sa_len='undef'
-d_static_inline='define'
-d_timegm='define'
-dtrace=''
-extern_C='extern'
-hostosname=''
-i_assert='define'
-i_bfd='undef'
-i_gdbm_ndbm='undef'
-i_gdbmndbm='undef'
-i_mallocmalloc='undef'
-i_stdbool='define'
-i_syspoll='define'
-#incpth='/usr/lib/gcc/i486-slackware-linux/4.8.2/include /usr/local/include /usr/lib/gcc/i486-slackware-linux/4.8.2/include-fixed /usr/include'
-ld_can_script='define'
-#libsfound=' /usr/lib/libgdbm.so /usr/lib/libdb.so /usr/lib/libdl.so /usr/lib/libm.so /usr/lib/libcrypt.so /usr/lib/libutil.so /usr/lib/libc.so'
-nv_overflows_integers_at='256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0'
-perl_static_inline='static __inline__'
-sGMTIME_max='2147483647'
-sGMTIME_min='-2147483648'
-sLOCALTIME_max='2147483647'
-sLOCALTIME_min='-2147483648'
-#sitelib_stem='/usr/local/lib/perl5/site_perl'
-st_ino_sign='1'
-st_ino_size='8'
-#strings='/usr/include/string.h'
-sysroot=''
-targetdir=''
-targetenv=''
-targethost=''
-targetmkdir=''
-targetport=''
-targetsh='/bin/sh'
-#timeincl='/usr/include/sys/time.h /usr/include/time.h '
-usedevel='undef'
-usedtrace='undef'
-usekernprocpathname='undef'
-usensgetexecutablepath='undef'
-useversionedarchname='undef'
-vaproto='define'
-libdb_needs_pthread='N'
-
-# These symbols changed from perl 5.10.0 to 5.20.0 and probably will
-# change again for new versions, so they're included here for
-# future reference
-api_version='22'
-# Always set this to the base version, not the patched one!
-api_versionstring='5.22.0'
-dynamic_ext='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/DosGlob File/Glob Filter/Util/Call GDBM_File Hash/Util Hash/Util/FieldHash I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc Opcode POSIX PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Tie/Hash/NamedCapture Time/HiRes Time/Piece Unicode/Collate XS/APItest XS/Typemap arybase attributes mro re threads threads/shared'
-installarchlib='/usr/lib/perl5/5.22'
-installprivlib='/usr/lib/perl5/5.22'
-installsitearch='/usr/lib/perl5/5.22'
-installsitelib='/usr/lib/perl5/5.22'
-nonxs_ext='Archive/Tar Attribute/Handlers AutoLoader B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Config/Perl/V Devel/SelfStubber Digest Dumpvalue Env Errno Exporter ExtUtils/CBuilder ExtUtils/Command ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS File/Fetch File/Find File/Path File/Temp FileCache Filter/Simple Getopt/Long HTTP/Tiny I18N/Collate I18N/LangTags IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP Locale/Codes Locale/Maketext Locale/Maketext/Simple Math/BigInt Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NEXT Net/Ping Params/Check Parse/CPAN/Meta Perl/OSType PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage Safe Search/Dict SelfLoader Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Memoize Tie/RefHash Time/Local XSLoader autodie autouse base bignum constant encoding/warnings experimental if lib libnet parent perlfaq podlators Unicode/Normalize version'
-privlib='/usr/lib/perl5/5.22'
-privlibexp='/usr/lib/perl5/5.22'
-archlib='/usr/lib/perl5/5.22'
-archlibexp='/usr/lib/perl5/5.22'
-version='5.22.0'
-version_patchlevel_string='version 22 subversion 0'
-PERL_VERSION=22
-PERL_API_VERSION=22
-PERL_SUBVERSION=0
-patchlevel='22'
-ccdlflags='-fPIC -Wl,-rpath,/usr/lib/perl5/5.22/CORE'
-subversion='0'
-extensions='B Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call GDBM_File Hash/Util I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex Time/HiRes Time/Piece XS/APItest XS/Typemap attrs re threads threads/shared Hash/Util/FieldHash Compress/Zlib Errno IO_Compress_Base IO_Compress_Zlib Unicode/Normalize'
-known_extensions='B Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call GDBM_File Hash/Util I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc NDBM_File ODBM_File Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex Time/HiRes Time/Piece Unicode/Normalize Win32 Win32API/File Win32CORE XS/APItest XS/Typemap attrs re threads threads/shared Hash/Util/FieldHash'
-
-# Make perl use these tools instead of the target binaries during build
-hostgenerate='%%HOSTGENERATE%%'
-hostperl='%%HOSTMINIPERL%%'
diff --git a/lang/perl/files/config.sh-mips-mt.in b/lang/perl/files/config.sh-mips-mt.in
deleted file mode 100644 (file)
index c777401..0000000
+++ /dev/null
@@ -1,1227 +0,0 @@
-#!/bin/sh
-#
-# This file was produced by running the Configure script. It holds all the
-# definitions figured out by Configure. Should you modify one of these values,
-# do not forget to propagate your changes by running "Configure -der". You may
-# instead choose to run each of the .SH files by yourself, or "Configure -S".
-#
-
-# Package name      : perl5
-# Source directory  : .
-# Configuration time: Thu Jan 25 03:12:45 MST 2007
-# Configured by     : root
-# Target system     : linux merope 2.4.30 #1 di 23. jan 15:23:42 cet 2007 mips unknown unknown gnulinux 
-
-Author=''
-Date=''
-Header=''
-Id=''
-Locker=''
-Log=''
-RCSfile=''
-Revision=''
-Source=''
-State=''
-_a='.a'
-_exe=''
-_o='.o'
-afs='false'
-afsroot='/afs'
-alignbytes='8'
-ansi2knr=''
-aphostname='/bin/hostname'
-api_revision='5'
-api_subversion='0'
-
-
-ar='ar'
-archname64=''
-archname='mips-linux-uclibc'
-archobjs=''
-asctime_r_proto='REENTRANT_PROTO_B_SB'
-awk='awk'
-baserev='5.0'
-bash=''
-bin='/usr/bin'
-binexp='/usr/bin'
-bison='bison'
-byacc='byacc'
-byteorder='4321'
-c=''
-castflags='0'
-cat='cat'
-cc='%%CC%%'
-cccdlflags='-fPIC'
-ccflags='-D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 %%CFLAGS%%'
-ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
-ccname='gcc'
-ccsymbols=''
-ccversion=''
-cf_by='root'
-cf_email='root@merope.dev.null'
-cf_time='Thu Jan 25 03:12:45 MST 2007'
-chgrp=''
-chmod='chmod'
-chown=''
-clocktype='clock_t'
-comm='comm'
-compress=''
-contains='grep'
-cp='cp'
-cpio=''
-cpp='cpp'
-cpp_stuff='42'
-cppccsymbols=''
-cppflags='-D_REENTRANT -D_GNU_SOURCE %%CFLAGS%%'
-cpplast='-'
-cppminus='-'
-cpprun='%%CPP%%'
-cppstdin='%%CPP%%'
-cppsymbols='__ELF__=1 _FILE_OFFSET_BITS=64 __GLIBC__=2 __GLIBC_MINOR__=2 __GNUC__=3 __GNUC_MINOR__=4 __GNU_LIBRARY__=6 LANGUAGE_C=1 _LANGUAGE_C=1 __LANGUAGE_C=1 __LANGUAGE_C__=1 _LARGEFILE_SOURCE=1 MIPSEL=1 _MIPSEL=1 __MIPSEL=1 __MIPSEL__=1 _MIPS_FPSET=16 _MIPS_ISA=_MIPS_ISA_MIPS1 _MIPS_SIM=1 _MIPS_SZINT=32 _MIPS_SZLONG=32 _MIPS_SZPTR=32 __PIC__=1 _POSIX_C_SOURCE=199506L _POSIX_SOURCE=1 R3000=1 _R3000=1 __R3000=1 __R3000__=1 __STDC__=1 __USE_BSD=1 __USE_FILE_OFFSET64=1 __USE_LARGEFILE=1 __USE_MISC=1 __USE_POSIX=1 __USE_POSIX199309=1 __USE_POSIX199506=1 __USE_POSIX2=1 __USE_SVID=1 linux=1 __linux=1 __linux__=1 mips=1 _mips=1 __mips=1 __mips__=1 __pic__=1 unix=1 __unix=1 __unix__=1'
-crypt_r_proto='%%CRYPT_R_PROTO%%'
-cryptlib=''
-csh='csh'
-ctermid_r_proto='0'
-ctime_r_proto='REENTRANT_PROTO_B_SB'
-d_Gconvert='sprintf((b),"%.*g",(n),(x))'
-d_PRIEUldbl='define'
-d_PRIFUldbl='define'
-d_PRIGUldbl='define'
-d_PRIXU64='define'
-d_PRId64='define'
-d_PRIeldbl='define'
-d_PRIfldbl='define'
-d_PRIgldbl='define'
-d_PRIi64='define'
-d_PRIo64='define'
-d_PRIu64='define'
-d_PRIx64='define'
-d_SCNfldbl='define'
-d__fwalk='undef'
-d_access='define'
-d_accessx='undef'
-d_acosh='define'
-d_aintl='undef'
-d_alarm='define'
-d_archlib='undef'
-d_asctime_r='define'
-d_asinh='define'
-d_atanh='define'
-d_atolf='undef'
-d_atoll='define'
-d_attribute_format='define'
-d_attribute_malloc='define'
-d_attribute_nonnull='define'
-d_attribute_noreturn='define'
-d_attribute_pure='define'
-d_attribute_unused='define'
-d_attribute_warn_unused_result='define'
-d_backtrace='define'
-d_bcmp='define'
-d_bcopy='define'
-d_bsd='undef'
-d_bsdgetpgrp='undef'
-d_bsdsetpgrp='undef'
-d_builtin_choose_expr='define'
-d_builtin_expect='undef'
-d_bzero='define'
-d_c99_variadic_macros='define'
-d_casti32='define'
-d_castneg='define'
-d_cbrt='define'
-d_charvspr='undef'
-d_chown='define'
-d_chroot='define'
-d_chsize='undef'
-d_class='undef'
-d_clearenv='define'
-d_closedir='define'
-d_cmsghdr_s='define'
-d_const='define'
-d_copysign='define'
-d_copysignl='undef'
-d_cplusplus='undef'
-d_crypt='%%CRYPT%%'
-d_crypt_r='%%CRYPT%%'
-d_csh='undef'
-d_ctermid='define'
-d_ctermid_r='undef'
-d_ctime_r='define'
-d_cuserid='define'
-d_dbl_dig='define'
-d_dbminitproto='undef'
-d_difftime='define'
-d_dir_dd_fd='undef'
-d_dirfd='define'
-d_dirnamlen='undef'
-d_dladdr='define'
-d_dlerror='define'
-d_dlopen='define'
-d_dlsymun='undef'
-d_dosuid='undef'
-d_drand48_r='define'
-d_drand48proto='define'
-d_dup2='define'
-d_eaccess='undef'
-d_endgrent='define'
-d_endgrent_r='undef'
-d_endhent='define'
-d_endhostent_r='undef'
-d_endnent='define'
-d_endnetent_r='undef'
-d_endpent='define'
-d_endprotoent_r='undef'
-d_endpwent='define'
-d_endpwent_r='undef'
-d_endsent='define'
-d_endservent_r='undef'
-d_eofnblk='define'
-d_erf='define'
-d_erfc='define'
-d_eunice='undef'
-d_exp2='define'
-d_expm1='define'
-d_faststdio='undef'
-d_fchdir='define'
-d_fchmod='define'
-d_fchown='define'
-d_fcntl='define'
-d_fcntl_can_lock='define'
-d_fd_macros='define'
-d_fd_set='define'
-d_fdim='define'
-d_fds_bits='define'
-d_fegetround='undef'
-d_fgetpos='define'
-d_finite='define'
-d_finitel='undef'
-d_flexfnam='define'
-d_flock='define'
-d_flockproto='define'
-d_fma='define'
-d_fmax='define'
-d_fmin='define'
-d_fork='define'
-d_fp_class='undef'
-d_fp_classify='undef'
-d_fp_classl='undef'
-d_fpathconf='define'
-d_fpclass='undef'
-d_fpclassify='define'
-d_fpclassl='undef'
-d_fpgetround='undef'
-d_fpos64_t='undef'
-d_frexpl='undef'
-d_fs_data_s='undef'
-d_fseeko='define'
-d_fsetpos='define'
-d_fstatfs='define'
-d_fstatvfs='define'
-d_fsync='define'
-d_ftello='define'
-d_ftime='undef'
-d_futimes='undef'
-d_getcwd='define'
-d_getespwnam='undef'
-d_getfsstat='undef'
-d_getgrent='define'
-d_getgrent_r='define'
-d_getgrgid_r='define'
-d_getgrnam_r='define'
-d_getgrps='define'
-d_gethbyaddr='define'
-d_gethbyname='define'
-d_gethent='define'
-d_gethname='define'
-d_gethostbyaddr_r='define'
-d_gethostbyname_r='define'
-d_gethostent_r='define'
-d_gethostprotos='define'
-d_getitimer='define'
-d_getlogin='define'
-d_getlogin_r='define'
-d_getmnt='undef'
-d_getmntent='define'
-d_getnbyaddr='define'
-d_getnbyname='define'
-d_getnent='define'
-d_getnetbyaddr_r='define'
-d_getnetbyname_r='define'
-d_getnetent_r='define'
-d_getnetprotos='define'
-d_getpagsz='define'
-d_getpbyname='define'
-d_getpbynumber='define'
-d_getpent='define'
-d_getpgid='define'
-d_getpgrp2='undef'
-d_getpgrp='define'
-d_getppid='define'
-d_getprior='define'
-d_getprotobyname_r='define'
-d_getprotobynumber_r='define'
-d_getprotoent_r='define'
-d_getprotoprotos='define'
-d_getprpwnam='undef'
-d_getpwent='define'
-d_getpwent_r='define'
-d_getpwnam_r='define'
-d_getpwuid_r='define'
-d_getsbyname='define'
-d_getsbyport='define'
-d_getsent='define'
-d_getservbyname_r='define'
-d_getservbyport_r='define'
-d_getservent_r='define'
-d_getservprotos='define'
-d_getspnam='define'
-d_getspnam_r='define'
-d_gettimeod='define'
-d_gmtime_r='define'
-d_gnulibc='undef'
-d_grpasswd='define'
-d_hasmntopt='define'
-d_htonl='define'
-d_hypot='define'
-d_ilogb='define'
-d_ilogbl='undef'
-d_inc_version_list='undef'
-d_index='undef'
-d_inetaton='define'
-d_int64_t='define'
-d_isascii='define'
-d_isfinite='define'
-d_isfinitel='undef'
-d_isinf='define'
-d_isinfl='define'
-d_isless='undef'
-d_isnan='define'
-d_isnanl='undef'
-d_isnormal='define'
-d_j0='undef'
-d_j0l='undef'
-d_killpg='define'
-d_lc_monetary_2008='define'
-d_lchown='define'
-d_ldbl_dig='define'
-d_ldexpl='define'
-d_lgamma='define'
-d_lgamma_r='define'
-d_libm_lib_version='define'
-d_link='define'
-d_llrint='define'
-d_llrintl='define'
-d_llround='define'
-d_llroundl='define'
-d_localtime_r='define'
-d_localtime_r_needs_tzset='define'
-d_locconv='define'
-d_lockf='define'
-d_log1p='define'
-d_log2='define'
-d_logb='define'
-d_longdbl='define'
-d_longlong='define'
-d_lrint='define'
-d_lrintl='define'
-d_lround='define'
-d_lroundl='define'
-d_lseekproto='define'
-d_lstat='define'
-d_madvise='define'
-d_malloc_good_size='undef'
-d_malloc_size='undef'
-d_mblen='define'
-d_mbstowcs='define'
-d_mbtowc='define'
-d_memchr='define'
-d_memcmp='define'
-d_memcpy='define'
-d_memmove='define'
-d_memset='define'
-d_mkdir='define'
-d_mkdtemp='define'
-d_mkfifo='define'
-d_mkstemp='define'
-d_mkstemps='undef'
-d_mktime='define'
-d_mmap='define'
-d_modfl='undef'
-d_modfl_pow32_bug='undef'
-d_modflproto='undef'
-d_mprotect='define'
-d_msg='define'
-d_msg_ctrunc='define'
-d_msg_dontroute='define'
-d_msg_oob='define'
-d_msg_peek='define'
-d_msg_proxy='define'
-d_msgctl='define'
-d_msgget='define'
-d_msghdr_s='define'
-d_msgrcv='define'
-d_msgsnd='define'
-d_msync='define'
-d_munmap='define'
-d_mymalloc='undef'
-d_nan='define'
-d_nearbyint='define'
-d_nextafter='define'
-d_nexttoward='undef'
-d_nice='define'
-d_nl_langinfo='define'
-d_nv_preserves_uv='define'
-d_nv_zero_is_allbits_zero='define'
-d_off64_t='define'
-d_old_pthread_create_joinable='undef'
-d_oldpthreads='undef'
-d_oldsock='undef'
-d_open3='define'
-d_pathconf='define'
-d_pause='define'
-d_perl_otherlibdirs='undef'
-d_phostname='undef'
-d_pipe='define'
-d_poll='define'
-d_portable='define'
-d_printf_format_null='define'
-d_procselfexe='define'
-d_pseudofork='undef'
-d_pthread_atfork='define'
-d_pthread_attr_setscope='define'
-d_pthread_yield='define'
-d_ptrdiff_t='define'
-d_pwage='undef'
-d_pwchange='undef'
-d_pwclass='undef'
-d_pwcomment='undef'
-d_pwexpire='undef'
-d_pwgecos='define'
-d_pwpasswd='define'
-d_pwquota='undef'
-d_qgcvt='undef'
-d_quad='define'
-d_random_r='define'
-d_re_comp='undef'
-d_readdir64_r='define'
-d_readdir='define'
-d_readdir_r='define'
-d_readlink='define'
-d_readv='define'
-d_recvmsg='define'
-d_regcmp='undef'
-d_regcomp='define'
-d_remainder='define'
-d_remquo='define'
-d_rename='define'
-d_rewinddir='define'
-d_rint='define'
-d_rmdir='define'
-d_round='define'
-d_safebcpy='undef'
-d_safemcpy='undef'
-d_sanemcmp='define'
-d_sbrkproto='define'
-d_scalbn='define'
-d_scalbnl='undef'
-d_sched_yield='define'
-d_scm_rights='define'
-d_seekdir='define'
-d_select='define'
-d_sem='define'
-d_semctl='define'
-d_semctl_semid_ds='define'
-d_semctl_semun='define'
-d_semget='define'
-d_semop='define'
-d_sendmsg='define'
-d_setegid='define'
-d_seteuid='define'
-d_setgrent='define'
-d_setgrent_r='undef'
-d_setgrps='define'
-d_sethent='define'
-d_sethostent_r='undef'
-d_setitimer='define'
-d_setlinebuf='define'
-d_setlocale='define'
-d_setlocale_r='undef'
-d_setnent='define'
-d_setnetent_r='undef'
-d_setpent='define'
-d_setpgid='define'
-d_setpgrp2='undef'
-d_setpgrp='define'
-d_setprior='define'
-d_setproctitle='undef'
-d_setprotoent_r='undef'
-d_setpwent='define'
-d_setpwent_r='undef'
-d_setregid='define'
-d_setresgid='define'
-d_setresuid='define'
-d_setreuid='define'
-d_setrgid='undef'
-d_setruid='undef'
-d_setsent='define'
-d_setservent_r='undef'
-d_setsid='define'
-d_setvbuf='define'
-d_sfio='undef'
-d_shm='define'
-d_shmat='define'
-d_shmatprototype='define'
-d_shmctl='define'
-d_shmdt='define'
-d_shmget='define'
-d_sigaction='define'
-d_signbit='undef'
-d_sigprocmask='define'
-d_sigsetjmp='define'
-d_sitearch='define'
-d_snprintf='define'
-d_sockatmark='undef'
-d_sockatmarkproto='undef'
-d_socket='define'
-d_socklen_t='define'
-d_sockpair='define'
-d_socks5_init='undef'
-d_sprintf_returns_strlen='define'
-d_sqrtl='undef'
-d_srand48_r='define'
-d_srandom_r='define'
-d_sresgproto='define'
-d_sresuproto='define'
-d_stat='define'
-d_statblks='define'
-d_statfs_f_flags='undef'
-d_statfs_s='define'
-d_statvfs='define'
-d_stdio_cnt_lval='undef'
-d_stdio_ptr_lval='undef'
-d_stdio_ptr_lval_nochange_cnt='undef'
-d_stdio_ptr_lval_sets_cnt='undef'
-d_stdio_stream_array='undef'
-d_stdiobase='undef'
-d_stdstdio='undef'
-d_strchr='define'
-d_strcoll='define'
-d_strctcpy='define'
-d_strerrm='strerror(e)'
-d_strerror='define'
-d_strerror_r='define'
-d_strftime='define'
-d_strlcat='define'
-d_strlcpy='define'
-d_strtod='define'
-d_strtol='define'
-d_strtold='define'
-d_strtoll='define'
-d_strtoq='define'
-d_strtoul='define'
-d_strtoull='define'
-d_strtouq='define'
-d_strxfrm='define'
-d_suidsafe='undef'
-d_symlink='define'
-d_syscall='define'
-d_syscallproto='define'
-d_sysconf='define'
-d_sysernlst=''
-d_syserrlst='undef'
-d_system='define'
-d_tcgetpgrp='define'
-d_tcsetpgrp='define'
-d_telldir='define'
-d_telldirproto='define'
-d_tgamma='define'
-d_time='define'
-d_times='define'
-d_tm_tm_gmtoff='define'
-d_tm_tm_zone='define'
-d_tmpnam_r='define'
-d_trunc='define'
-d_truncate='define'
-d_truncl='define'
-d_ttyname_r='define'
-d_tzname='define'
-d_u32align='undef'
-d_ualarm='define'
-d_umask='define'
-d_uname='define'
-d_union_semun='undef'
-d_unordered='undef'
-d_unsetenv='define'
-d_usleep='define'
-d_usleepproto='define'
-d_ustat='define'
-d_vendorarch='undef'
-d_vendorbin='undef'
-d_vendorlib='undef'
-d_vendorscript='undef'
-d_vfork='undef'
-d_void_closedir='undef'
-d_voidsig='define'
-d_voidtty=''
-d_volatile='define'
-d_vprintf='define'
-d_vsnprintf='define'
-d_wait4='define'
-d_waitpid='define'
-d_wcscmp='define'
-d_wcstombs='define'
-d_wcsxfrm='define'
-d_wctomb='define'
-d_writev='define'
-d_xenix='undef'
-date='date'
-db_hashtype='u_int32_t'
-db_prefixtype='size_t'
-db_version_major=''
-db_version_minor=''
-db_version_patch=''
-defvoidused='15'
-direntrytype='struct dirent'
-dlext='so'
-dlsrc='dl_dlopen.xs'
-doublekind='4'
-doublesize='8'
-drand01='drand48()'
-drand48_r_proto='REENTRANT_PROTO_I_ST'
-
-eagain='EAGAIN'
-ebcdic='undef'
-echo='echo'
-egrep='egrep'
-emacs=''
-endgrent_r_proto='0'
-endhostent_r_proto='0'
-endnetent_r_proto='0'
-endprotoent_r_proto='0'
-endpwent_r_proto='0'
-endservent_r_proto='0'
-eunicefix=':'
-exe_ext=''
-expr='expr'
-extras=''
-fflushNULL='define'
-fflushall='undef'
-find=''
-firstmakefile='makefile'
-flex=''
-fpossize='24'
-fpostype='fpos_t'
-freetype='void'
-from=':'
-full_ar='%%AR%%'
-full_csh='csh'
-full_sed='sed'
-gccansipedantic=''
-gccosandvers=''
-gccversion='3.4.3'
-getgrent_r_proto='REENTRANT_PROTO_I_SBWR'
-getgrgid_r_proto='REENTRANT_PROTO_I_TSBWR'
-getgrnam_r_proto='REENTRANT_PROTO_I_CSBWR'
-gethostbyaddr_r_proto='REENTRANT_PROTO_I_TsISBWRE'
-gethostbyname_r_proto='REENTRANT_PROTO_I_CSBWRE'
-gethostent_r_proto='REENTRANT_PROTO_I_SBWRE'
-getlogin_r_proto='REENTRANT_PROTO_I_BW'
-getnetbyaddr_r_proto='REENTRANT_PROTO_I_uISBWRE'
-getnetbyname_r_proto='REENTRANT_PROTO_I_CSBWRE'
-getnetent_r_proto='REENTRANT_PROTO_I_SBWRE'
-getprotobyname_r_proto='REENTRANT_PROTO_I_CSBWR'
-getprotobynumber_r_proto='REENTRANT_PROTO_I_ISBWR'
-getprotoent_r_proto='REENTRANT_PROTO_I_SBWR'
-getpwent_r_proto='REENTRANT_PROTO_I_SBWR'
-getpwnam_r_proto='REENTRANT_PROTO_I_CSBWR'
-getpwuid_r_proto='REENTRANT_PROTO_I_TSBWR'
-getservbyname_r_proto='REENTRANT_PROTO_I_CCSBWR'
-getservbyport_r_proto='REENTRANT_PROTO_I_ICSBWR'
-getservent_r_proto='REENTRANT_PROTO_I_SBWR'
-getspnam_r_proto='REENTRANT_PROTO_I_CSBWR'
-gidformat='"lu"'
-gidsign='1'
-gidsize='4'
-gidtype='gid_t'
-glibpth='/usr/shlib  /lib /usr/lib /usr/lib/386 /lib/386 /usr/ccs/lib /usr/ucblib /usr/local/lib '
-gmake='gmake'
-gmtime_r_proto='REENTRANT_PROTO_S_TS'
-gnulibc_version=''
-grep='grep'
-groupcat='cat /etc/group'
-groupstype='gid_t'
-gzip='gzip'
-h_fcntl='false'
-h_sysfile='true'
-hint='recommended'
-hostcat='cat /etc/hosts'
-html1dir=' '
-html1direxp=''
-html3dir=' '
-html3direxp=''
-i16size='2'
-i16type='short'
-i32size='4'
-i32type='long'
-i64size='8'
-i64type='long long'
-i8size='1'
-i8type='char'
-i_arpainet='define'
-i_bsdioctl=''
-i_crypt='%%CRYPT%%'
-i_db='define'
-i_dbm='undef'
-i_dirent='define'
-i_dld='undef'
-i_dlfcn='define'
-i_execinfo='define'
-i_fcntl='undef'
-i_fenv='undef'
-i_float='define'
-i_fp='undef'
-i_fp_class='undef'
-i_gdbm='define'
-i_grp='define'
-i_ieeefp='undef'
-i_inttypes='define'
-i_langinfo='define'
-i_libutil='undef'
-i_limits='define'
-i_locale='define'
-i_machcthr='undef'
-i_malloc='define'
-i_math='define'
-i_memory='undef'
-i_mntent='define'
-i_ndbm='undef'
-i_netdb='define'
-i_neterrno='undef'
-i_netinettcp='define'
-i_niin='define'
-i_poll='define'
-i_prot='undef'
-i_pthread='define'
-i_pwd='define'
-i_quadmath='define'
-i_rpcsvcdbm='undef'
-i_sfio='undef'
-i_sgtty='undef'
-i_shadow='define'
-i_socks='undef'
-i_stdarg='define'
-i_stddef='define'
-i_stdint='define'
-i_stdlib='define'
-i_string='define'
-i_sunmath='undef'
-i_sysaccess='undef'
-i_sysdir='define'
-i_sysfile='define'
-i_sysfilio='undef'
-i_sysin='undef'
-i_sysioctl='define'
-i_syslog='define'
-i_sysmman='define'
-i_sysmode='undef'
-i_sysmount='define'
-i_sysndir='undef'
-i_sysparam='define'
-i_sysresrc='define'
-i_syssecrt='undef'
-i_sysselct='define'
-i_syssockio='undef'
-i_sysstat='define'
-i_sysstatfs='define'
-i_sysstatvfs='define'
-i_systime='define'
-i_systimek='undef'
-i_systimes='define'
-i_systypes='define'
-i_sysuio='define'
-i_sysun='define'
-i_sysutsname='define'
-i_sysvfs='define'
-i_syswait='define'
-i_termio='undef'
-i_termios='define'
-i_time='define'
-i_unistd='define'
-i_ustat='define'
-i_utime='define'
-i_values='define'
-i_varargs='undef'
-i_varhdr='stdarg.h'
-i_vfork='undef'
-ignore_versioned_solibs='y'
-inc_version_list=' '
-inc_version_list_init='0'
-incpath=''
-inews=''
-
-installbin='/usr/bin'
-initialinstalllocation='/usr/bin'
-installhtml1dir=''
-installhtml3dir=''
-installman1dir=''
-installman3dir=''
-installprefix='/usr'
-installprefixexp='/usr'
-
-installscript='/usr/bin'
-
-installsitebin='/usr/bin'
-installsitehtml1dir=''
-installsitehtml3dir=''
-
-installsiteman1dir=''
-installsiteman3dir=''
-installsitescript='/usr/bin'
-installstyle='lib/perl5'
-installusrbinperl='define'
-installvendorarch=''
-installvendorbin=''
-installvendorhtml1dir=''
-installvendorhtml3dir=''
-installvendorlib=''
-installvendorman1dir=''
-installvendorman3dir=''
-installvendorscript=''
-intsize='4'
-issymlink='test -h'
-ivdformat='"ld"'
-ivsize='4'
-ivtype='long'
-ksh=''
-ld='%%LD%%'
-lddlflags='-shared %%LDFLAGS%%'
-ldflags='%%EXTRA_PERLLIBDIRS%%'
-ldflags_uselargefiles=''
-ldlibpthname='LD_LIBRARY_PATH'
-less='less'
-lib_ext='.a'
-libc=''
-libperl='libperl.so'
-libpth='%%LIBDIRS%%'
-libs='-lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread -lc'
-libsdirs='%%LIBDIRS%%'
-libsfiles=' libdl.so libm.so libcrypt.so libutil.so libpthread.so libc.so'
-#libsfound=' /usr/lib/libdl.so /usr/lib/libm.so /usr/lib/libcrypt.so /usr/lib/libutil.so /usr/lib/libc.so'
-libspath='%%LIBDIRS%%'
-libswanted='sfio socket inet nm ndbm gdbm dbm db malloc dl dld ld sun m crypt sec util pthread c cposix posix ucb BSD'
-libswanted_uselargefiles=''
-line=''
-lint=''
-lkflags=''
-ln='ln'
-lns='/bin/ln -s'
-localtime_r_proto='REENTRANT_PROTO_S_TS'
-locincpth=' '
-loclibpth=' '
-longdblkind='0'
-longdblsize='8'
-longlongsize='8'
-longsize='4'
-lp=''
-lpr=''
-ls='ls'
-lseeksize='8'
-lseektype='off_t'
-mail=''
-mailx=''
-make='make'
-make_set_make='#'
-mallocobj=''
-mallocsrc=''
-malloctype='void *'
-man1dir=' '
-man1direxp=''
-man1ext='0'
-man3dir=' '
-man3direxp=''
-man3ext='0'
-mips_type=''
-mistrustnm=''
-mkdir='mkdir'
-mmaptype='void *'
-modetype='mode_t'
-more='more'
-multiarch='undef'
-mv=''
-myarchname='mips-linux-uclibc'
-mydomain='.dev.null'
-myhostname='merope'
-myuname='linux merope 2.4.30 #1 di 23. jan 15:23:42 cet 2007 mips unknown unknown gnulinux '
-n='-n'
-need_va_copy='undef'
-netdb_hlen_type='size_t'
-netdb_host_type='const void *'
-netdb_name_type='const char *'
-netdb_net_type='in_addr_t'
-nm='nm'
-nm_opt=''
-nm_so_opt='--dynamic'
-
-nroff='nroff'
-nvEUformat='"E"'
-nvFUformat='"F"'
-nvGUformat='"G"'
-nv_preserves_uv_bits='32'
-nveformat='"e"'
-nvfformat='"f"'
-nvgformat='"g"'
-nvsize='8'
-nvtype='double'
-o_nonblock='O_NONBLOCK'
-obj_ext='.o'
-old_pthread_create_joinable=''
-optimize='-O2'
-orderlib='false'
-osname='linux'
-osvers='2.4.30'
-otherlibdirs=' '
-package='perl5'
-pager='/usr/bin/less'
-passcat='cat /etc/passwd'
-
-path_sep=':'
-perl5=''
-perl=''
-perl_patchlevel=''
-perladmin='root@merope.dev.null'
-perllibs='-ldl -lm -lcrypt -lutil -lpthread -lc %%EXTRA_PERLLIBS%%'
-perlpath='/usr/bin/perl'
-pg='pg'
-phostname='hostname'
-pidtype='pid_t'
-plibpth=''
-pmake=''
-pr=''
-prefix='/usr'
-prefixexp='/usr'
-
-
-procselfexe='"/proc/self/exe"'
-prototype='define'
-ptrsize='4'
-quadkind='3'
-quadtype='long long'
-randbits='48'
-randfunc='drand48'
-random_r_proto='REENTRANT_PROTO_I_St'
-randseedtype='long'
-ranlib=':'
-rd_nodata='-1'
-readdir64_r_proto='REENTRANT_PROTO_I_TSR'
-readdir_r_proto='REENTRANT_PROTO_I_TSR'
-revision='5'
-rm='rm'
-rm_try='/bin/rm -f try try a.out .out try.[cho] try..o core core.try* try.core*'
-rmail=''
-run=''
-runnm='false'
-sPRIEUldbl='"E"'
-sPRIFUldbl='"F"'
-sPRIGUldbl='"G"'
-sPRIXU64='"LX"'
-sPRId64='"Ld"'
-sPRIeldbl='"e"'
-sPRIfldbl='"f"'
-sPRIgldbl='"g"'
-sPRIi64='"Li"'
-sPRIo64='"Lo"'
-sPRIu64='"Lu"'
-sPRIx64='"Lx"'
-sSCNfldbl='"f"'
-sched_yield='sched_yield()'
-scriptdir='/usr/bin'
-scriptdirexp='/usr/bin'
-sed='sed'
-seedfunc='srand48'
-selectminbits='32'
-selecttype='fd_set *'
-sendmail=''
-setgrent_r_proto='0'
-sethostent_r_proto='0'
-setlocale_r_proto='0'
-setnetent_r_proto='0'
-setprotoent_r_proto='0'
-setpwent_r_proto='0'
-setservent_r_proto='0'
-sh='/bin/sh'
-shar=''
-sharpbang='#!'
-shmattype='void *'
-shortsize='2'
-shrpenv=''
-shsharp='true'
-sig_count='128'
-sig_name='ZERO HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM USR1 USR2 CHLD PWR WINCH URG IO STOP TSTP CONT TTIN TTOU VTALRM PROF XCPU XFSZ RTMIN NUM33 NUM34 NUM35 NUM36 NUM37 NUM38 NUM39 NUM40 NUM41 NUM42 NUM43 NUM44 NUM45 NUM46 NUM47 NUM48 NUM49 NUM50 NUM51 NUM52 NUM53 NUM54 NUM55 NUM56 NUM57 NUM58 NUM59 NUM60 NUM61 NUM62 NUM63 NUM64 NUM65 NUM66 NUM67 NUM68 NUM69 NUM70 NUM71 NUM72 NUM73 NUM74 NUM75 NUM76 NUM77 NUM78 NUM79 NUM80 NUM81 NUM82 NUM83 NUM84 NUM85 NUM86 NUM87 NUM88 NUM89 NUM90 NUM91 NUM92 NUM93 NUM94 NUM95 NUM96 NUM97 NUM98 NUM99 NUM100 NUM101 NUM102 NUM103 NUM104 NUM105 NUM106 NUM107 NUM108 NUM109 NUM110 NUM111 NUM112 NUM113 NUM114 NUM115 NUM116 NUM117 NUM118 NUM119 NUM120 NUM121 NUM122 NUM123 NUM124 NUM125 NUM126 RTMAX IOT CLD POLL '
-sig_name_init='"ZERO", "HUP", "INT", "QUIT", "ILL", "TRAP", "ABRT", "EMT", "FPE", "KILL", "BUS", "SEGV", "SYS", "PIPE", "ALRM", "TERM", "USR1", "USR2", "CHLD", "PWR", "WINCH", "URG", "IO", "STOP", "TSTP", "CONT", "TTIN", "TTOU", "VTALRM", "PROF", "XCPU", "XFSZ", "RTMIN", "NUM33", "NUM34", "NUM35", "NUM36", "NUM37", "NUM38", "NUM39", "NUM40", "NUM41", "NUM42", "NUM43", "NUM44", "NUM45", "NUM46", "NUM47", "NUM48", "NUM49", "NUM50", "NUM51", "NUM52", "NUM53", "NUM54", "NUM55", "NUM56", "NUM57", "NUM58", "NUM59", "NUM60", "NUM61", "NUM62", "NUM63", "NUM64", "NUM65", "NUM66", "NUM67", "NUM68", "NUM69", "NUM70", "NUM71", "NUM72", "NUM73", "NUM74", "NUM75", "NUM76", "NUM77", "NUM78", "NUM79", "NUM80", "NUM81", "NUM82", "NUM83", "NUM84", "NUM85", "NUM86", "NUM87", "NUM88", "NUM89", "NUM90", "NUM91", "NUM92", "NUM93", "NUM94", "NUM95", "NUM96", "NUM97", "NUM98", "NUM99", "NUM100", "NUM101", "NUM102", "NUM103", "NUM104", "NUM105", "NUM106", "NUM107", "NUM108", "NUM109", "NUM110", "NUM 111", "NUM112", "NUM113", "NUM114", "NUM115", "NUM116", "NUM117", "NUM118", "NUM119", "NUM120", "NUM121", "NUM122", "NUM123", "NUM124", "NUM125", "NUM126", "RTMAX", "IOT", "CLD", "POLL", 0'
-sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 6 18 22 '
-sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 6, 18, 22, 0'
-sig_size='131'
-signal_t='void'
-sitearch=''
-sitearchexp=''
-sitebin='/usr/bin'
-sitebinexp='/usr/bin'
-sitehtml1dir=''
-sitehtml1direxp=''
-sitehtml3dir=''
-sitehtml3direxp=''
-sitelib=''
-#sitelib_stem='/usr/lib/perl5/site_perl'
-sitelibexp=''
-siteman1dir=''
-siteman1direxp=''
-siteman3dir=''
-siteman3direxp=''
-siteprefix='/usr'
-siteprefixexp='/usr'
-sitescript='/usr/bin'
-sitescriptexp='/usr/bin'
-sizesize='4'
-sizetype='size_t'
-sleep=''
-smail=''
-so='so'
-sockethdr=''
-socketlib=''
-socksizetype='socklen_t'
-sort='sort'
-spackage='Perl5'
-spitshell='cat'
-srand48_r_proto='REENTRANT_PROTO_I_LS'
-srandom_r_proto='REENTRANT_PROTO_I_TS'
-src='.'
-ssizetype='ssize_t'
-startperl='#!/usr/bin/perl'
-startsh='#!/bin/sh'
-static_ext=' '
-stdchar='char'
-stdio_base='((fp)->_base)'
-stdio_bufsiz='((fp)->_cnt + (fp)->_ptr - (fp)->_base)'
-stdio_cnt='((fp)->_cnt)'
-stdio_filbuf=''
-stdio_ptr='((fp)->_ptr)'
-stdio_stream_array=''
-strerror_r_proto='REENTRANT_PROTO_B_IBW'
-#strings='/usr/include/string.h'
-submit=''
-sysman='/usr/share/man/man1'
-tail=''
-tar=''
-targetarch='mips-linux-uclibc'
-tbl=''
-tee=''
-test='test'
-#timeincl='/usr/include/sys/time.h /usr/include/time.h '
-timetype='time_t'
-tmpnam_r_proto='REENTRANT_PROTO_B_B'
-to=':'
-touch='touch'
-tr='tr'
-trnl='\n'
-troff=''
-ttyname_r_proto='REENTRANT_PROTO_I_IBW'
-u16size='2'
-u16type='unsigned short'
-u32size='4'
-u32type='unsigned long'
-u64size='8'
-u64type='unsigned long long'
-u8size='1'
-u8type='unsigned char'
-uidformat='"lu"'
-uidsign='1'
-uidsize='4'
-uidtype='uid_t'
-uname='uname'
-uniq='uniq'
-uquadtype='unsigned long long'
-use5005threads='undef'
-use64bitall='undef'
-use64bitint='undef'
-usecbacktrace='undef'
-usecrosscompile='define'
-usedl='define'
-usefaststdio='undef'
-useithreads='define'
-uselargefiles='define'
-uselongdouble='undef'
-usemallocwrap='define'
-usemorebits='undef'
-usemultiplicity='define'
-usemymalloc='n'
-usenm='true'
-useopcode='true'
-useperlio='define'
-useposix='true'
-usequadmath='undef'
-usereentrant='undef'
-userelocatableinc='undef'
-usesfio='false'
-useshrplib='true'
-usesitecustomize='undef'
-usesocks='undef'
-usethreads='define'
-usevendorprefix='undef'
-usevfork='false'
-usrinc='%%INCDIRS%%'
-uuname=''
-uvXUformat='"lX"'
-uvoformat='"lo"'
-uvsize='4'
-uvtype='unsigned long'
-uvuformat='"lu"'
-uvxformat='"lx"'
-vendorarch=''
-vendorarchexp=''
-vendorbin=''
-vendorbinexp=''
-vendorhtml1dir=' '
-vendorhtml1direxp=''
-vendorhtml3dir=' '
-vendorhtml3direxp=''
-vendorlib=''
-vendorlib_stem=''
-vendorlibexp=''
-vendorman1dir=' '
-vendorman1direxp=''
-vendorman3dir=' '
-vendorman3direxp=''
-vendorprefix=''
-vendorprefixexp=''
-vendorscript=''
-vendorscriptexp=''
-
-
-versiononly='undef'
-vi=''
-voidflags='15'
-xlibpth='/usr/lib/386 /lib/386'
-yacc='yacc'
-yaccflags=''
-zcat=''
-zip='zip'
-# Configure command line arguments.
-config_arg0='./Configure'
-config_args='-der -Dusethreads'
-config_argc=2
-config_arg1='-der'
-config_arg2='-Dusethreads'
-PERL_REVISION=5
-PERL_API_REVISION=5
-
-PERL_API_SUBVERSION=0
-PERL_PATCHLEVEL=
-PERL_CONFIG_SH=true
-# Fix problem with HiRes timer.
-d_nanosleep='define'
-d_clock_gettime='define'
-d_clock_getres='define'
-d_clock_nanosleep='define'
-d_clock='define'
-
-# New symbols for perl 5.20.0
-bin_ELF='define'
-charbits='8'
-charsize='1'
-d_asctime64='undef'
-d_attribute_deprecated='define'
-d_ctime64='undef'
-d_difftime64='undef'
-d_gdbm_ndbm_h_uses_prototypes='undef'
-d_gdbmndbm_h_uses_prototypes='undef'
-d_getaddrinfo='define'
-d_getnameinfo='define'
-d_gmtime64='undef'
-d_inetntop='define'
-d_inetpton='define'
-d_ip_mreq='define'
-d_ip_mreq_source='define'
-d_ipv6_mreq='%%IPV6%%'
-d_ipv6_mreq_source='undef'
-d_isblank='define'
-d_libname_unique='undef'
-d_localtime64='undef'
-d_mktime64='undef'
-d_ndbm='undef'
-d_ndbm_h_uses_prototypes='undef'
-d_prctl='define'
-d_prctl_set_name='define'
-d_sin6_scope_id='%%IPV6%%'
-d_sockaddr_in6='%%IPV6%%'
-d_sockaddr_sa_len='undef'
-d_static_inline='define'
-d_timegm='define'
-dtrace=''
-extern_C='extern'
-hostosname=''
-i_assert='define'
-i_bfd='undef'
-i_gdbm_ndbm='undef'
-i_gdbmndbm='undef'
-i_mallocmalloc='undef'
-i_stdbool='define'
-i_syspoll='define'
-#incpth='/usr/lib/gcc/i486-slackware-linux/4.8.2/include /usr/local/include /usr/lib/gcc/i486-slackware-linux/4.8.2/include-fixed /usr/include'
-ld_can_script='define'
-#libsfound=' /usr/lib/libgdbm.so /usr/lib/libdb.so /usr/lib/libdl.so /usr/lib/libm.so /usr/lib/libcrypt.so /usr/lib/libutil.so /usr/lib/libc.so'
-nv_overflows_integers_at='256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0'
-perl_static_inline='static __inline__'
-sGMTIME_max='2147483647'
-sGMTIME_min='-2147483648'
-sLOCALTIME_max='2147483647'
-sLOCALTIME_min='-2147483648'
-#sitelib_stem='/usr/local/lib/perl5/site_perl'
-st_ino_sign='1'
-st_ino_size='8'
-#strings='/usr/include/string.h'
-sysroot=''
-targetdir=''
-targetenv=''
-targethost=''
-targetmkdir=''
-targetport=''
-targetsh='/bin/sh'
-#timeincl='/usr/include/sys/time.h /usr/include/time.h '
-usedevel='undef'
-usedtrace='undef'
-usekernprocpathname='undef'
-usensgetexecutablepath='undef'
-useversionedarchname='undef'
-vaproto='define'
-libdb_needs_pthread='N'
-
-# These symbols changed from perl 5.10.0 to 5.20.0 and probably will
-# change again for new versions, so they're included here for
-# future reference
-api_version='22'
-# Always set this to the base version, not the patched one!
-api_versionstring='5.22.0'
-dynamic_ext='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/DosGlob File/Glob Filter/Util/Call GDBM_File Hash/Util Hash/Util/FieldHash I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc Opcode POSIX PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Tie/Hash/NamedCapture Time/HiRes Time/Piece Unicode/Collate XS/APItest XS/Typemap arybase attributes mro re threads threads/shared'
-installarchlib='/usr/lib/perl5/5.22'
-installprivlib='/usr/lib/perl5/5.22'
-installsitearch='/usr/lib/perl5/5.22'
-installsitelib='/usr/lib/perl5/5.22'
-nonxs_ext='Archive/Tar Attribute/Handlers AutoLoader B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Config/Perl/V Devel/SelfStubber Digest Dumpvalue Env Errno Exporter ExtUtils/CBuilder ExtUtils/Command ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS File/Fetch File/Find File/Path File/Temp FileCache Filter/Simple Getopt/Long HTTP/Tiny I18N/Collate I18N/LangTags IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP Locale/Codes Locale/Maketext Locale/Maketext/Simple Math/BigInt Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NEXT Net/Ping Params/Check Parse/CPAN/Meta Perl/OSType PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage Safe Search/Dict SelfLoader Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Memoize Tie/RefHash Time/Local XSLoader autodie autouse base bignum constant encoding/warnings experimental if lib libnet parent perlfaq podlators Unicode/Normalize version'
-privlib='/usr/lib/perl5/5.22'
-privlibexp='/usr/lib/perl5/5.22'
-archlib='/usr/lib/perl5/5.22'
-archlibexp='/usr/lib/perl5/5.22'
-version='5.22.0'
-version_patchlevel_string='version 22 subversion 0'
-PERL_VERSION=22
-PERL_API_VERSION=22
-PERL_SUBVERSION=0
-patchlevel='22'
-ccdlflags='-fPIC -Wl,-rpath,/usr/lib/perl5/5.22/CORE'
-subversion='0'
-extensions='B Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call GDBM_File Hash/Util I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex Time/HiRes Time/Piece XS/APItest XS/Typemap attrs re threads threads/shared Hash/Util/FieldHash Compress/Zlib Errno IO_Compress_Base IO_Compress_Zlib Unicode/Normalize'
-known_extensions='B Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call GDBM_File Hash/Util I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc NDBM_File ODBM_File Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex Time/HiRes Time/Piece Unicode/Normalize Win32 Win32API/File Win32CORE XS/APItest XS/Typemap attrs re threads threads/shared Hash/Util/FieldHash'
-
-# Make perl use these tools instead of the target binaries during build
-hostgenerate='%%HOSTGENERATE%%'
-hostperl='%%HOSTMINIPERL%%'
diff --git a/lang/perl/files/config.sh-mips.in b/lang/perl/files/config.sh-mips.in
deleted file mode 100644 (file)
index 585cf62..0000000
+++ /dev/null
@@ -1,1226 +0,0 @@
-#!/bin/sh
-#
-# This file was produced by running the Configure script. It holds all the
-# definitions figured out by Configure. Should you modify one of these values,
-# do not forget to propagate your changes by running "Configure -der". You may
-# instead choose to run each of the .SH files by yourself, or "Configure -S".
-#
-
-# Package name      : perl5
-# Source directory  : .
-# Configuration time: Thu Jan 25 03:12:45 MST 2007
-# Configured by     : root
-# Target system     : linux merope 2.4.30 #1 di 23. jan 15:23:42 cet 2007 mips unknown unknown gnulinux 
-
-Author=''
-Date=''
-Header=''
-Id=''
-Locker=''
-Log=''
-RCSfile=''
-Revision=''
-Source=''
-State=''
-_a='.a'
-_exe=''
-_o='.o'
-afs='false'
-afsroot='/afs'
-alignbytes='8'
-ansi2knr=''
-aphostname='/bin/hostname'
-api_revision='5'
-api_subversion='0'
-
-
-ar='ar'
-archname64=''
-archname='mips-linux-uclibc'
-archobjs=''
-asctime_r_proto='0'
-awk='awk'
-baserev='5.0'
-bash=''
-bin='/usr/bin'
-binexp='/usr/bin'
-bison='bison'
-byacc='byacc'
-byteorder='4321'
-c=''
-castflags='0'
-cat='cat'
-cc='%%CC%%'
-cccdlflags='-fPIC'
-ccflags='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 %%CFLAGS%%'
-ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
-ccname='gcc'
-ccsymbols=''
-ccversion=''
-cf_by='root'
-cf_email='root@merope.dev.null'
-cf_time='Thu Jan 25 03:12:45 MST 2007'
-chgrp=''
-chmod='chmod'
-chown=''
-clocktype='clock_t'
-comm='comm'
-compress=''
-contains='grep'
-cp='cp'
-cpio=''
-cpp='cpp'
-cpp_stuff='42'
-cppccsymbols=''
-cppflags='%%CFLAGS%%'
-cpplast='-'
-cppminus='-'
-cpprun='%%CPP%%'
-cppstdin='%%CPP%%'
-cppsymbols='__ELF__=1 _FILE_OFFSET_BITS=64 __GLIBC__=2 __GLIBC_MINOR__=2 __GNUC__=3 __GNUC_MINOR__=4 __GNU_LIBRARY__=6 LANGUAGE_C=1 _LANGUAGE_C=1 __LANGUAGE_C=1 __LANGUAGE_C__=1 _LARGEFILE_SOURCE=1 MIPSEL=1 _MIPSEL=1 __MIPSEL=1 __MIPSEL__=1 _MIPS_FPSET=16 _MIPS_ISA=_MIPS_ISA_MIPS1 _MIPS_SIM=1 _MIPS_SZINT=32 _MIPS_SZLONG=32 _MIPS_SZPTR=32 __PIC__=1 _POSIX_C_SOURCE=199506L _POSIX_SOURCE=1 R3000=1 _R3000=1 __R3000=1 __R3000__=1 __STDC__=1 __USE_BSD=1 __USE_FILE_OFFSET64=1 __USE_LARGEFILE=1 __USE_MISC=1 __USE_POSIX=1 __USE_POSIX199309=1 __USE_POSIX199506=1 __USE_POSIX2=1 __USE_SVID=1 linux=1 __linux=1 __linux__=1 mips=1 _mips=1 __mips=1 __mips__=1 __pic__=1 unix=1 __unix=1 __unix__=1'
-crypt_r_proto='0'
-cryptlib=''
-csh='csh'
-ctermid_r_proto='0'
-ctime_r_proto='0'
-d_Gconvert='sprintf((b),"%.*g",(n),(x))'
-d_PRIEUldbl='define'
-d_PRIFUldbl='define'
-d_PRIGUldbl='define'
-d_PRIXU64='define'
-d_PRId64='define'
-d_PRIeldbl='define'
-d_PRIfldbl='define'
-d_PRIgldbl='define'
-d_PRIi64='define'
-d_PRIo64='define'
-d_PRIu64='define'
-d_PRIx64='define'
-d_SCNfldbl='define'
-d__fwalk='undef'
-d_access='define'
-d_accessx='undef'
-d_acosh='define'
-d_aintl='undef'
-d_alarm='define'
-d_archlib='undef'
-d_asctime_r='undef'
-d_asinh='define'
-d_atanh='define'
-d_atolf='undef'
-d_atoll='define'
-d_attribute_format='define'
-d_attribute_malloc='define'
-d_attribute_nonnull='define'
-d_attribute_noreturn='define'
-d_attribute_pure='define'
-d_attribute_unused='define'
-d_attribute_warn_unused_result='define'
-d_backtrace='define'
-d_bcmp='define'
-d_bcopy='define'
-d_bsd='undef'
-d_bsdgetpgrp='undef'
-d_bsdsetpgrp='undef'
-d_builtin_choose_expr='define'
-d_builtin_expect='undef'
-d_bzero='define'
-d_c99_variadic_macros='define'
-d_casti32='define'
-d_castneg='define'
-d_cbrt='define'
-d_charvspr='undef'
-d_chown='define'
-d_chroot='define'
-d_chsize='undef'
-d_class='undef'
-d_clearenv='define'
-d_closedir='define'
-d_cmsghdr_s='define'
-d_const='define'
-d_copysign='define'
-d_copysignl='undef'
-d_cplusplus='undef'
-d_crypt='define'
-d_crypt_r='undef'
-d_csh='undef'
-d_ctermid='define'
-d_ctermid_r='undef'
-d_ctime_r='undef'
-d_cuserid='define'
-d_dbl_dig='define'
-d_dbminitproto='undef'
-d_difftime='define'
-d_dir_dd_fd='undef'
-d_dirfd='define'
-d_dirnamlen='undef'
-d_dladdr='define'
-d_dlerror='define'
-d_dlopen='define'
-d_dlsymun='undef'
-d_dosuid='undef'
-d_drand48_r='undef'
-d_drand48proto='define'
-d_dup2='define'
-d_eaccess='undef'
-d_endgrent='define'
-d_endgrent_r='undef'
-d_endhent='define'
-d_endhostent_r='undef'
-d_endnent='define'
-d_endnetent_r='undef'
-d_endpent='define'
-d_endprotoent_r='undef'
-d_endpwent='define'
-d_endpwent_r='undef'
-d_endsent='define'
-d_endservent_r='undef'
-d_eofnblk='define'
-d_erf='define'
-d_erfc='define'
-d_eunice='undef'
-d_exp2='define'
-d_expm1='define'
-d_faststdio='undef'
-d_fchdir='define'
-d_fchmod='define'
-d_fchown='define'
-d_fcntl='define'
-d_fcntl_can_lock='define'
-d_fd_macros='define'
-d_fd_set='define'
-d_fdim='define'
-d_fds_bits='undef'
-d_fegetround='undef'
-d_fgetpos='define'
-d_finite='define'
-d_finitel='undef'
-d_flexfnam='define'
-d_flock='define'
-d_flockproto='define'
-d_fma='define'
-d_fmax='define'
-d_fmin='define'
-d_fork='define'
-d_fp_class='undef'
-d_fp_classify='undef'
-d_fp_classl='undef'
-d_fpathconf='define'
-d_fpclass='undef'
-d_fpclassify='define'
-d_fpclassl='undef'
-d_fpgetround='undef'
-d_fpos64_t='undef'
-d_frexpl='undef'
-d_fs_data_s='undef'
-d_fseeko='define'
-d_fsetpos='define'
-d_fstatfs='define'
-d_fstatvfs='define'
-d_fsync='define'
-d_ftello='define'
-d_ftime='undef'
-d_futimes='undef'
-d_getcwd='define'
-d_getespwnam='undef'
-d_getfsstat='undef'
-d_getgrent='define'
-d_getgrent_r='undef'
-d_getgrgid_r='undef'
-d_getgrnam_r='undef'
-d_getgrps='define'
-d_gethbyaddr='define'
-d_gethbyname='define'
-d_gethent='define'
-d_gethname='define'
-d_gethostbyaddr_r='undef'
-d_gethostbyname_r='undef'
-d_gethostent_r='undef'
-d_gethostprotos='define'
-d_getitimer='define'
-d_getlogin='define'
-d_getlogin_r='undef'
-d_getmnt='undef'
-d_getmntent='define'
-d_getnbyaddr='define'
-d_getnbyname='define'
-d_getnent='define'
-d_getnetbyaddr_r='undef'
-d_getnetbyname_r='undef'
-d_getnetent_r='undef'
-d_getnetprotos='define'
-d_getpagsz='define'
-d_getpbyname='define'
-d_getpbynumber='define'
-d_getpent='define'
-d_getpgid='define'
-d_getpgrp2='undef'
-d_getpgrp='define'
-d_getppid='define'
-d_getprior='define'
-d_getprotobyname_r='undef'
-d_getprotobynumber_r='undef'
-d_getprotoent_r='undef'
-d_getprotoprotos='define'
-d_getprpwnam='undef'
-d_getpwent='define'
-d_getpwent_r='undef'
-d_getpwnam_r='undef'
-d_getpwuid_r='undef'
-d_getsbyname='define'
-d_getsbyport='define'
-d_getsent='define'
-d_getservbyname_r='undef'
-d_getservbyport_r='undef'
-d_getservent_r='undef'
-d_getservprotos='define'
-d_getspnam='define'
-d_getspnam_r='undef'
-d_gettimeod='define'
-d_gmtime_r='undef'
-d_gnulibc='undef'
-d_grpasswd='define'
-d_hasmntopt='define'
-d_htonl='define'
-d_hypot='define'
-d_ilogb='define'
-d_ilogbl='undef'
-d_inc_version_list='undef'
-d_index='undef'
-d_inetaton='define'
-d_int64_t='define'
-d_isascii='define'
-d_isfinite='define'
-d_isfinitel='undef'
-d_isinf='define'
-d_isinfl='define'
-d_isless='undef'
-d_isnan='define'
-d_isnanl='undef'
-d_isnormal='define'
-d_j0='undef'
-d_j0l='undef'
-d_killpg='define'
-d_lc_monetary_2008='define'
-d_lchown='define'
-d_ldbl_dig='define'
-d_ldexpl='define'
-d_lgamma='define'
-d_lgamma_r='define'
-d_libm_lib_version='define'
-d_link='define'
-d_llrint='define'
-d_llrintl='define'
-d_llround='define'
-d_llroundl='define'
-d_localtime_r='undef'
-d_localtime_r_needs_tzset='undef'
-d_locconv='define'
-d_lockf='define'
-d_log1p='define'
-d_log2='define'
-d_logb='define'
-d_longdbl='define'
-d_longlong='define'
-d_lrint='define'
-d_lrintl='define'
-d_lround='define'
-d_lroundl='define'
-d_lseekproto='define'
-d_lstat='define'
-d_madvise='define'
-d_malloc_good_size='undef'
-d_malloc_size='undef'
-d_mblen='define'
-d_mbstowcs='define'
-d_mbtowc='define'
-d_memchr='define'
-d_memcmp='define'
-d_memcpy='define'
-d_memmove='define'
-d_memset='define'
-d_mkdir='define'
-d_mkdtemp='define'
-d_mkfifo='define'
-d_mkstemp='define'
-d_mkstemps='undef'
-d_mktime='define'
-d_mmap='define'
-d_modfl='undef'
-d_modfl_pow32_bug='undef'
-d_modflproto='undef'
-d_mprotect='define'
-d_msg='define'
-d_msg_ctrunc='define'
-d_msg_dontroute='define'
-d_msg_oob='define'
-d_msg_peek='define'
-d_msg_proxy='define'
-d_msgctl='define'
-d_msgget='define'
-d_msghdr_s='define'
-d_msgrcv='define'
-d_msgsnd='define'
-d_msync='define'
-d_munmap='define'
-d_mymalloc='undef'
-d_nan='define'
-d_nearbyint='define'
-d_nextafter='define'
-d_nexttoward='undef'
-d_nice='define'
-d_nl_langinfo='define'
-d_nv_preserves_uv='define'
-d_nv_zero_is_allbits_zero='define'
-d_off64_t='undef'
-d_old_pthread_create_joinable='undef'
-d_oldpthreads='undef'
-d_oldsock='undef'
-d_open3='define'
-d_pathconf='define'
-d_pause='define'
-d_perl_otherlibdirs='undef'
-d_phostname='undef'
-d_pipe='define'
-d_poll='define'
-d_portable='define'
-d_printf_format_null='define'
-d_procselfexe='define'
-d_pseudofork='undef'
-d_pthread_atfork='undef'
-d_pthread_attr_setscope='define'
-d_pthread_yield='undef'
-d_ptrdiff_t='define'
-d_pwage='undef'
-d_pwchange='undef'
-d_pwclass='undef'
-d_pwcomment='undef'
-d_pwexpire='undef'
-d_pwgecos='define'
-d_pwpasswd='define'
-d_pwquota='undef'
-d_qgcvt='undef'
-d_quad='define'
-d_random_r='undef'
-d_re_comp='undef'
-d_readdir64_r='undef'
-d_readdir='define'
-d_readdir_r='undef'
-d_readlink='define'
-d_readv='define'
-d_recvmsg='define'
-d_regcmp='undef'
-d_regcomp='define'
-d_remainder='define'
-d_remquo='define'
-d_rename='define'
-d_rewinddir='define'
-d_rint='define'
-d_rmdir='define'
-d_round='define'
-d_safebcpy='undef'
-d_safemcpy='undef'
-d_sanemcmp='define'
-d_sbrkproto='define'
-d_scalbn='define'
-d_scalbnl='undef'
-d_sched_yield='define'
-d_scm_rights='define'
-d_seekdir='define'
-d_select='define'
-d_sem='define'
-d_semctl='define'
-d_semctl_semid_ds='define'
-d_semctl_semun='define'
-d_semget='define'
-d_semop='define'
-d_sendmsg='define'
-d_setegid='define'
-d_seteuid='define'
-d_setgrent='define'
-d_setgrent_r='undef'
-d_setgrps='define'
-d_sethent='define'
-d_sethostent_r='undef'
-d_setitimer='define'
-d_setlinebuf='define'
-d_setlocale='define'
-d_setlocale_r='undef'
-d_setnent='define'
-d_setnetent_r='undef'
-d_setpent='define'
-d_setpgid='define'
-d_setpgrp2='undef'
-d_setpgrp='define'
-d_setprior='define'
-d_setproctitle='undef'
-d_setprotoent_r='undef'
-d_setpwent='define'
-d_setpwent_r='undef'
-d_setregid='define'
-d_setresgid='define'
-d_setresuid='define'
-d_setreuid='define'
-d_setrgid='undef'
-d_setruid='undef'
-d_setsent='define'
-d_setservent_r='undef'
-d_setsid='define'
-d_setvbuf='define'
-d_sfio='undef'
-d_shm='define'
-d_shmat='define'
-d_shmatprototype='define'
-d_shmctl='define'
-d_shmdt='define'
-d_shmget='define'
-d_sigaction='define'
-d_signbit='undef'
-d_sigprocmask='define'
-d_sigsetjmp='define'
-d_sitearch='define'
-d_snprintf='define'
-d_sockatmark='undef'
-d_sockatmarkproto='undef'
-d_socket='define'
-d_socklen_t='define'
-d_sockpair='define'
-d_socks5_init='undef'
-d_sprintf_returns_strlen='define'
-d_sqrtl='undef'
-d_srand48_r='undef'
-d_srandom_r='undef'
-d_sresgproto='undef'
-d_sresuproto='undef'
-d_stat='define'
-d_statblks='define'
-d_statfs_f_flags='undef'
-d_statfs_s='define'
-d_statvfs='define'
-d_stdio_cnt_lval='undef'
-d_stdio_ptr_lval='undef'
-d_stdio_ptr_lval_nochange_cnt='undef'
-d_stdio_ptr_lval_sets_cnt='undef'
-d_stdio_stream_array='undef'
-d_stdiobase='undef'
-d_stdstdio='undef'
-d_strchr='define'
-d_strcoll='define'
-d_strctcpy='define'
-d_strerrm='strerror(e)'
-d_strerror='define'
-d_strerror_r='undef'
-d_strftime='define'
-d_strlcat='define'
-d_strlcpy='define'
-d_strtod='define'
-d_strtol='define'
-d_strtold='define'
-d_strtoll='define'
-d_strtoq='define'
-d_strtoul='define'
-d_strtoull='define'
-d_strtouq='define'
-d_strxfrm='define'
-d_suidsafe='undef'
-d_symlink='define'
-d_syscall='define'
-d_syscallproto='define'
-d_sysconf='define'
-d_sysernlst=''
-d_syserrlst='undef'
-d_system='define'
-d_tcgetpgrp='define'
-d_tcsetpgrp='define'
-d_telldir='define'
-d_telldirproto='define'
-d_tgamma='define'
-d_time='define'
-d_times='define'
-d_tm_tm_gmtoff='define'
-d_tm_tm_zone='define'
-d_tmpnam_r='undef'
-d_trunc='define'
-d_truncate='define'
-d_truncl='define'
-d_ttyname_r='undef'
-d_tzname='define'
-d_u32align='undef'
-d_ualarm='define'
-d_umask='define'
-d_uname='define'
-d_union_semun='undef'
-d_unordered='undef'
-d_unsetenv='define'
-d_usleep='define'
-d_usleepproto='define'
-d_ustat='define'
-d_vendorarch='undef'
-d_vendorbin='undef'
-d_vendorlib='undef'
-d_vendorscript='undef'
-d_vfork='undef'
-d_void_closedir='undef'
-d_voidsig='define'
-d_voidtty=''
-d_volatile='define'
-d_vprintf='define'
-d_vsnprintf='define'
-d_wait4='define'
-d_waitpid='define'
-d_wcscmp='define'
-d_wcstombs='define'
-d_wcsxfrm='define'
-d_wctomb='define'
-d_writev='define'
-d_xenix='undef'
-date='date'
-db_hashtype='u_int32_t'
-db_prefixtype='size_t'
-db_version_major=''
-db_version_minor=''
-db_version_patch=''
-defvoidused='15'
-direntrytype='struct dirent'
-dlext='so'
-dlsrc='dl_dlopen.xs'
-doublekind='4'
-doublesize='8'
-drand01='drand48()'
-drand48_r_proto='0'
-
-eagain='EAGAIN'
-ebcdic='undef'
-echo='echo'
-egrep='egrep'
-emacs=''
-endgrent_r_proto='0'
-endhostent_r_proto='0'
-endnetent_r_proto='0'
-endprotoent_r_proto='0'
-endpwent_r_proto='0'
-endservent_r_proto='0'
-eunicefix=':'
-exe_ext=''
-expr='expr'
-extras=''
-fflushNULL='define'
-fflushall='undef'
-find=''
-firstmakefile='makefile'
-flex=''
-fpossize='24'
-fpostype='fpos_t'
-freetype='void'
-from=':'
-full_ar='%%AR%%'
-full_csh='csh'
-full_sed='sed'
-gccansipedantic=''
-gccosandvers=''
-gccversion='3.4.3'
-getgrent_r_proto='0'
-getgrgid_r_proto='0'
-getgrnam_r_proto='0'
-gethostbyaddr_r_proto='0'
-gethostbyname_r_proto='0'
-gethostent_r_proto='0'
-getlogin_r_proto='0'
-getnetbyaddr_r_proto='0'
-getnetbyname_r_proto='0'
-getnetent_r_proto='0'
-getprotobyname_r_proto='0'
-getprotobynumber_r_proto='0'
-getprotoent_r_proto='0'
-getpwent_r_proto='0'
-getpwnam_r_proto='0'
-getpwuid_r_proto='0'
-getservbyname_r_proto='0'
-getservbyport_r_proto='0'
-getservent_r_proto='0'
-getspnam_r_proto='0'
-gidformat='"lu"'
-gidsign='1'
-gidsize='4'
-gidtype='gid_t'
-glibpth='/usr/shlib  /lib /usr/lib /usr/lib/386 /lib/386 /usr/ccs/lib /usr/ucblib /usr/local/lib '
-gmake='gmake'
-gmtime_r_proto='0'
-gnulibc_version=''
-grep='grep'
-groupcat='cat /etc/group'
-groupstype='gid_t'
-gzip='gzip'
-h_fcntl='false'
-h_sysfile='true'
-hint='recommended'
-hostcat='cat /etc/hosts'
-html1dir=' '
-html1direxp=''
-html3dir=' '
-html3direxp=''
-i16size='2'
-i16type='short'
-i32size='4'
-i32type='long'
-i64size='8'
-i64type='long long'
-i8size='1'
-i8type='char'
-i_arpainet='define'
-i_bsdioctl=''
-i_crypt='define'
-i_db='define'
-i_dbm='undef'
-i_dirent='define'
-i_dld='undef'
-i_dlfcn='define'
-i_execinfo='define'
-i_fcntl='undef'
-i_fenv='undef'
-i_float='define'
-i_fp='undef'
-i_fp_class='undef'
-i_gdbm='define'
-i_grp='define'
-i_ieeefp='undef'
-i_inttypes='define'
-i_langinfo='define'
-i_libutil='undef'
-i_limits='define'
-i_locale='define'
-i_machcthr='undef'
-i_malloc='define'
-i_math='define'
-i_memory='undef'
-i_mntent='define'
-i_ndbm='undef'
-i_netdb='define'
-i_neterrno='undef'
-i_netinettcp='define'
-i_niin='define'
-i_poll='define'
-i_prot='undef'
-i_pthread='define'
-i_pwd='define'
-i_quadmath='define'
-i_rpcsvcdbm='undef'
-i_sfio='undef'
-i_sgtty='undef'
-i_shadow='define'
-i_socks='undef'
-i_stdarg='define'
-i_stddef='define'
-i_stdint='define'
-i_stdlib='define'
-i_string='define'
-i_sunmath='undef'
-i_sysaccess='undef'
-i_sysdir='define'
-i_sysfile='define'
-i_sysfilio='undef'
-i_sysin='undef'
-i_sysioctl='define'
-i_syslog='define'
-i_sysmman='define'
-i_sysmode='undef'
-i_sysmount='define'
-i_sysndir='undef'
-i_sysparam='define'
-i_sysresrc='define'
-i_syssecrt='undef'
-i_sysselct='define'
-i_syssockio='undef'
-i_sysstat='define'
-i_sysstatfs='define'
-i_sysstatvfs='define'
-i_systime='define'
-i_systimek='undef'
-i_systimes='define'
-i_systypes='define'
-i_sysuio='define'
-i_sysun='define'
-i_sysutsname='define'
-i_sysvfs='define'
-i_syswait='define'
-i_termio='undef'
-i_termios='define'
-i_time='define'
-i_unistd='define'
-i_ustat='define'
-i_utime='define'
-i_values='define'
-i_varargs='undef'
-i_varhdr='stdarg.h'
-i_vfork='undef'
-ignore_versioned_solibs='y'
-inc_version_list=' '
-inc_version_list_init='0'
-incpath=''
-inews=''
-
-installbin='/usr/bin'
-initialinstalllocation='/usr/bin'
-installhtml1dir=''
-installhtml3dir=''
-installman1dir=''
-installman3dir=''
-installprefix='/usr'
-installprefixexp='/usr'
-
-installscript='/usr/bin'
-
-installsitebin='/usr/bin'
-installsitehtml1dir=''
-installsitehtml3dir=''
-
-installsiteman1dir=''
-installsiteman3dir=''
-installsitescript='/usr/bin'
-installstyle='lib/perl5'
-installusrbinperl='define'
-installvendorarch=''
-installvendorbin=''
-installvendorhtml1dir=''
-installvendorhtml3dir=''
-installvendorlib=''
-installvendorman1dir=''
-installvendorman3dir=''
-installvendorscript=''
-intsize='4'
-issymlink='test -h'
-ivdformat='"ld"'
-ivsize='4'
-ivtype='long'
-ksh=''
-ld='%%LD%%'
-lddlflags='-shared %%LDFLAGS%%'
-ldflags='%%EXTRA_PERLLIBDIRS%%'
-ldflags_uselargefiles=''
-ldlibpthname='LD_LIBRARY_PATH'
-less='less'
-lib_ext='.a'
-libc=''
-libperl='libperl.so'
-libpth='%%LIBDIRS%%'
-libs='-lgdbm -ldb -ldl -lm -lcrypt -lutil -lc'
-libsdirs='%%LIBDIRS%%'
-libsfiles=' libdl.so libm.so libcrypt.so libutil.so libc.so'
-#libsfound=' /usr/lib/libdl.so /usr/lib/libm.so /usr/lib/libcrypt.so /usr/lib/libutil.so /usr/lib/libc.so'
-libspath='%%LIBDIRS%%'
-libswanted='sfio socket inet nm ndbm gdbm dbm db malloc dl dld ld sun m crypt sec util c cposix posix ucb BSD'
-libswanted_uselargefiles=''
-line=''
-lint=''
-lkflags=''
-ln='ln'
-lns='/bin/ln -s'
-localtime_r_proto='0'
-locincpth=' '
-loclibpth=' '
-longdblkind='0'
-longdblsize='8'
-longlongsize='8'
-longsize='4'
-lp=''
-lpr=''
-ls='ls'
-lseeksize='8'
-lseektype='off_t'
-mail=''
-mailx=''
-make='make'
-make_set_make='#'
-mallocobj=''
-mallocsrc=''
-malloctype='void *'
-man1dir=' '
-man1direxp=''
-man1ext='0'
-man3dir=' '
-man3direxp=''
-man3ext='0'
-mips_type=''
-mistrustnm=''
-mkdir='mkdir'
-mmaptype='void *'
-modetype='mode_t'
-more='more'
-multiarch='undef'
-mv=''
-myarchname='mips-linux-uclibc'
-mydomain='.dev.null'
-myhostname='merope'
-myuname='linux merope 2.4.30 #1 di 23. jan 15:23:42 cet 2007 mips unknown unknown gnulinux '
-n='-n'
-need_va_copy='undef'
-netdb_hlen_type='size_t'
-netdb_host_type='const void *'
-netdb_name_type='const char *'
-netdb_net_type='in_addr_t'
-nm='nm'
-nm_opt=''
-nm_so_opt='--dynamic'
-
-nroff='nroff'
-nvEUformat='"E"'
-nvFUformat='"F"'
-nvGUformat='"G"'
-nv_preserves_uv_bits='32'
-nveformat='"e"'
-nvfformat='"f"'
-nvgformat='"g"'
-nvsize='8'
-nvtype='double'
-o_nonblock='O_NONBLOCK'
-obj_ext='.o'
-old_pthread_create_joinable=''
-optimize='-O2'
-orderlib='false'
-osname='linux'
-osvers='2.4.30'
-otherlibdirs=' '
-package='perl5'
-pager='/usr/bin/less'
-passcat='cat /etc/passwd'
-
-path_sep=':'
-perl5=''
-perl=''
-perl_patchlevel=''
-perladmin='root@merope.dev.null'
-perllibs='-ldl -lm -lcrypt -lutil -lc %%EXTRA_PERLLIBS%%'
-perlpath='/usr/bin/perl'
-pg='pg'
-phostname='hostname'
-pidtype='pid_t'
-plibpth=''
-pmake=''
-pr=''
-prefix='/usr'
-prefixexp='/usr'
-
-
-procselfexe='"/proc/self/exe"'
-prototype='define'
-ptrsize='4'
-quadkind='3'
-quadtype='long long'
-randbits='48'
-randfunc='drand48'
-random_r_proto='0'
-randseedtype='long'
-ranlib=':'
-rd_nodata='-1'
-readdir64_r_proto='0'
-readdir_r_proto='0'
-revision='5'
-rm='rm'
-rm_try='/bin/rm -f try try a.out .out try.[cho] try..o core core.try* try.core*'
-rmail=''
-run=''
-runnm='false'
-sPRIEUldbl='"E"'
-sPRIFUldbl='"F"'
-sPRIGUldbl='"G"'
-sPRIXU64='"LX"'
-sPRId64='"Ld"'
-sPRIeldbl='"e"'
-sPRIfldbl='"f"'
-sPRIgldbl='"g"'
-sPRIi64='"Li"'
-sPRIo64='"Lo"'
-sPRIu64='"Lu"'
-sPRIx64='"Lx"'
-sSCNfldbl='"f"'
-sched_yield='sched_yield()'
-scriptdir='/usr/bin'
-scriptdirexp='/usr/bin'
-sed='sed'
-seedfunc='srand48'
-selectminbits='32'
-selecttype='fd_set *'
-sendmail=''
-setgrent_r_proto='0'
-sethostent_r_proto='0'
-setlocale_r_proto='0'
-setnetent_r_proto='0'
-setprotoent_r_proto='0'
-setpwent_r_proto='0'
-setservent_r_proto='0'
-sh='/bin/sh'
-shar=''
-sharpbang='#!'
-shmattype='void *'
-shortsize='2'
-shrpenv=''
-shsharp='true'
-sig_count='128'
-sig_name='ZERO HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM USR1 USR2 CHLD PWR WINCH URG IO STOP TSTP CONT TTIN TTOU VTALRM PROF XCPU XFSZ RTMIN NUM33 NUM34 NUM35 NUM36 NUM37 NUM38 NUM39 NUM40 NUM41 NUM42 NUM43 NUM44 NUM45 NUM46 NUM47 NUM48 NUM49 NUM50 NUM51 NUM52 NUM53 NUM54 NUM55 NUM56 NUM57 NUM58 NUM59 NUM60 NUM61 NUM62 NUM63 NUM64 NUM65 NUM66 NUM67 NUM68 NUM69 NUM70 NUM71 NUM72 NUM73 NUM74 NUM75 NUM76 NUM77 NUM78 NUM79 NUM80 NUM81 NUM82 NUM83 NUM84 NUM85 NUM86 NUM87 NUM88 NUM89 NUM90 NUM91 NUM92 NUM93 NUM94 NUM95 NUM96 NUM97 NUM98 NUM99 NUM100 NUM101 NUM102 NUM103 NUM104 NUM105 NUM106 NUM107 NUM108 NUM109 NUM110 NUM111 NUM112 NUM113 NUM114 NUM115 NUM116 NUM117 NUM118 NUM119 NUM120 NUM121 NUM122 NUM123 NUM124 NUM125 NUM126 RTMAX IOT CLD POLL '
-sig_name_init='"ZERO", "HUP", "INT", "QUIT", "ILL", "TRAP", "ABRT", "EMT", "FPE", "KILL", "BUS", "SEGV", "SYS", "PIPE", "ALRM", "TERM", "USR1", "USR2", "CHLD", "PWR", "WINCH", "URG", "IO", "STOP", "TSTP", "CONT", "TTIN", "TTOU", "VTALRM", "PROF", "XCPU", "XFSZ", "RTMIN", "NUM33", "NUM34", "NUM35", "NUM36", "NUM37", "NUM38", "NUM39", "NUM40", "NUM41", "NUM42", "NUM43", "NUM44", "NUM45", "NUM46", "NUM47", "NUM48", "NUM49", "NUM50", "NUM51", "NUM52", "NUM53", "NUM54", "NUM55", "NUM56", "NUM57", "NUM58", "NUM59", "NUM60", "NUM61", "NUM62", "NUM63", "NUM64", "NUM65", "NUM66", "NUM67", "NUM68", "NUM69", "NUM70", "NUM71", "NUM72", "NUM73", "NUM74", "NUM75", "NUM76", "NUM77", "NUM78", "NUM79", "NUM80", "NUM81", "NUM82", "NUM83", "NUM84", "NUM85", "NUM86", "NUM87", "NUM88", "NUM89", "NUM90", "NUM91", "NUM92", "NUM93", "NUM94", "NUM95", "NUM96", "NUM97", "NUM98", "NUM99", "NUM100", "NUM101", "NUM102", "NUM103", "NUM104", "NUM105", "NUM106", "NUM107", "NUM108", "NUM109", "NUM110", "NUM 111", "NUM112", "NUM113", "NUM114", "NUM115", "NUM116", "NUM117", "NUM118", "NUM119", "NUM120", "NUM121", "NUM122", "NUM123", "NUM124", "NUM125", "NUM126", "RTMAX", "IOT", "CLD", "POLL", 0'
-sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 6 18 22 '
-sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 6, 18, 22, 0'
-sig_size='131'
-signal_t='void'
-sitearch=''
-sitearchexp=''
-sitebin='/usr/bin'
-sitebinexp='/usr/bin'
-sitehtml1dir=''
-sitehtml1direxp=''
-sitehtml3dir=''
-sitehtml3direxp=''
-sitelib=''
-#sitelib_stem='/usr/lib/perl5/site_perl'
-sitelibexp=''
-siteman1dir=''
-siteman1direxp=''
-siteman3dir=''
-siteman3direxp=''
-siteprefix='/usr'
-siteprefixexp='/usr'
-sitescript='/usr/bin'
-sitescriptexp='/usr/bin'
-sizesize='4'
-sizetype='size_t'
-sleep=''
-smail=''
-so='so'
-sockethdr=''
-socketlib=''
-socksizetype='socklen_t'
-sort='sort'
-spackage='Perl5'
-spitshell='cat'
-srand48_r_proto='0'
-srandom_r_proto='0'
-src='.'
-ssizetype='ssize_t'
-startperl='#!/usr/bin/perl'
-startsh='#!/bin/sh'
-static_ext=' '
-stdchar='char'
-stdio_base='((fp)->_base)'
-stdio_bufsiz='((fp)->_cnt + (fp)->_ptr - (fp)->_base)'
-stdio_cnt='((fp)->_cnt)'
-stdio_filbuf=''
-stdio_ptr='((fp)->_ptr)'
-stdio_stream_array=''
-strerror_r_proto='0'
-#strings='/usr/include/string.h'
-submit=''
-sysman='/usr/share/man/man1'
-tail=''
-tar=''
-targetarch='mips-linux-uclibc'
-tbl=''
-tee=''
-test='test'
-#timeincl='/usr/include/sys/time.h /usr/include/time.h '
-timetype='time_t'
-tmpnam_r_proto='0'
-to=':'
-touch='touch'
-tr='tr'
-trnl='\n'
-troff=''
-ttyname_r_proto='0'
-u16size='2'
-u16type='unsigned short'
-u32size='4'
-u32type='unsigned long'
-u64size='8'
-u64type='unsigned long long'
-u8size='1'
-u8type='unsigned char'
-uidformat='"lu"'
-uidsign='1'
-uidsize='4'
-uidtype='uid_t'
-uname='uname'
-uniq='uniq'
-uquadtype='unsigned long long'
-use5005threads='undef'
-use64bitall='undef'
-use64bitint='undef'
-usecbacktrace='undef'
-usecrosscompile='define'
-usedl='define'
-usefaststdio='undef'
-useithreads='undef'
-uselargefiles='define'
-uselongdouble='undef'
-usemallocwrap='define'
-usemorebits='undef'
-usemultiplicity='undef'
-usemymalloc='n'
-usenm='true'
-useopcode='true'
-useperlio='define'
-useposix='true'
-usequadmath='undef'
-usereentrant='undef'
-userelocatableinc='undef'
-usesfio='false'
-useshrplib='true'
-usesitecustomize='undef'
-usesocks='undef'
-usethreads='undef'
-usevendorprefix='undef'
-usevfork='false'
-usrinc='%%INCDIRS%%'
-uuname=''
-uvXUformat='"lX"'
-uvoformat='"lo"'
-uvsize='4'
-uvtype='unsigned long'
-uvuformat='"lu"'
-uvxformat='"lx"'
-vendorarch=''
-vendorarchexp=''
-vendorbin=''
-vendorbinexp=''
-vendorhtml1dir=' '
-vendorhtml1direxp=''
-vendorhtml3dir=' '
-vendorhtml3direxp=''
-vendorlib=''
-vendorlib_stem=''
-vendorlibexp=''
-vendorman1dir=' '
-vendorman1direxp=''
-vendorman3dir=' '
-vendorman3direxp=''
-vendorprefix=''
-vendorprefixexp=''
-vendorscript=''
-vendorscriptexp=''
-
-
-versiononly='undef'
-vi=''
-voidflags='15'
-xlibpth='/usr/lib/386 /lib/386'
-yacc='yacc'
-yaccflags=''
-zcat=''
-zip='zip'
-# Configure command line arguments.
-config_arg0='./Configure'
-config_args='-der'
-config_argc=1
-config_arg1='-der'
-PERL_REVISION=5
-PERL_API_REVISION=5
-
-PERL_API_SUBVERSION=0
-PERL_PATCHLEVEL=
-PERL_CONFIG_SH=true
-# Fix problem with HiRes timer.
-d_nanosleep='define'
-d_clock_gettime='define'
-d_clock_getres='define'
-d_clock_nanosleep='define'
-d_clock='define'
-
-# New symbols for perl 5.20.0
-bin_ELF='define'
-charbits='8'
-charsize='1'
-d_asctime64='undef'
-d_attribute_deprecated='define'
-d_ctime64='undef'
-d_difftime64='undef'
-d_gdbm_ndbm_h_uses_prototypes='undef'
-d_gdbmndbm_h_uses_prototypes='undef'
-d_getaddrinfo='define'
-d_getnameinfo='define'
-d_gmtime64='undef'
-d_inetntop='define'
-d_inetpton='define'
-d_ip_mreq='define'
-d_ip_mreq_source='define'
-d_ipv6_mreq='%%IPV6%%'
-d_ipv6_mreq_source='undef'
-d_isblank='define'
-d_libname_unique='undef'
-d_localtime64='undef'
-d_mktime64='undef'
-d_ndbm='undef'
-d_ndbm_h_uses_prototypes='undef'
-d_prctl='define'
-d_prctl_set_name='define'
-d_sin6_scope_id='%%IPV6%%'
-d_sockaddr_in6='%%IPV6%%'
-d_sockaddr_sa_len='undef'
-d_static_inline='define'
-d_timegm='define'
-dtrace=''
-extern_C='extern'
-hostosname=''
-i_assert='define'
-i_bfd='undef'
-i_gdbm_ndbm='undef'
-i_gdbmndbm='undef'
-i_mallocmalloc='undef'
-i_stdbool='define'
-i_syspoll='define'
-#incpth='/usr/lib/gcc/i486-slackware-linux/4.8.2/include /usr/local/include /usr/lib/gcc/i486-slackware-linux/4.8.2/include-fixed /usr/include'
-ld_can_script='define'
-#libsfound=' /usr/lib/libgdbm.so /usr/lib/libdb.so /usr/lib/libdl.so /usr/lib/libm.so /usr/lib/libcrypt.so /usr/lib/libutil.so /usr/lib/libc.so'
-nv_overflows_integers_at='256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0'
-perl_static_inline='static __inline__'
-sGMTIME_max='2147483647'
-sGMTIME_min='-2147483648'
-sLOCALTIME_max='2147483647'
-sLOCALTIME_min='-2147483648'
-#sitelib_stem='/usr/local/lib/perl5/site_perl'
-st_ino_sign='1'
-st_ino_size='8'
-#strings='/usr/include/string.h'
-sysroot=''
-targetdir=''
-targetenv=''
-targethost=''
-targetmkdir=''
-targetport=''
-targetsh='/bin/sh'
-#timeincl='/usr/include/sys/time.h /usr/include/time.h '
-usedevel='undef'
-usedtrace='undef'
-usekernprocpathname='undef'
-usensgetexecutablepath='undef'
-useversionedarchname='undef'
-vaproto='define'
-libdb_needs_pthread='N'
-
-# These symbols changed from perl 5.10.0 to 5.20.0 and probably will
-# change again for new versions, so they're included here for
-# future reference
-api_version='22'
-# Always set this to the base version, not the patched one!
-api_versionstring='5.22.0'
-dynamic_ext='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/DosGlob File/Glob Filter/Util/Call GDBM_File Hash/Util Hash/Util/FieldHash I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc Opcode POSIX PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Tie/Hash/NamedCapture Time/HiRes Time/Piece Unicode/Collate XS/APItest XS/Typemap arybase attributes mro re threads threads/shared'
-installarchlib='/usr/lib/perl5/5.22'
-installprivlib='/usr/lib/perl5/5.22'
-installsitearch='/usr/lib/perl5/5.22'
-installsitelib='/usr/lib/perl5/5.22'
-nonxs_ext='Archive/Tar Attribute/Handlers AutoLoader B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Config/Perl/V Devel/SelfStubber Digest Dumpvalue Env Errno Exporter ExtUtils/CBuilder ExtUtils/Command ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS File/Fetch File/Find File/Path File/Temp FileCache Filter/Simple Getopt/Long HTTP/Tiny I18N/Collate I18N/LangTags IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP Locale/Codes Locale/Maketext Locale/Maketext/Simple Math/BigInt Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NEXT Net/Ping Params/Check Parse/CPAN/Meta Perl/OSType PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage Safe Search/Dict SelfLoader Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Memoize Tie/RefHash Time/Local XSLoader autodie autouse base bignum constant encoding/warnings experimental if lib libnet parent perlfaq podlators Unicode/Normalize version'
-privlib='/usr/lib/perl5/5.22'
-privlibexp='/usr/lib/perl5/5.22'
-archlib='/usr/lib/perl5/5.22'
-archlibexp='/usr/lib/perl5/5.22'
-version='5.22.0'
-version_patchlevel_string='version 22 subversion 0'
-PERL_VERSION=22
-PERL_API_VERSION=22
-PERL_SUBVERSION=0
-patchlevel='22'
-ccdlflags='-fPIC -Wl,-rpath,/usr/lib/perl5/5.22/CORE'
-subversion='0'
-extensions='B Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call GDBM_File Hash/Util I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex Time/HiRes Time/Piece XS/APItest XS/Typemap attrs re threads threads/shared Hash/Util/FieldHash Compress/Zlib Errno IO_Compress_Base IO_Compress_Zlib Unicode/Normalize'
-known_extensions='B Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call GDBM_File Hash/Util I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc NDBM_File ODBM_File Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex Time/HiRes Time/Piece Unicode/Normalize Win32 Win32API/File Win32CORE XS/APItest XS/Typemap attrs re threads threads/shared Hash/Util/FieldHash'
-
-# Make perl use these tools instead of the target binaries during build
-hostgenerate='%%HOSTGENERATE%%'
-hostperl='%%HOSTMINIPERL%%'
diff --git a/lang/perl/files/config.sh-mips64-mt.in b/lang/perl/files/config.sh-mips64-mt.in
deleted file mode 100644 (file)
index 884260a..0000000
+++ /dev/null
@@ -1,1227 +0,0 @@
-#!/bin/sh
-#
-# This file was produced by running the Configure script. It holds all the
-# definitions figured out by Configure. Should you modify one of these values,
-# do not forget to propagate your changes by running "Configure -der". You may
-# instead choose to run each of the .SH files by yourself, or "Configure -S".
-#
-
-# Package name      : perl5
-# Source directory  : .
-# Configuration time: Thu Jan 25 03:12:45 MST 2007
-# Configured by     : root
-# Target system     : linux merope 2.4.30 #1 di 23. jan 15:23:42 cet 2007 mips unknown unknown gnulinux 
-
-Author=''
-Date=''
-Header=''
-Id=''
-Locker=''
-Log=''
-RCSfile=''
-Revision=''
-Source=''
-State=''
-_a='.a'
-_exe=''
-_o='.o'
-afs='false'
-afsroot='/afs'
-alignbytes='8'
-ansi2knr=''
-aphostname='/bin/hostname'
-api_revision='5'
-api_subversion='0'
-
-
-ar='ar'
-archname64=''
-archname='mips64-linux-uclibc'
-archobjs=''
-asctime_r_proto='REENTRANT_PROTO_B_SB'
-awk='awk'
-baserev='5.0'
-bash=''
-bin='/usr/bin'
-binexp='/usr/bin'
-bison='bison'
-byacc='byacc'
-byteorder='87654321'
-c=''
-castflags='0'
-cat='cat'
-cc='%%CC%%'
-cccdlflags='-fPIC'
-ccflags='-D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 %%CFLAGS%%'
-ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
-ccname='gcc'
-ccsymbols=''
-ccversion=''
-cf_by='root'
-cf_email='root@merope.dev.null'
-cf_time='Thu Jan 25 03:12:45 MST 2007'
-chgrp=''
-chmod='chmod'
-chown=''
-clocktype='clock_t'
-comm='comm'
-compress=''
-contains='grep'
-cp='cp'
-cpio=''
-cpp='cpp'
-cpp_stuff='42'
-cppccsymbols=''
-cppflags='-D_REENTRANT -D_GNU_SOURCE %%CFLAGS%%'
-cpplast='-'
-cppminus='-'
-cpprun='%%CPP%%'
-cppstdin='%%CPP%%'
-cppsymbols=''
-crypt_r_proto='%%CRYPT_R_PROTO%%'
-cryptlib=''
-csh='csh'
-ctermid_r_proto='0'
-ctime_r_proto='REENTRANT_PROTO_B_SB'
-d_Gconvert='sprintf((b),"%.*g",(n),(x))'
-d_PRIEUldbl='define'
-d_PRIFUldbl='define'
-d_PRIGUldbl='define'
-d_PRIXU64='define'
-d_PRId64='define'
-d_PRIeldbl='define'
-d_PRIfldbl='define'
-d_PRIgldbl='define'
-d_PRIi64='define'
-d_PRIo64='define'
-d_PRIu64='define'
-d_PRIx64='define'
-d_SCNfldbl='define'
-d__fwalk='undef'
-d_access='define'
-d_accessx='undef'
-d_acosh='define'
-d_aintl='undef'
-d_alarm='define'
-d_archlib='undef'
-d_asctime_r='define'
-d_asinh='define'
-d_atanh='define'
-d_atolf='undef'
-d_atoll='define'
-d_attribute_format='define'
-d_attribute_malloc='define'
-d_attribute_nonnull='define'
-d_attribute_noreturn='define'
-d_attribute_pure='define'
-d_attribute_unused='define'
-d_attribute_warn_unused_result='define'
-d_backtrace='define'
-d_bcmp='define'
-d_bcopy='define'
-d_bsd='undef'
-d_bsdgetpgrp='undef'
-d_bsdsetpgrp='undef'
-d_builtin_choose_expr='define'
-d_builtin_expect='undef'
-d_bzero='define'
-d_c99_variadic_macros='define'
-d_casti32='define'
-d_castneg='define'
-d_cbrt='define'
-d_charvspr='undef'
-d_chown='define'
-d_chroot='define'
-d_chsize='undef'
-d_class='undef'
-d_clearenv='define'
-d_closedir='define'
-d_cmsghdr_s='define'
-d_const='define'
-d_copysign='define'
-d_copysignl='undef'
-d_cplusplus='undef'
-d_crypt='%%CRYPT%%'
-d_crypt_r='%%CRYPT%%'
-d_csh='undef'
-d_ctermid='define'
-d_ctermid_r='undef'
-d_ctime_r='define'
-d_cuserid='define'
-d_dbl_dig='define'
-d_dbminitproto='undef'
-d_difftime='define'
-d_dir_dd_fd='undef'
-d_dirfd='define'
-d_dirnamlen='undef'
-d_dladdr='define'
-d_dlerror='define'
-d_dlopen='define'
-d_dlsymun='undef'
-d_dosuid='undef'
-d_drand48_r='define'
-d_drand48proto='define'
-d_dup2='define'
-d_eaccess='undef'
-d_endgrent='define'
-d_endgrent_r='undef'
-d_endhent='define'
-d_endhostent_r='undef'
-d_endnent='define'
-d_endnetent_r='undef'
-d_endpent='define'
-d_endprotoent_r='undef'
-d_endpwent='define'
-d_endpwent_r='undef'
-d_endsent='define'
-d_endservent_r='undef'
-d_eofnblk='define'
-d_erf='define'
-d_erfc='define'
-d_eunice='undef'
-d_exp2='define'
-d_expm1='define'
-d_faststdio='undef'
-d_fchdir='define'
-d_fchmod='define'
-d_fchown='define'
-d_fcntl='define'
-d_fcntl_can_lock='define'
-d_fd_macros='define'
-d_fd_set='define'
-d_fdim='define'
-d_fds_bits='define'
-d_fegetround='undef'
-d_fgetpos='define'
-d_finite='define'
-d_finitel='undef'
-d_flexfnam='define'
-d_flock='define'
-d_flockproto='define'
-d_fma='define'
-d_fmax='define'
-d_fmin='define'
-d_fork='define'
-d_fp_class='undef'
-d_fp_classify='undef'
-d_fp_classl='undef'
-d_fpathconf='define'
-d_fpclass='undef'
-d_fpclassify='define'
-d_fpclassl='undef'
-d_fpgetround='undef'
-d_fpos64_t='undef'
-d_frexpl='undef'
-d_fs_data_s='undef'
-d_fseeko='define'
-d_fsetpos='define'
-d_fstatfs='define'
-d_fstatvfs='define'
-d_fsync='define'
-d_ftello='define'
-d_ftime='undef'
-d_futimes='undef'
-d_getcwd='define'
-d_getespwnam='undef'
-d_getfsstat='undef'
-d_getgrent='define'
-d_getgrent_r='define'
-d_getgrgid_r='define'
-d_getgrnam_r='define'
-d_getgrps='define'
-d_gethbyaddr='define'
-d_gethbyname='define'
-d_gethent='define'
-d_gethname='define'
-d_gethostbyaddr_r='define'
-d_gethostbyname_r='define'
-d_gethostent_r='define'
-d_gethostprotos='define'
-d_getitimer='define'
-d_getlogin='define'
-d_getlogin_r='define'
-d_getmnt='undef'
-d_getmntent='define'
-d_getnbyaddr='define'
-d_getnbyname='define'
-d_getnent='define'
-d_getnetbyaddr_r='define'
-d_getnetbyname_r='define'
-d_getnetent_r='define'
-d_getnetprotos='define'
-d_getpagsz='define'
-d_getpbyname='define'
-d_getpbynumber='define'
-d_getpent='define'
-d_getpgid='define'
-d_getpgrp2='undef'
-d_getpgrp='define'
-d_getppid='define'
-d_getprior='define'
-d_getprotobyname_r='define'
-d_getprotobynumber_r='define'
-d_getprotoent_r='define'
-d_getprotoprotos='define'
-d_getprpwnam='undef'
-d_getpwent='define'
-d_getpwent_r='define'
-d_getpwnam_r='define'
-d_getpwuid_r='define'
-d_getsbyname='define'
-d_getsbyport='define'
-d_getsent='define'
-d_getservbyname_r='define'
-d_getservbyport_r='define'
-d_getservent_r='define'
-d_getservprotos='define'
-d_getspnam='define'
-d_getspnam_r='define'
-d_gettimeod='define'
-d_gmtime_r='define'
-d_gnulibc='undef'
-d_grpasswd='define'
-d_hasmntopt='define'
-d_htonl='define'
-d_hypot='define'
-d_ilogb='define'
-d_ilogbl='undef'
-d_inc_version_list='undef'
-d_index='undef'
-d_inetaton='define'
-d_int64_t='define'
-d_isascii='define'
-d_isfinite='define'
-d_isfinitel='undef'
-d_isinf='define'
-d_isinfl='define'
-d_isless='undef'
-d_isnan='define'
-d_isnanl='undef'
-d_isnormal='define'
-d_j0='undef'
-d_j0l='undef'
-d_killpg='define'
-d_lc_monetary_2008='define'
-d_lchown='define'
-d_ldbl_dig='define'
-d_ldexpl='define'
-d_lgamma='define'
-d_lgamma_r='define'
-d_libm_lib_version='define'
-d_link='define'
-d_llrint='define'
-d_llrintl='define'
-d_llround='define'
-d_llroundl='define'
-d_localtime_r='define'
-d_localtime_r_needs_tzset='define'
-d_locconv='define'
-d_lockf='define'
-d_log1p='define'
-d_log2='define'
-d_logb='define'
-d_longdbl='define'
-d_longlong='define'
-d_lrint='define'
-d_lrintl='define'
-d_lround='define'
-d_lroundl='define'
-d_lseekproto='define'
-d_lstat='define'
-d_madvise='define'
-d_malloc_good_size='undef'
-d_malloc_size='undef'
-d_mblen='define'
-d_mbstowcs='define'
-d_mbtowc='define'
-d_memchr='define'
-d_memcmp='define'
-d_memcpy='define'
-d_memmove='define'
-d_memset='define'
-d_mkdir='define'
-d_mkdtemp='define'
-d_mkfifo='define'
-d_mkstemp='define'
-d_mkstemps='undef'
-d_mktime='define'
-d_mmap='define'
-d_modfl='undef'
-d_modfl_pow32_bug='undef'
-d_modflproto='undef'
-d_mprotect='define'
-d_msg='define'
-d_msg_ctrunc='define'
-d_msg_dontroute='define'
-d_msg_oob='define'
-d_msg_peek='define'
-d_msg_proxy='define'
-d_msgctl='define'
-d_msgget='define'
-d_msghdr_s='define'
-d_msgrcv='define'
-d_msgsnd='define'
-d_msync='define'
-d_munmap='define'
-d_mymalloc='undef'
-d_nan='define'
-d_nearbyint='define'
-d_nextafter='define'
-d_nexttoward='undef'
-d_nice='define'
-d_nl_langinfo='define'
-d_nv_preserves_uv='undef'
-d_nv_zero_is_allbits_zero='define'
-d_off64_t='define'
-d_old_pthread_create_joinable='undef'
-d_oldpthreads='undef'
-d_oldsock='undef'
-d_open3='define'
-d_pathconf='define'
-d_pause='define'
-d_perl_otherlibdirs='undef'
-d_phostname='undef'
-d_pipe='define'
-d_poll='define'
-d_portable='define'
-d_printf_format_null='undef'
-d_procselfexe='define'
-d_pseudofork='undef'
-d_pthread_atfork='define'
-d_pthread_attr_setscope='define'
-d_pthread_yield='define'
-d_ptrdiff_t='define'
-d_pwage='undef'
-d_pwchange='undef'
-d_pwclass='undef'
-d_pwcomment='undef'
-d_pwexpire='undef'
-d_pwgecos='define'
-d_pwpasswd='define'
-d_pwquota='undef'
-d_qgcvt='undef'
-d_quad='define'
-d_random_r='define'
-d_re_comp='undef'
-d_readdir64_r='define'
-d_readdir='define'
-d_readdir_r='define'
-d_readlink='define'
-d_readv='define'
-d_recvmsg='define'
-d_regcmp='undef'
-d_regcomp='define'
-d_remainder='define'
-d_remquo='define'
-d_rename='define'
-d_rewinddir='define'
-d_rint='define'
-d_rmdir='define'
-d_round='define'
-d_safebcpy='undef'
-d_safemcpy='undef'
-d_sanemcmp='define'
-d_sbrkproto='define'
-d_scalbn='define'
-d_scalbnl='undef'
-d_sched_yield='define'
-d_scm_rights='define'
-d_seekdir='define'
-d_select='define'
-d_sem='define'
-d_semctl='define'
-d_semctl_semid_ds='define'
-d_semctl_semun='define'
-d_semget='define'
-d_semop='define'
-d_sendmsg='define'
-d_setegid='define'
-d_seteuid='define'
-d_setgrent='define'
-d_setgrent_r='undef'
-d_setgrps='define'
-d_sethent='define'
-d_sethostent_r='undef'
-d_setitimer='define'
-d_setlinebuf='define'
-d_setlocale='define'
-d_setlocale_r='undef'
-d_setnent='define'
-d_setnetent_r='undef'
-d_setpent='define'
-d_setpgid='define'
-d_setpgrp2='undef'
-d_setpgrp='define'
-d_setprior='define'
-d_setproctitle='undef'
-d_setprotoent_r='undef'
-d_setpwent='define'
-d_setpwent_r='undef'
-d_setregid='define'
-d_setresgid='define'
-d_setresuid='define'
-d_setreuid='define'
-d_setrgid='undef'
-d_setruid='undef'
-d_setsent='define'
-d_setservent_r='undef'
-d_setsid='define'
-d_setvbuf='define'
-d_sfio='undef'
-d_shm='define'
-d_shmat='define'
-d_shmatprototype='define'
-d_shmctl='define'
-d_shmdt='define'
-d_shmget='define'
-d_sigaction='define'
-d_signbit='undef'
-d_sigprocmask='define'
-d_sigsetjmp='define'
-d_sitearch='define'
-d_snprintf='define'
-d_sockatmark='undef'
-d_sockatmarkproto='undef'
-d_socket='define'
-d_socklen_t='define'
-d_sockpair='define'
-d_socks5_init='undef'
-d_sprintf_returns_strlen='define'
-d_sqrtl='undef'
-d_srand48_r='define'
-d_srandom_r='define'
-d_sresgproto='define'
-d_sresuproto='define'
-d_stat='define'
-d_statblks='define'
-d_statfs_f_flags='undef'
-d_statfs_s='define'
-d_statvfs='define'
-d_stdio_cnt_lval='undef'
-d_stdio_ptr_lval='undef'
-d_stdio_ptr_lval_nochange_cnt='undef'
-d_stdio_ptr_lval_sets_cnt='undef'
-d_stdio_stream_array='undef'
-d_stdiobase='undef'
-d_stdstdio='undef'
-d_strchr='define'
-d_strcoll='define'
-d_strctcpy='define'
-d_strerrm='strerror(e)'
-d_strerror='define'
-d_strerror_r='define'
-d_strftime='define'
-d_strlcat='define'
-d_strlcpy='define'
-d_strtod='define'
-d_strtol='define'
-d_strtold='define'
-d_strtoll='define'
-d_strtoq='define'
-d_strtoul='define'
-d_strtoull='define'
-d_strtouq='define'
-d_strxfrm='define'
-d_suidsafe='undef'
-d_symlink='define'
-d_syscall='define'
-d_syscallproto='define'
-d_sysconf='define'
-d_sysernlst=''
-d_syserrlst='undef'
-d_system='define'
-d_tcgetpgrp='define'
-d_tcsetpgrp='define'
-d_telldir='define'
-d_telldirproto='define'
-d_tgamma='define'
-d_time='define'
-d_times='define'
-d_tm_tm_gmtoff='define'
-d_tm_tm_zone='define'
-d_tmpnam_r='define'
-d_trunc='define'
-d_truncate='define'
-d_truncl='define'
-d_ttyname_r='define'
-d_tzname='define'
-d_u32align='define'
-d_ualarm='define'
-d_umask='define'
-d_uname='define'
-d_union_semun='undef'
-d_unordered='undef'
-d_unsetenv='define'
-d_usleep='define'
-d_usleepproto='define'
-d_ustat='define'
-d_vendorarch='undef'
-d_vendorbin='undef'
-d_vendorlib='undef'
-d_vendorscript='undef'
-d_vfork='undef'
-d_void_closedir='undef'
-d_voidsig='define'
-d_voidtty=''
-d_volatile='define'
-d_vprintf='define'
-d_vsnprintf='define'
-d_wait4='define'
-d_waitpid='define'
-d_wcscmp='define'
-d_wcstombs='define'
-d_wcsxfrm='define'
-d_wctomb='define'
-d_writev='define'
-d_xenix='undef'
-date='date'
-db_hashtype='u_int32_t'
-db_prefixtype='size_t'
-db_version_major=''
-db_version_minor=''
-db_version_patch=''
-defvoidused='15'
-direntrytype='struct dirent'
-dlext='so'
-dlsrc='dl_dlopen.xs'
-doublekind='4'
-doublesize='8'
-drand01='drand48()'
-drand48_r_proto='REENTRANT_PROTO_I_ST'
-
-eagain='EAGAIN'
-ebcdic='undef'
-echo='echo'
-egrep='egrep'
-emacs=''
-endgrent_r_proto='0'
-endhostent_r_proto='0'
-endnetent_r_proto='0'
-endprotoent_r_proto='0'
-endpwent_r_proto='0'
-endservent_r_proto='0'
-eunicefix=':'
-exe_ext=''
-expr='expr'
-extras=''
-fflushNULL='define'
-fflushall='undef'
-find=''
-firstmakefile='makefile'
-flex=''
-fpossize='24'
-fpostype='fpos_t'
-freetype='void'
-from=':'
-full_ar='%%AR%%'
-full_csh='csh'
-full_sed='sed'
-gccansipedantic=''
-gccosandvers=''
-gccversion='3.4.3'
-getgrent_r_proto='REENTRANT_PROTO_I_SBWR'
-getgrgid_r_proto='REENTRANT_PROTO_I_TSBWR'
-getgrnam_r_proto='REENTRANT_PROTO_I_CSBWR'
-gethostbyaddr_r_proto='REENTRANT_PROTO_I_TsISBWRE'
-gethostbyname_r_proto='REENTRANT_PROTO_I_CSBWRE'
-gethostent_r_proto='REENTRANT_PROTO_I_SBWRE'
-getlogin_r_proto='REENTRANT_PROTO_I_BW'
-getnetbyaddr_r_proto='REENTRANT_PROTO_I_uISBWRE'
-getnetbyname_r_proto='REENTRANT_PROTO_I_CSBWRE'
-getnetent_r_proto='REENTRANT_PROTO_I_SBWRE'
-getprotobyname_r_proto='REENTRANT_PROTO_I_CSBWR'
-getprotobynumber_r_proto='REENTRANT_PROTO_I_ISBWR'
-getprotoent_r_proto='REENTRANT_PROTO_I_SBWR'
-getpwent_r_proto='REENTRANT_PROTO_I_SBWR'
-getpwnam_r_proto='REENTRANT_PROTO_I_CSBWR'
-getpwuid_r_proto='REENTRANT_PROTO_I_TSBWR'
-getservbyname_r_proto='REENTRANT_PROTO_I_CCSBWR'
-getservbyport_r_proto='REENTRANT_PROTO_I_ICSBWR'
-getservent_r_proto='REENTRANT_PROTO_I_SBWR'
-getspnam_r_proto='REENTRANT_PROTO_I_CSBWR'
-gidformat='"u"'
-gidsign='1'
-gidsize='4'
-gidtype='gid_t'
-glibpth='/usr/shlib  /lib /usr/lib /usr/lib/386 /lib/386 /usr/ccs/lib /usr/ucblib /usr/local/lib '
-gmake='gmake'
-gmtime_r_proto='REENTRANT_PROTO_S_TS'
-gnulibc_version=''
-grep='grep'
-groupcat='cat /etc/group'
-groupstype='gid_t'
-gzip='gzip'
-h_fcntl='false'
-h_sysfile='true'
-hint='recommended'
-hostcat='cat /etc/hosts'
-html1dir=' '
-html1direxp=''
-html3dir=' '
-html3direxp=''
-i16size='2'
-i16type='short'
-i32size='4'
-i32type='int'
-i64size='8'
-i64type='long'
-i8size='1'
-i8type='signed char'
-i_arpainet='define'
-i_bsdioctl=''
-i_crypt='%%CRYPT%%'
-i_db='define'
-i_dbm='undef'
-i_dirent='define'
-i_dld='undef'
-i_dlfcn='define'
-i_execinfo='define'
-i_fcntl='undef'
-i_fenv='undef'
-i_float='define'
-i_fp='undef'
-i_fp_class='undef'
-i_gdbm='define'
-i_grp='define'
-i_ieeefp='undef'
-i_inttypes='define'
-i_langinfo='define'
-i_libutil='undef'
-i_limits='define'
-i_locale='define'
-i_machcthr='undef'
-i_malloc='define'
-i_math='define'
-i_memory='undef'
-i_mntent='define'
-i_ndbm='undef'
-i_netdb='define'
-i_neterrno='undef'
-i_netinettcp='define'
-i_niin='define'
-i_poll='define'
-i_prot='undef'
-i_pthread='define'
-i_pwd='define'
-i_quadmath='define'
-i_rpcsvcdbm='undef'
-i_sfio='undef'
-i_sgtty='undef'
-i_shadow='define'
-i_socks='undef'
-i_stdarg='define'
-i_stddef='define'
-i_stdint='define'
-i_stdlib='define'
-i_string='define'
-i_sunmath='undef'
-i_sysaccess='undef'
-i_sysdir='define'
-i_sysfile='define'
-i_sysfilio='undef'
-i_sysin='undef'
-i_sysioctl='define'
-i_syslog='define'
-i_sysmman='define'
-i_sysmode='undef'
-i_sysmount='define'
-i_sysndir='undef'
-i_sysparam='define'
-i_sysresrc='define'
-i_syssecrt='undef'
-i_sysselct='define'
-i_syssockio='undef'
-i_sysstat='define'
-i_sysstatfs='define'
-i_sysstatvfs='define'
-i_systime='define'
-i_systimek='undef'
-i_systimes='define'
-i_systypes='define'
-i_sysuio='define'
-i_sysun='define'
-i_sysutsname='define'
-i_sysvfs='define'
-i_syswait='define'
-i_termio='undef'
-i_termios='define'
-i_time='define'
-i_unistd='define'
-i_ustat='define'
-i_utime='define'
-i_values='define'
-i_varargs='undef'
-i_varhdr='stdarg.h'
-i_vfork='undef'
-ignore_versioned_solibs='y'
-inc_version_list=' '
-inc_version_list_init='0'
-incpath=''
-inews=''
-
-installbin='/usr/bin'
-initialinstalllocation='/usr/bin'
-installhtml1dir=''
-installhtml3dir=''
-installman1dir=''
-installman3dir=''
-installprefix='/usr'
-installprefixexp='/usr'
-
-installscript='/usr/bin'
-
-installsitebin='/usr/bin'
-installsitehtml1dir=''
-installsitehtml3dir=''
-
-installsiteman1dir=''
-installsiteman3dir=''
-installsitescript='/usr/bin'
-installstyle='lib/perl5'
-installusrbinperl='define'
-installvendorarch=''
-installvendorbin=''
-installvendorhtml1dir=''
-installvendorhtml3dir=''
-installvendorlib=''
-installvendorman1dir=''
-installvendorman3dir=''
-installvendorscript=''
-intsize='4'
-issymlink='test -h'
-ivdformat='"ld"'
-ivsize='8'
-ivtype='long'
-ksh=''
-ld='%%LD%%'
-lddlflags='-shared %%LDFLAGS%%'
-ldflags='%%EXTRA_PERLLIBDIRS%%'
-ldflags_uselargefiles=''
-ldlibpthname='LD_LIBRARY_PATH'
-less='less'
-lib_ext='.a'
-libc=''
-libperl='libperl.so'
-libpth='%%LIBDIRS%%'
-libs='-lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread -lc'
-libsdirs='%%LIBDIRS%%'
-libsfiles=' libdl.so libm.so libcrypt.so libutil.so libpthread.so libc.so'
-#libsfound=' /usr/lib/libdl.so /usr/lib/libm.so /usr/lib/libcrypt.so /usr/lib/libutil.so /usr/lib/libc.so'
-libspath='%%LIBDIRS%%'
-libswanted='sfio socket inet nm ndbm gdbm dbm db malloc dl dld ld sun m crypt sec util pthread c cposix posix ucb BSD'
-libswanted_uselargefiles=''
-line=''
-lint=''
-lkflags=''
-ln='ln'
-lns='/bin/ln -s'
-localtime_r_proto='REENTRANT_PROTO_S_TS'
-locincpth=' '
-loclibpth=' '
-longdblkind='6'
-longdblsize='16'
-longlongsize='8'
-longsize='8'
-lp=''
-lpr=''
-ls='ls'
-lseeksize='8'
-lseektype='off_t'
-mail=''
-mailx=''
-make='make'
-make_set_make='#'
-mallocobj=''
-mallocsrc=''
-malloctype='void *'
-man1dir=' '
-man1direxp=''
-man1ext='0'
-man3dir=' '
-man3direxp=''
-man3ext='0'
-mips_type=''
-mistrustnm=''
-mkdir='mkdir'
-mmaptype='void *'
-modetype='mode_t'
-more='more'
-multiarch='undef'
-mv=''
-myarchname='mips64-linux-uclibc'
-mydomain='.dev.null'
-myhostname='merope'
-myuname='linux merope 2.4.30 #1 di 23. jan 15:23:42 cet 2007 mips64 unknown unknown gnulinux '
-n='-n'
-need_va_copy='define'
-netdb_hlen_type='size_t'
-netdb_host_type='char *'
-netdb_name_type='const char *'
-netdb_net_type='in_addr_t'
-nm='nm'
-nm_opt=''
-nm_so_opt='--dynamic'
-
-nroff='nroff'
-nvEUformat='"E"'
-nvFUformat='"F"'
-nvGUformat='"G"'
-nv_preserves_uv_bits='53'
-nveformat='"e"'
-nvfformat='"f"'
-nvgformat='"g"'
-nvsize='8'
-nvtype='double'
-o_nonblock='O_NONBLOCK'
-obj_ext='.o'
-old_pthread_create_joinable=''
-optimize='-O2'
-orderlib='false'
-osname='linux'
-osvers='2.4.30'
-otherlibdirs=' '
-package='perl5'
-pager='/usr/bin/less'
-passcat='cat /etc/passwd'
-
-path_sep=':'
-perl5=''
-perl=''
-perl_patchlevel=''
-perladmin='root@merope.dev.null'
-perllibs='-ldl -lm -lcrypt -lutil -lpthread -lc %%EXTRA_PERLLIBS%%'
-perlpath='/usr/bin/perl'
-pg='pg'
-phostname='hostname'
-pidtype='pid_t'
-plibpth=''
-pmake=''
-pr=''
-prefix='/usr'
-prefixexp='/usr'
-
-
-procselfexe='"/proc/self/exe"'
-prototype='define'
-ptrsize='8'
-quadkind='2'
-quadtype='long'
-randbits='48'
-randfunc='drand48'
-random_r_proto='REENTRANT_PROTO_I_St'
-randseedtype='long'
-ranlib=':'
-rd_nodata='-1'
-readdir64_r_proto='REENTRANT_PROTO_I_TSR'
-readdir_r_proto='REENTRANT_PROTO_I_TSR'
-revision='5'
-rm='rm'
-rm_try='/bin/rm -f try try a.out .out try.[cho] try..o core core.try* try.core*'
-rmail=''
-run=''
-runnm='false'
-sPRIEUldbl='"E"'
-sPRIFUldbl='"F"'
-sPRIGUldbl='"G"'
-sPRIXU64='"lX"'
-sPRId64='"ld"'
-sPRIeldbl='"e"'
-sPRIfldbl='"f"'
-sPRIgldbl='"g"'
-sPRIi64='"li"'
-sPRIo64='"lo"'
-sPRIu64='"lu"'
-sPRIx64='"lx"'
-sSCNfldbl='"f"'
-sched_yield='sched_yield()'
-scriptdir='/usr/bin'
-scriptdirexp='/usr/bin'
-sed='sed'
-seedfunc='srand48'
-selectminbits='64'
-selecttype='fd_set *'
-sendmail=''
-setgrent_r_proto='0'
-sethostent_r_proto='0'
-setlocale_r_proto='0'
-setnetent_r_proto='0'
-setprotoent_r_proto='0'
-setpwent_r_proto='0'
-setservent_r_proto='0'
-sh='/bin/sh'
-shar=''
-sharpbang='#!'
-shmattype='void *'
-shortsize='2'
-shrpenv=''
-shsharp='true'
-sig_count='128'
-sig_name='ZERO HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM USR1 USR2 CHLD PWR WINCH URG IO STOP TSTP CONT TTIN TTOU VTALRM PROF XCPU XFSZ RTMIN NUM33 NUM34 NUM35 NUM36 NUM37 NUM38 NUM39 NUM40 NUM41 NUM42 NUM43 NUM44 NUM45 NUM46 NUM47 NUM48 NUM49 NUM50 NUM51 NUM52 NUM53 NUM54 NUM55 NUM56 NUM57 NUM58 NUM59 NUM60 NUM61 NUM62 NUM63 NUM64 NUM65 NUM66 NUM67 NUM68 NUM69 NUM70 NUM71 NUM72 NUM73 NUM74 NUM75 NUM76 NUM77 NUM78 NUM79 NUM80 NUM81 NUM82 NUM83 NUM84 NUM85 NUM86 NUM87 NUM88 NUM89 NUM90 NUM91 NUM92 NUM93 NUM94 NUM95 NUM96 NUM97 NUM98 NUM99 NUM100 NUM101 NUM102 NUM103 NUM104 NUM105 NUM106 NUM107 NUM108 NUM109 NUM110 NUM111 NUM112 NUM113 NUM114 NUM115 NUM116 NUM117 NUM118 NUM119 NUM120 NUM121 NUM122 NUM123 NUM124 NUM125 NUM126 RTMAX IOT CLD POLL '
-sig_name_init='"ZERO", "HUP", "INT", "QUIT", "ILL", "TRAP", "ABRT", "EMT", "FPE", "KILL", "BUS", "SEGV", "SYS", "PIPE", "ALRM", "TERM", "USR1", "USR2", "CHLD", "PWR", "WINCH", "URG", "IO", "STOP", "TSTP", "CONT", "TTIN", "TTOU", "VTALRM", "PROF", "XCPU", "XFSZ", "RTMIN", "NUM33", "NUM34", "NUM35", "NUM36", "NUM37", "NUM38", "NUM39", "NUM40", "NUM41", "NUM42", "NUM43", "NUM44", "NUM45", "NUM46", "NUM47", "NUM48", "NUM49", "NUM50", "NUM51", "NUM52", "NUM53", "NUM54", "NUM55", "NUM56", "NUM57", "NUM58", "NUM59", "NUM60", "NUM61", "NUM62", "NUM63", "NUM64", "NUM65", "NUM66", "NUM67", "NUM68", "NUM69", "NUM70", "NUM71", "NUM72", "NUM73", "NUM74", "NUM75", "NUM76", "NUM77", "NUM78", "NUM79", "NUM80", "NUM81", "NUM82", "NUM83", "NUM84", "NUM85", "NUM86", "NUM87", "NUM88", "NUM89", "NUM90", "NUM91", "NUM92", "NUM93", "NUM94", "NUM95", "NUM96", "NUM97", "NUM98", "NUM99", "NUM100", "NUM101", "NUM102", "NUM103", "NUM104", "NUM105", "NUM106", "NUM107", "NUM108", "NUM109", "NUM110", "NUM 111", "NUM112", "NUM113", "NUM114", "NUM115", "NUM116", "NUM117", "NUM118", "NUM119", "NUM120", "NUM121", "NUM122", "NUM123", "NUM124", "NUM125", "NUM126", "RTMAX", "IOT", "CLD", "POLL", 0'
-sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 6 18 22 '
-sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 6, 18, 22, 0'
-sig_size='131'
-signal_t='void'
-sitearch=''
-sitearchexp=''
-sitebin='/usr/bin'
-sitebinexp='/usr/bin'
-sitehtml1dir=''
-sitehtml1direxp=''
-sitehtml3dir=''
-sitehtml3direxp=''
-sitelib=''
-#sitelib_stem='/usr/lib/perl5/site_perl'
-sitelibexp=''
-siteman1dir=''
-siteman1direxp=''
-siteman3dir=''
-siteman3direxp=''
-siteprefix='/usr'
-siteprefixexp='/usr'
-sitescript='/usr/bin'
-sitescriptexp='/usr/bin'
-sizesize='8'
-sizetype='size_t'
-sleep=''
-smail=''
-so='so'
-sockethdr=''
-socketlib=''
-socksizetype='socklen_t'
-sort='sort'
-spackage='Perl5'
-spitshell='cat'
-srand48_r_proto='REENTRANT_PROTO_I_LS'
-srandom_r_proto='REENTRANT_PROTO_I_TS'
-src='.'
-ssizetype='ssize_t'
-startperl='#!/usr/bin/perl'
-startsh='#!/bin/sh'
-static_ext=' '
-stdchar='char'
-stdio_base='((fp)->_base)'
-stdio_bufsiz='((fp)->_cnt + (fp)->_ptr - (fp)->_base)'
-stdio_cnt='((fp)->_cnt)'
-stdio_filbuf=''
-stdio_ptr='((fp)->_ptr)'
-stdio_stream_array=''
-strerror_r_proto='REENTRANT_PROTO_B_IBW'
-#strings='/usr/include/string.h'
-submit=''
-sysman='/usr/share/man/man1'
-tail=''
-tar=''
-targetarch='mips64-linux-uclibc'
-tbl=''
-tee=''
-test='test'
-#timeincl='/usr/include/sys/time.h /usr/include/time.h '
-timetype='time_t'
-tmpnam_r_proto='REENTRANT_PROTO_B_B'
-to=':'
-touch='touch'
-tr='tr'
-trnl='\n'
-troff=''
-ttyname_r_proto='REENTRANT_PROTO_I_IBW'
-u16size='2'
-u16type='unsigned short'
-u32size='4'
-u32type='unsigned int'
-u64size='8'
-u64type='unsigned long'
-u8size='1'
-u8type='unsigned char'
-uidformat='"u"'
-uidsign='1'
-uidsize='4'
-uidtype='uid_t'
-uname='uname'
-uniq='uniq'
-uquadtype='unsigned long'
-use5005threads='undef'
-use64bitall='define'
-use64bitint='undef'
-usecbacktrace='undef'
-usecrosscompile='define'
-usedl='define'
-usefaststdio='undef'
-useithreads='define'
-uselargefiles='define'
-uselongdouble='undef'
-usemallocwrap='define'
-usemorebits='undef'
-usemultiplicity='define'
-usemymalloc='n'
-usenm='true'
-useopcode='true'
-useperlio='define'
-useposix='true'
-usequadmath='undef'
-usereentrant='undef'
-userelocatableinc='undef'
-usesfio='false'
-useshrplib='true'
-usesitecustomize='undef'
-usesocks='undef'
-usethreads='define'
-usevendorprefix='undef'
-usevfork='false'
-usrinc='%%INCDIRS%%'
-uuname=''
-uvXUformat='"lX"'
-uvoformat='"lo"'
-uvsize='8'
-uvtype='unsigned long'
-uvuformat='"lu"'
-uvxformat='"lx"'
-vendorarch=''
-vendorarchexp=''
-vendorbin=''
-vendorbinexp=''
-vendorhtml1dir=' '
-vendorhtml1direxp=''
-vendorhtml3dir=' '
-vendorhtml3direxp=''
-vendorlib=''
-vendorlib_stem=''
-vendorlibexp=''
-vendorman1dir=' '
-vendorman1direxp=''
-vendorman3dir=' '
-vendorman3direxp=''
-vendorprefix=''
-vendorprefixexp=''
-vendorscript=''
-vendorscriptexp=''
-
-
-versiononly='undef'
-vi=''
-voidflags='15'
-xlibpth='/usr/lib/386 /lib/386'
-yacc='yacc'
-yaccflags=''
-zcat=''
-zip='zip'
-# Configure command line arguments.
-config_arg0='./Configure'
-config_args='-der -Dusethreads'
-config_argc=2
-config_arg1='-der'
-config_arg2='-Dusethreads'
-PERL_REVISION=5
-PERL_API_REVISION=5
-
-PERL_API_SUBVERSION=0
-PERL_PATCHLEVEL=
-PERL_CONFIG_SH=true
-# Fix problem with HiRes timer.
-d_nanosleep='define'
-d_clock_gettime='define'
-d_clock_getres='define'
-d_clock_nanosleep='define'
-d_clock='define'
-
-# New symbols for perl 5.20.0
-bin_ELF='define'
-charbits='8'
-charsize='1'
-d_asctime64='undef'
-d_attribute_deprecated='define'
-d_ctime64='undef'
-d_difftime64='undef'
-d_gdbm_ndbm_h_uses_prototypes='undef'
-d_gdbmndbm_h_uses_prototypes='undef'
-d_getaddrinfo='define'
-d_getnameinfo='define'
-d_gmtime64='undef'
-d_inetntop='define'
-d_inetpton='define'
-d_ip_mreq='define'
-d_ip_mreq_source='define'
-d_ipv6_mreq='%%IPV6%%'
-d_ipv6_mreq_source='undef'
-d_isblank='define'
-d_libname_unique='undef'
-d_localtime64='undef'
-d_mktime64='undef'
-d_ndbm='undef'
-d_ndbm_h_uses_prototypes='undef'
-d_prctl='define'
-d_prctl_set_name='define'
-d_sin6_scope_id='%%IPV6%%'
-d_sockaddr_in6='%%IPV6%%'
-d_sockaddr_sa_len='undef'
-d_static_inline='define'
-d_timegm='define'
-dtrace=''
-extern_C='extern'
-hostosname=''
-i_assert='define'
-i_bfd='undef'
-i_gdbm_ndbm='undef'
-i_gdbmndbm='undef'
-i_mallocmalloc='undef'
-i_stdbool='define'
-i_syspoll='define'
-#incpth='/usr/lib/gcc/i486-slackware-linux/4.8.2/include /usr/local/include /usr/lib/gcc/i486-slackware-linux/4.8.2/include-fixed /usr/include'
-ld_can_script='define'
-#libsfound=' /usr/lib/libgdbm.so /usr/lib/libdb.so /usr/lib/libdl.so /usr/lib/libm.so /usr/lib/libcrypt.so /usr/lib/libutil.so /usr/lib/libc.so'
-nv_overflows_integers_at='256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0'
-perl_static_inline='static __inline__'
-sGMTIME_max='67768036191676799'
-sGMTIME_min='-62167219200'
-sLOCALTIME_max='67768036191673199'
-sLOCALTIME_min='-62167222408'
-#sitelib_stem='/usr/local/lib/perl5/site_perl'
-st_ino_sign='1'
-st_ino_size='8'
-#strings='/usr/include/string.h'
-sysroot=''
-targetdir=''
-targetenv=''
-targethost=''
-targetmkdir=''
-targetport=''
-targetsh='/bin/sh'
-#timeincl='/usr/include/sys/time.h /usr/include/time.h '
-usedevel='undef'
-usedtrace='undef'
-usekernprocpathname='undef'
-usensgetexecutablepath='undef'
-useversionedarchname='undef'
-vaproto='define'
-libdb_needs_pthread='N'
-
-# These symbols changed from perl 5.10.0 to 5.20.0 and probably will
-# change again for new versions, so they're included here for
-# future reference
-api_version='22'
-# Always set this to the base version, not the patched one!
-api_versionstring='5.22.0'
-dynamic_ext='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/DosGlob File/Glob Filter/Util/Call GDBM_File Hash/Util Hash/Util/FieldHash I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc Opcode POSIX PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Tie/Hash/NamedCapture Time/HiRes Time/Piece Unicode/Collate XS/APItest XS/Typemap arybase attributes mro re threads threads/shared'
-installarchlib='/usr/lib/perl5/5.22'
-installprivlib='/usr/lib/perl5/5.22'
-installsitearch='/usr/lib/perl5/5.22'
-installsitelib='/usr/lib/perl5/5.22'
-nonxs_ext='Archive/Tar Attribute/Handlers AutoLoader B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Config/Perl/V Devel/SelfStubber Digest Dumpvalue Env Errno Exporter ExtUtils/CBuilder ExtUtils/Command ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS File/Fetch File/Find File/Path File/Temp FileCache Filter/Simple Getopt/Long HTTP/Tiny I18N/Collate I18N/LangTags IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP Locale/Codes Locale/Maketext Locale/Maketext/Simple Math/BigInt Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NEXT Net/Ping Params/Check Parse/CPAN/Meta Perl/OSType PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage Safe Search/Dict SelfLoader Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Memoize Tie/RefHash Time/Local XSLoader autodie autouse base bignum constant encoding/warnings experimental if lib libnet parent perlfaq podlators Unicode/Normalize version'
-privlib='/usr/lib/perl5/5.22'
-privlibexp='/usr/lib/perl5/5.22'
-archlib='/usr/lib/perl5/5.22'
-archlibexp='/usr/lib/perl5/5.22'
-version='5.22.0'
-version_patchlevel_string='version 22 subversion 0'
-PERL_VERSION=22
-PERL_API_VERSION=22
-PERL_SUBVERSION=0
-patchlevel='22'
-ccdlflags='-fPIC -Wl,-rpath,/usr/lib/perl5/5.22/CORE'
-subversion='0'
-extensions='B Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call GDBM_File Hash/Util I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex Time/HiRes Time/Piece XS/APItest XS/Typemap attrs re threads threads/shared Hash/Util/FieldHash Compress/Zlib Errno IO_Compress_Base IO_Compress_Zlib Unicode/Normalize'
-known_extensions='B Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call GDBM_File Hash/Util I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc NDBM_File ODBM_File Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex Time/HiRes Time/Piece Unicode/Normalize Win32 Win32API/File Win32CORE XS/APItest XS/Typemap attrs re threads threads/shared Hash/Util/FieldHash'
-
-# Make perl use these tools instead of the target binaries during build
-hostgenerate='%%HOSTGENERATE%%'
-hostperl='%%HOSTMINIPERL%%'
diff --git a/lang/perl/files/config.sh-mips64.in b/lang/perl/files/config.sh-mips64.in
deleted file mode 100644 (file)
index be3b334..0000000
+++ /dev/null
@@ -1,1226 +0,0 @@
-#!/bin/sh
-#
-# This file was produced by running the Configure script. It holds all the
-# definitions figured out by Configure. Should you modify one of these values,
-# do not forget to propagate your changes by running "Configure -der". You may
-# instead choose to run each of the .SH files by yourself, or "Configure -S".
-#
-
-# Package name      : perl5
-# Source directory  : .
-# Configuration time: Thu Jan 25 03:12:45 MST 2007
-# Configured by     : root
-# Target system     : linux merope 2.4.30 #1 di 23. jan 15:23:42 cet 2007 mips unknown unknown gnulinux 
-
-Author=''
-Date=''
-Header=''
-Id=''
-Locker=''
-Log=''
-RCSfile=''
-Revision=''
-Source=''
-State=''
-_a='.a'
-_exe=''
-_o='.o'
-afs='false'
-afsroot='/afs'
-alignbytes='8'
-ansi2knr=''
-aphostname='/bin/hostname'
-api_revision='5'
-api_subversion='0'
-
-
-ar='ar'
-archname64=''
-archname='mips64-linux-uclibc'
-archobjs=''
-asctime_r_proto='0'
-awk='awk'
-baserev='5.0'
-bash=''
-bin='/usr/bin'
-binexp='/usr/bin'
-bison='bison'
-byacc='byacc'
-byteorder='87654321'
-c=''
-castflags='0'
-cat='cat'
-cc='%%CC%%'
-cccdlflags='-fPIC'
-ccflags='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 %%CFLAGS%%'
-ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
-ccname='gcc'
-ccsymbols=''
-ccversion=''
-cf_by='root'
-cf_email='root@merope.dev.null'
-cf_time='Thu Jan 25 03:12:45 MST 2007'
-chgrp=''
-chmod='chmod'
-chown=''
-clocktype='clock_t'
-comm='comm'
-compress=''
-contains='grep'
-cp='cp'
-cpio=''
-cpp='cpp'
-cpp_stuff='42'
-cppccsymbols=''
-cppflags='%%CFLAGS%%'
-cpplast='-'
-cppminus='-'
-cpprun='%%CPP%%'
-cppstdin='%%CPP%%'
-cppsymbols=''
-crypt_r_proto='0'
-cryptlib=''
-csh='csh'
-ctermid_r_proto='0'
-ctime_r_proto='0'
-d_Gconvert='sprintf((b),"%.*g",(n),(x))'
-d_PRIEUldbl='define'
-d_PRIFUldbl='define'
-d_PRIGUldbl='define'
-d_PRIXU64='define'
-d_PRId64='define'
-d_PRIeldbl='define'
-d_PRIfldbl='define'
-d_PRIgldbl='define'
-d_PRIi64='define'
-d_PRIo64='define'
-d_PRIu64='define'
-d_PRIx64='define'
-d_SCNfldbl='define'
-d__fwalk='undef'
-d_access='define'
-d_accessx='undef'
-d_acosh='define'
-d_aintl='undef'
-d_alarm='define'
-d_archlib='undef'
-d_asctime_r='undef'
-d_asinh='define'
-d_atanh='define'
-d_atolf='undef'
-d_atoll='define'
-d_attribute_format='define'
-d_attribute_malloc='define'
-d_attribute_nonnull='define'
-d_attribute_noreturn='define'
-d_attribute_pure='define'
-d_attribute_unused='define'
-d_attribute_warn_unused_result='define'
-d_backtrace='define'
-d_bcmp='define'
-d_bcopy='define'
-d_bsd='undef'
-d_bsdgetpgrp='undef'
-d_bsdsetpgrp='undef'
-d_builtin_choose_expr='define'
-d_builtin_expect='undef'
-d_bzero='define'
-d_c99_variadic_macros='define'
-d_casti32='define'
-d_castneg='define'
-d_cbrt='define'
-d_charvspr='undef'
-d_chown='define'
-d_chroot='define'
-d_chsize='undef'
-d_class='undef'
-d_clearenv='define'
-d_closedir='define'
-d_cmsghdr_s='define'
-d_const='define'
-d_copysign='define'
-d_copysignl='undef'
-d_cplusplus='undef'
-d_crypt='define'
-d_crypt_r='undef'
-d_csh='undef'
-d_ctermid='define'
-d_ctermid_r='undef'
-d_ctime_r='undef'
-d_cuserid='define'
-d_dbl_dig='define'
-d_dbminitproto='undef'
-d_difftime='define'
-d_dir_dd_fd='undef'
-d_dirfd='define'
-d_dirnamlen='undef'
-d_dladdr='define'
-d_dlerror='define'
-d_dlopen='define'
-d_dlsymun='undef'
-d_dosuid='undef'
-d_drand48_r='undef'
-d_drand48proto='define'
-d_dup2='define'
-d_eaccess='undef'
-d_endgrent='define'
-d_endgrent_r='undef'
-d_endhent='define'
-d_endhostent_r='undef'
-d_endnent='define'
-d_endnetent_r='undef'
-d_endpent='define'
-d_endprotoent_r='undef'
-d_endpwent='define'
-d_endpwent_r='undef'
-d_endsent='define'
-d_endservent_r='undef'
-d_eofnblk='define'
-d_erf='define'
-d_erfc='define'
-d_eunice='undef'
-d_exp2='define'
-d_expm1='define'
-d_faststdio='undef'
-d_fchdir='define'
-d_fchmod='define'
-d_fchown='define'
-d_fcntl='define'
-d_fcntl_can_lock='define'
-d_fd_macros='define'
-d_fd_set='define'
-d_fdim='define'
-d_fds_bits='undef'
-d_fegetround='undef'
-d_fgetpos='define'
-d_finite='define'
-d_finitel='undef'
-d_flexfnam='define'
-d_flock='define'
-d_flockproto='define'
-d_fma='define'
-d_fmax='define'
-d_fmin='define'
-d_fork='define'
-d_fp_class='undef'
-d_fp_classify='undef'
-d_fp_classl='undef'
-d_fpathconf='define'
-d_fpclass='undef'
-d_fpclassify='define'
-d_fpclassl='undef'
-d_fpgetround='undef'
-d_fpos64_t='undef'
-d_frexpl='undef'
-d_fs_data_s='undef'
-d_fseeko='define'
-d_fsetpos='define'
-d_fstatfs='define'
-d_fstatvfs='define'
-d_fsync='define'
-d_ftello='define'
-d_ftime='undef'
-d_futimes='undef'
-d_getcwd='define'
-d_getespwnam='undef'
-d_getfsstat='undef'
-d_getgrent='define'
-d_getgrent_r='undef'
-d_getgrgid_r='undef'
-d_getgrnam_r='undef'
-d_getgrps='define'
-d_gethbyaddr='define'
-d_gethbyname='define'
-d_gethent='define'
-d_gethname='define'
-d_gethostbyaddr_r='undef'
-d_gethostbyname_r='undef'
-d_gethostent_r='undef'
-d_gethostprotos='define'
-d_getitimer='define'
-d_getlogin='define'
-d_getlogin_r='undef'
-d_getmnt='undef'
-d_getmntent='define'
-d_getnbyaddr='define'
-d_getnbyname='define'
-d_getnent='define'
-d_getnetbyaddr_r='undef'
-d_getnetbyname_r='undef'
-d_getnetent_r='undef'
-d_getnetprotos='define'
-d_getpagsz='define'
-d_getpbyname='define'
-d_getpbynumber='define'
-d_getpent='define'
-d_getpgid='define'
-d_getpgrp2='undef'
-d_getpgrp='define'
-d_getppid='define'
-d_getprior='define'
-d_getprotobyname_r='undef'
-d_getprotobynumber_r='undef'
-d_getprotoent_r='undef'
-d_getprotoprotos='define'
-d_getprpwnam='undef'
-d_getpwent='define'
-d_getpwent_r='undef'
-d_getpwnam_r='undef'
-d_getpwuid_r='undef'
-d_getsbyname='define'
-d_getsbyport='define'
-d_getsent='define'
-d_getservbyname_r='undef'
-d_getservbyport_r='undef'
-d_getservent_r='undef'
-d_getservprotos='define'
-d_getspnam='define'
-d_getspnam_r='undef'
-d_gettimeod='define'
-d_gmtime_r='undef'
-d_gnulibc='undef'
-d_grpasswd='define'
-d_hasmntopt='define'
-d_htonl='define'
-d_hypot='define'
-d_ilogb='define'
-d_ilogbl='undef'
-d_inc_version_list='undef'
-d_index='undef'
-d_inetaton='define'
-d_int64_t='define'
-d_isascii='define'
-d_isfinite='define'
-d_isfinitel='undef'
-d_isinf='define'
-d_isinfl='define'
-d_isless='undef'
-d_isnan='define'
-d_isnanl='undef'
-d_isnormal='define'
-d_j0='undef'
-d_j0l='undef'
-d_killpg='define'
-d_lc_monetary_2008='define'
-d_lchown='define'
-d_ldbl_dig='define'
-d_ldexpl='define'
-d_lgamma='define'
-d_lgamma_r='define'
-d_libm_lib_version='define'
-d_link='define'
-d_llrint='define'
-d_llrintl='define'
-d_llround='define'
-d_llroundl='define'
-d_localtime_r='undef'
-d_localtime_r_needs_tzset='undef'
-d_locconv='define'
-d_lockf='define'
-d_log1p='define'
-d_log2='define'
-d_logb='define'
-d_longdbl='define'
-d_longlong='define'
-d_lrint='define'
-d_lrintl='define'
-d_lround='define'
-d_lroundl='define'
-d_lseekproto='define'
-d_lstat='define'
-d_madvise='define'
-d_malloc_good_size='undef'
-d_malloc_size='undef'
-d_mblen='define'
-d_mbstowcs='define'
-d_mbtowc='define'
-d_memchr='define'
-d_memcmp='define'
-d_memcpy='define'
-d_memmove='define'
-d_memset='define'
-d_mkdir='define'
-d_mkdtemp='define'
-d_mkfifo='define'
-d_mkstemp='define'
-d_mkstemps='undef'
-d_mktime='define'
-d_mmap='define'
-d_modfl='undef'
-d_modfl_pow32_bug='undef'
-d_modflproto='undef'
-d_mprotect='define'
-d_msg='define'
-d_msg_ctrunc='define'
-d_msg_dontroute='define'
-d_msg_oob='define'
-d_msg_peek='define'
-d_msg_proxy='define'
-d_msgctl='define'
-d_msgget='define'
-d_msghdr_s='define'
-d_msgrcv='define'
-d_msgsnd='define'
-d_msync='define'
-d_munmap='define'
-d_mymalloc='undef'
-d_nan='define'
-d_nearbyint='define'
-d_nextafter='define'
-d_nexttoward='undef'
-d_nice='define'
-d_nl_langinfo='define'
-d_nv_preserves_uv='undef'
-d_nv_zero_is_allbits_zero='define'
-d_off64_t='undef'
-d_old_pthread_create_joinable='undef'
-d_oldpthreads='undef'
-d_oldsock='undef'
-d_open3='define'
-d_pathconf='define'
-d_pause='define'
-d_perl_otherlibdirs='undef'
-d_phostname='undef'
-d_pipe='define'
-d_poll='define'
-d_portable='define'
-d_printf_format_null='undef'
-d_procselfexe='define'
-d_pseudofork='undef'
-d_pthread_atfork='undef'
-d_pthread_attr_setscope='define'
-d_pthread_yield='undef'
-d_ptrdiff_t='define'
-d_pwage='undef'
-d_pwchange='undef'
-d_pwclass='undef'
-d_pwcomment='undef'
-d_pwexpire='undef'
-d_pwgecos='define'
-d_pwpasswd='define'
-d_pwquota='undef'
-d_qgcvt='undef'
-d_quad='define'
-d_random_r='undef'
-d_re_comp='undef'
-d_readdir64_r='undef'
-d_readdir='define'
-d_readdir_r='undef'
-d_readlink='define'
-d_readv='define'
-d_recvmsg='define'
-d_regcmp='undef'
-d_regcomp='define'
-d_remainder='define'
-d_remquo='define'
-d_rename='define'
-d_rewinddir='define'
-d_rint='define'
-d_rmdir='define'
-d_round='define'
-d_safebcpy='undef'
-d_safemcpy='undef'
-d_sanemcmp='define'
-d_sbrkproto='define'
-d_scalbn='define'
-d_scalbnl='undef'
-d_sched_yield='define'
-d_scm_rights='define'
-d_seekdir='define'
-d_select='define'
-d_sem='define'
-d_semctl='define'
-d_semctl_semid_ds='define'
-d_semctl_semun='define'
-d_semget='define'
-d_semop='define'
-d_sendmsg='define'
-d_setegid='define'
-d_seteuid='define'
-d_setgrent='define'
-d_setgrent_r='undef'
-d_setgrps='define'
-d_sethent='define'
-d_sethostent_r='undef'
-d_setitimer='define'
-d_setlinebuf='define'
-d_setlocale='define'
-d_setlocale_r='undef'
-d_setnent='define'
-d_setnetent_r='undef'
-d_setpent='define'
-d_setpgid='define'
-d_setpgrp2='undef'
-d_setpgrp='define'
-d_setprior='define'
-d_setproctitle='undef'
-d_setprotoent_r='undef'
-d_setpwent='define'
-d_setpwent_r='undef'
-d_setregid='define'
-d_setresgid='define'
-d_setresuid='define'
-d_setreuid='define'
-d_setrgid='undef'
-d_setruid='undef'
-d_setsent='define'
-d_setservent_r='undef'
-d_setsid='define'
-d_setvbuf='define'
-d_sfio='undef'
-d_shm='define'
-d_shmat='define'
-d_shmatprototype='define'
-d_shmctl='define'
-d_shmdt='define'
-d_shmget='define'
-d_sigaction='define'
-d_signbit='undef'
-d_sigprocmask='define'
-d_sigsetjmp='define'
-d_sitearch='define'
-d_snprintf='define'
-d_sockatmark='undef'
-d_sockatmarkproto='undef'
-d_socket='define'
-d_socklen_t='define'
-d_sockpair='define'
-d_socks5_init='undef'
-d_sprintf_returns_strlen='define'
-d_sqrtl='undef'
-d_srand48_r='undef'
-d_srandom_r='undef'
-d_sresgproto='undef'
-d_sresuproto='undef'
-d_stat='define'
-d_statblks='define'
-d_statfs_f_flags='undef'
-d_statfs_s='define'
-d_statvfs='define'
-d_stdio_cnt_lval='undef'
-d_stdio_ptr_lval='undef'
-d_stdio_ptr_lval_nochange_cnt='undef'
-d_stdio_ptr_lval_sets_cnt='undef'
-d_stdio_stream_array='undef'
-d_stdiobase='undef'
-d_stdstdio='undef'
-d_strchr='define'
-d_strcoll='define'
-d_strctcpy='define'
-d_strerrm='strerror(e)'
-d_strerror='define'
-d_strerror_r='undef'
-d_strftime='define'
-d_strlcat='define'
-d_strlcpy='define'
-d_strtod='define'
-d_strtol='define'
-d_strtold='define'
-d_strtoll='define'
-d_strtoq='define'
-d_strtoul='define'
-d_strtoull='define'
-d_strtouq='define'
-d_strxfrm='define'
-d_suidsafe='undef'
-d_symlink='define'
-d_syscall='define'
-d_syscallproto='define'
-d_sysconf='define'
-d_sysernlst=''
-d_syserrlst='undef'
-d_system='define'
-d_tcgetpgrp='define'
-d_tcsetpgrp='define'
-d_telldir='define'
-d_telldirproto='define'
-d_tgamma='define'
-d_time='define'
-d_times='define'
-d_tm_tm_gmtoff='define'
-d_tm_tm_zone='define'
-d_tmpnam_r='undef'
-d_trunc='define'
-d_truncate='define'
-d_truncl='define'
-d_ttyname_r='undef'
-d_tzname='define'
-d_u32align='define'
-d_ualarm='define'
-d_umask='define'
-d_uname='define'
-d_union_semun='undef'
-d_unordered='undef'
-d_unsetenv='define'
-d_usleep='define'
-d_usleepproto='define'
-d_ustat='define'
-d_vendorarch='undef'
-d_vendorbin='undef'
-d_vendorlib='undef'
-d_vendorscript='undef'
-d_vfork='undef'
-d_void_closedir='undef'
-d_voidsig='define'
-d_voidtty=''
-d_volatile='define'
-d_vprintf='define'
-d_vsnprintf='define'
-d_wait4='define'
-d_waitpid='define'
-d_wcscmp='define'
-d_wcstombs='define'
-d_wcsxfrm='define'
-d_wctomb='define'
-d_writev='define'
-d_xenix='undef'
-date='date'
-db_hashtype='u_int32_t'
-db_prefixtype='size_t'
-db_version_major=''
-db_version_minor=''
-db_version_patch=''
-defvoidused='15'
-direntrytype='struct dirent'
-dlext='so'
-dlsrc='dl_dlopen.xs'
-doublekind='4'
-doublesize='8'
-drand01='drand48()'
-drand48_r_proto='0'
-
-eagain='EAGAIN'
-ebcdic='undef'
-echo='echo'
-egrep='egrep'
-emacs=''
-endgrent_r_proto='0'
-endhostent_r_proto='0'
-endnetent_r_proto='0'
-endprotoent_r_proto='0'
-endpwent_r_proto='0'
-endservent_r_proto='0'
-eunicefix=':'
-exe_ext=''
-expr='expr'
-extras=''
-fflushNULL='define'
-fflushall='undef'
-find=''
-firstmakefile='makefile'
-flex=''
-fpossize='24'
-fpostype='fpos_t'
-freetype='void'
-from=':'
-full_ar='%%AR%%'
-full_csh='csh'
-full_sed='sed'
-gccansipedantic=''
-gccosandvers=''
-gccversion='3.4.3'
-getgrent_r_proto='0'
-getgrgid_r_proto='0'
-getgrnam_r_proto='0'
-gethostbyaddr_r_proto='0'
-gethostbyname_r_proto='0'
-gethostent_r_proto='0'
-getlogin_r_proto='0'
-getnetbyaddr_r_proto='0'
-getnetbyname_r_proto='0'
-getnetent_r_proto='0'
-getprotobyname_r_proto='0'
-getprotobynumber_r_proto='0'
-getprotoent_r_proto='0'
-getpwent_r_proto='0'
-getpwnam_r_proto='0'
-getpwuid_r_proto='0'
-getservbyname_r_proto='0'
-getservbyport_r_proto='0'
-getservent_r_proto='0'
-getspnam_r_proto='0'
-gidformat='"u"'
-gidsign='1'
-gidsize='4'
-gidtype='gid_t'
-glibpth='/usr/shlib  /lib /usr/lib /usr/lib/386 /lib/386 /usr/ccs/lib /usr/ucblib /usr/local/lib '
-gmake='gmake'
-gmtime_r_proto='0'
-gnulibc_version=''
-grep='grep'
-groupcat='cat /etc/group'
-groupstype='gid_t'
-gzip='gzip'
-h_fcntl='false'
-h_sysfile='true'
-hint='recommended'
-hostcat='cat /etc/hosts'
-html1dir=' '
-html1direxp=''
-html3dir=' '
-html3direxp=''
-i16size='2'
-i16type='short'
-i32size='4'
-i32type='int'
-i64size='8'
-i64type='long'
-i8size='1'
-i8type='signed char'
-i_arpainet='define'
-i_bsdioctl=''
-i_crypt='define'
-i_db='define'
-i_dbm='undef'
-i_dirent='define'
-i_dld='undef'
-i_dlfcn='define'
-i_execinfo='define'
-i_fcntl='undef'
-i_fenv='undef'
-i_float='define'
-i_fp='undef'
-i_fp_class='undef'
-i_gdbm='define'
-i_grp='define'
-i_ieeefp='undef'
-i_inttypes='define'
-i_langinfo='define'
-i_libutil='undef'
-i_limits='define'
-i_locale='define'
-i_machcthr='undef'
-i_malloc='define'
-i_math='define'
-i_memory='undef'
-i_mntent='define'
-i_ndbm='undef'
-i_netdb='define'
-i_neterrno='undef'
-i_netinettcp='define'
-i_niin='define'
-i_poll='define'
-i_prot='undef'
-i_pthread='define'
-i_pwd='define'
-i_quadmath='define'
-i_rpcsvcdbm='undef'
-i_sfio='undef'
-i_sgtty='undef'
-i_shadow='define'
-i_socks='undef'
-i_stdarg='define'
-i_stddef='define'
-i_stdint='define'
-i_stdlib='define'
-i_string='define'
-i_sunmath='undef'
-i_sysaccess='undef'
-i_sysdir='define'
-i_sysfile='define'
-i_sysfilio='undef'
-i_sysin='undef'
-i_sysioctl='define'
-i_syslog='define'
-i_sysmman='define'
-i_sysmode='undef'
-i_sysmount='define'
-i_sysndir='undef'
-i_sysparam='define'
-i_sysresrc='define'
-i_syssecrt='undef'
-i_sysselct='define'
-i_syssockio='undef'
-i_sysstat='define'
-i_sysstatfs='define'
-i_sysstatvfs='define'
-i_systime='define'
-i_systimek='undef'
-i_systimes='define'
-i_systypes='define'
-i_sysuio='define'
-i_sysun='define'
-i_sysutsname='define'
-i_sysvfs='define'
-i_syswait='define'
-i_termio='undef'
-i_termios='define'
-i_time='define'
-i_unistd='define'
-i_ustat='define'
-i_utime='define'
-i_values='define'
-i_varargs='undef'
-i_varhdr='stdarg.h'
-i_vfork='undef'
-ignore_versioned_solibs='y'
-inc_version_list=' '
-inc_version_list_init='0'
-incpath=''
-inews=''
-
-installbin='/usr/bin'
-initialinstalllocation='/usr/bin'
-installhtml1dir=''
-installhtml3dir=''
-installman1dir=''
-installman3dir=''
-installprefix='/usr'
-installprefixexp='/usr'
-
-installscript='/usr/bin'
-
-installsitebin='/usr/bin'
-installsitehtml1dir=''
-installsitehtml3dir=''
-
-installsiteman1dir=''
-installsiteman3dir=''
-installsitescript='/usr/bin'
-installstyle='lib/perl5'
-installusrbinperl='define'
-installvendorarch=''
-installvendorbin=''
-installvendorhtml1dir=''
-installvendorhtml3dir=''
-installvendorlib=''
-installvendorman1dir=''
-installvendorman3dir=''
-installvendorscript=''
-intsize='4'
-issymlink='test -h'
-ivdformat='"ld"'
-ivsize='8'
-ivtype='long'
-ksh=''
-ld='%%LD%%'
-lddlflags='-shared %%LDFLAGS%%'
-ldflags='%%EXTRA_PERLLIBDIRS%%'
-ldflags_uselargefiles=''
-ldlibpthname='LD_LIBRARY_PATH'
-less='less'
-lib_ext='.a'
-libc=''
-libperl='libperl.so'
-libpth='%%LIBDIRS%%'
-libs='-lgdbm -ldb -ldl -lm -lcrypt -lutil -lc'
-libsdirs='%%LIBDIRS%%'
-libsfiles=' libdl.so libm.so libcrypt.so libutil.so libc.so'
-#libsfound=' /usr/lib/libdl.so /usr/lib/libm.so /usr/lib/libcrypt.so /usr/lib/libutil.so /usr/lib/libc.so'
-libspath='%%LIBDIRS%%'
-libswanted='sfio socket inet nm ndbm gdbm dbm db malloc dl dld ld sun m crypt sec util c cposix posix ucb BSD'
-libswanted_uselargefiles=''
-line=''
-lint=''
-lkflags=''
-ln='ln'
-lns='/bin/ln -s'
-localtime_r_proto='0'
-locincpth=' '
-loclibpth=' '
-longdblkind='6'
-longdblsize='16'
-longlongsize='8'
-longsize='8'
-lp=''
-lpr=''
-ls='ls'
-lseeksize='8'
-lseektype='off_t'
-mail=''
-mailx=''
-make='make'
-make_set_make='#'
-mallocobj=''
-mallocsrc=''
-malloctype='void *'
-man1dir=' '
-man1direxp=''
-man1ext='0'
-man3dir=' '
-man3direxp=''
-man3ext='0'
-mips_type=''
-mistrustnm=''
-mkdir='mkdir'
-mmaptype='void *'
-modetype='mode_t'
-more='more'
-multiarch='undef'
-mv=''
-myarchname='mips64-linux-uclibc'
-mydomain='.dev.null'
-myhostname='merope'
-myuname='linux merope 2.4.30 #1 di 23. jan 15:23:42 cet 2007 mips64 unknown unknown gnulinux '
-n='-n'
-need_va_copy='define'
-netdb_hlen_type='size_t'
-netdb_host_type='char *'
-netdb_name_type='const char *'
-netdb_net_type='in_addr_t'
-nm='nm'
-nm_opt=''
-nm_so_opt='--dynamic'
-
-nroff='nroff'
-nvEUformat='"E"'
-nvFUformat='"F"'
-nvGUformat='"G"'
-nv_preserves_uv_bits='53'
-nveformat='"e"'
-nvfformat='"f"'
-nvgformat='"g"'
-nvsize='8'
-nvtype='double'
-o_nonblock='O_NONBLOCK'
-obj_ext='.o'
-old_pthread_create_joinable=''
-optimize='-O2'
-orderlib='false'
-osname='linux'
-osvers='2.4.30'
-otherlibdirs=' '
-package='perl5'
-pager='/usr/bin/less'
-passcat='cat /etc/passwd'
-
-path_sep=':'
-perl5=''
-perl=''
-perl_patchlevel=''
-perladmin='root@merope.dev.null'
-perllibs='-ldl -lm -lcrypt -lutil -lc %%EXTRA_PERLLIBS%%'
-perlpath='/usr/bin/perl'
-pg='pg'
-phostname='hostname'
-pidtype='pid_t'
-plibpth=''
-pmake=''
-pr=''
-prefix='/usr'
-prefixexp='/usr'
-
-
-procselfexe='"/proc/self/exe"'
-prototype='define'
-ptrsize='8'
-quadkind='2'
-quadtype='long'
-randbits='48'
-randfunc='drand48'
-random_r_proto='0'
-randseedtype='long'
-ranlib=':'
-rd_nodata='-1'
-readdir64_r_proto='0'
-readdir_r_proto='0'
-revision='5'
-rm='rm'
-rm_try='/bin/rm -f try try a.out .out try.[cho] try..o core core.try* try.core*'
-rmail=''
-run=''
-runnm='false'
-sPRIEUldbl='"E"'
-sPRIFUldbl='"F"'
-sPRIGUldbl='"G"'
-sPRIXU64='"lX"'
-sPRId64='"ld"'
-sPRIeldbl='"e"'
-sPRIfldbl='"f"'
-sPRIgldbl='"g"'
-sPRIi64='"li"'
-sPRIo64='"lo"'
-sPRIu64='"lu"'
-sPRIx64='"lx"'
-sSCNfldbl='"f"'
-sched_yield='sched_yield()'
-scriptdir='/usr/bin'
-scriptdirexp='/usr/bin'
-sed='sed'
-seedfunc='srand48'
-selectminbits='64'
-selecttype='fd_set *'
-sendmail=''
-setgrent_r_proto='0'
-sethostent_r_proto='0'
-setlocale_r_proto='0'
-setnetent_r_proto='0'
-setprotoent_r_proto='0'
-setpwent_r_proto='0'
-setservent_r_proto='0'
-sh='/bin/sh'
-shar=''
-sharpbang='#!'
-shmattype='void *'
-shortsize='2'
-shrpenv=''
-shsharp='true'
-sig_count='128'
-sig_name='ZERO HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM USR1 USR2 CHLD PWR WINCH URG IO STOP TSTP CONT TTIN TTOU VTALRM PROF XCPU XFSZ RTMIN NUM33 NUM34 NUM35 NUM36 NUM37 NUM38 NUM39 NUM40 NUM41 NUM42 NUM43 NUM44 NUM45 NUM46 NUM47 NUM48 NUM49 NUM50 NUM51 NUM52 NUM53 NUM54 NUM55 NUM56 NUM57 NUM58 NUM59 NUM60 NUM61 NUM62 NUM63 NUM64 NUM65 NUM66 NUM67 NUM68 NUM69 NUM70 NUM71 NUM72 NUM73 NUM74 NUM75 NUM76 NUM77 NUM78 NUM79 NUM80 NUM81 NUM82 NUM83 NUM84 NUM85 NUM86 NUM87 NUM88 NUM89 NUM90 NUM91 NUM92 NUM93 NUM94 NUM95 NUM96 NUM97 NUM98 NUM99 NUM100 NUM101 NUM102 NUM103 NUM104 NUM105 NUM106 NUM107 NUM108 NUM109 NUM110 NUM111 NUM112 NUM113 NUM114 NUM115 NUM116 NUM117 NUM118 NUM119 NUM120 NUM121 NUM122 NUM123 NUM124 NUM125 NUM126 RTMAX IOT CLD POLL '
-sig_name_init='"ZERO", "HUP", "INT", "QUIT", "ILL", "TRAP", "ABRT", "EMT", "FPE", "KILL", "BUS", "SEGV", "SYS", "PIPE", "ALRM", "TERM", "USR1", "USR2", "CHLD", "PWR", "WINCH", "URG", "IO", "STOP", "TSTP", "CONT", "TTIN", "TTOU", "VTALRM", "PROF", "XCPU", "XFSZ", "RTMIN", "NUM33", "NUM34", "NUM35", "NUM36", "NUM37", "NUM38", "NUM39", "NUM40", "NUM41", "NUM42", "NUM43", "NUM44", "NUM45", "NUM46", "NUM47", "NUM48", "NUM49", "NUM50", "NUM51", "NUM52", "NUM53", "NUM54", "NUM55", "NUM56", "NUM57", "NUM58", "NUM59", "NUM60", "NUM61", "NUM62", "NUM63", "NUM64", "NUM65", "NUM66", "NUM67", "NUM68", "NUM69", "NUM70", "NUM71", "NUM72", "NUM73", "NUM74", "NUM75", "NUM76", "NUM77", "NUM78", "NUM79", "NUM80", "NUM81", "NUM82", "NUM83", "NUM84", "NUM85", "NUM86", "NUM87", "NUM88", "NUM89", "NUM90", "NUM91", "NUM92", "NUM93", "NUM94", "NUM95", "NUM96", "NUM97", "NUM98", "NUM99", "NUM100", "NUM101", "NUM102", "NUM103", "NUM104", "NUM105", "NUM106", "NUM107", "NUM108", "NUM109", "NUM110", "NUM 111", "NUM112", "NUM113", "NUM114", "NUM115", "NUM116", "NUM117", "NUM118", "NUM119", "NUM120", "NUM121", "NUM122", "NUM123", "NUM124", "NUM125", "NUM126", "RTMAX", "IOT", "CLD", "POLL", 0'
-sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 6 18 22 '
-sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 6, 18, 22, 0'
-sig_size='131'
-signal_t='void'
-sitearch=''
-sitearchexp=''
-sitebin='/usr/bin'
-sitebinexp='/usr/bin'
-sitehtml1dir=''
-sitehtml1direxp=''
-sitehtml3dir=''
-sitehtml3direxp=''
-sitelib=''
-#sitelib_stem='/usr/lib/perl5/site_perl'
-sitelibexp=''
-siteman1dir=''
-siteman1direxp=''
-siteman3dir=''
-siteman3direxp=''
-siteprefix='/usr'
-siteprefixexp='/usr'
-sitescript='/usr/bin'
-sitescriptexp='/usr/bin'
-sizesize='8'
-sizetype='size_t'
-sleep=''
-smail=''
-so='so'
-sockethdr=''
-socketlib=''
-socksizetype='socklen_t'
-sort='sort'
-spackage='Perl5'
-spitshell='cat'
-srand48_r_proto='0'
-srandom_r_proto='0'
-src='.'
-ssizetype='ssize_t'
-startperl='#!/usr/bin/perl'
-startsh='#!/bin/sh'
-static_ext=' '
-stdchar='char'
-stdio_base='((fp)->_base)'
-stdio_bufsiz='((fp)->_cnt + (fp)->_ptr - (fp)->_base)'
-stdio_cnt='((fp)->_cnt)'
-stdio_filbuf=''
-stdio_ptr='((fp)->_ptr)'
-stdio_stream_array=''
-strerror_r_proto='0'
-#strings='/usr/include/string.h'
-submit=''
-sysman='/usr/share/man/man1'
-tail=''
-tar=''
-targetarch='mips64-linux-uclibc'
-tbl=''
-tee=''
-test='test'
-#timeincl='/usr/include/sys/time.h /usr/include/time.h '
-timetype='time_t'
-tmpnam_r_proto='0'
-to=':'
-touch='touch'
-tr='tr'
-trnl='\n'
-troff=''
-ttyname_r_proto='0'
-u16size='2'
-u16type='unsigned short'
-u32size='4'
-u32type='unsigned int'
-u64size='8'
-u64type='unsigned long'
-u8size='1'
-u8type='unsigned char'
-uidformat='"u"'
-uidsign='1'
-uidsize='4'
-uidtype='uid_t'
-uname='uname'
-uniq='uniq'
-uquadtype='unsigned long'
-use5005threads='undef'
-use64bitall='define'
-use64bitint='undef'
-usecbacktrace='undef'
-usecrosscompile='define'
-usedl='define'
-usefaststdio='undef'
-useithreads='undef'
-uselargefiles='define'
-uselongdouble='undef'
-usemallocwrap='define'
-usemorebits='undef'
-usemultiplicity='undef'
-usemymalloc='n'
-usenm='true'
-useopcode='true'
-useperlio='define'
-useposix='true'
-usequadmath='undef'
-usereentrant='undef'
-userelocatableinc='undef'
-usesfio='false'
-useshrplib='true'
-usesitecustomize='undef'
-usesocks='undef'
-usethreads='undef'
-usevendorprefix='undef'
-usevfork='false'
-usrinc='%%INCDIRS%%'
-uuname=''
-uvXUformat='"lX"'
-uvoformat='"lo"'
-uvsize='8'
-uvtype='unsigned long'
-uvuformat='"lu"'
-uvxformat='"lx"'
-vendorarch=''
-vendorarchexp=''
-vendorbin=''
-vendorbinexp=''
-vendorhtml1dir=' '
-vendorhtml1direxp=''
-vendorhtml3dir=' '
-vendorhtml3direxp=''
-vendorlib=''
-vendorlib_stem=''
-vendorlibexp=''
-vendorman1dir=' '
-vendorman1direxp=''
-vendorman3dir=' '
-vendorman3direxp=''
-vendorprefix=''
-vendorprefixexp=''
-vendorscript=''
-vendorscriptexp=''
-
-
-versiononly='undef'
-vi=''
-voidflags='15'
-xlibpth='/usr/lib/386 /lib/386'
-yacc='yacc'
-yaccflags=''
-zcat=''
-zip='zip'
-# Configure command line arguments.
-config_arg0='./Configure'
-config_args='-der'
-config_argc=1
-config_arg1='-der'
-PERL_REVISION=5
-PERL_API_REVISION=5
-
-PERL_API_SUBVERSION=0
-PERL_PATCHLEVEL=
-PERL_CONFIG_SH=true
-# Fix problem with HiRes timer.
-d_nanosleep='define'
-d_clock_gettime='define'
-d_clock_getres='define'
-d_clock_nanosleep='define'
-d_clock='define'
-
-# New symbols for perl 5.20.0
-bin_ELF='define'
-charbits='8'
-charsize='1'
-d_asctime64='undef'
-d_attribute_deprecated='define'
-d_ctime64='undef'
-d_difftime64='undef'
-d_gdbm_ndbm_h_uses_prototypes='undef'
-d_gdbmndbm_h_uses_prototypes='undef'
-d_getaddrinfo='define'
-d_getnameinfo='define'
-d_gmtime64='undef'
-d_inetntop='define'
-d_inetpton='define'
-d_ip_mreq='define'
-d_ip_mreq_source='define'
-d_ipv6_mreq='%%IPV6%%'
-d_ipv6_mreq_source='undef'
-d_isblank='define'
-d_libname_unique='undef'
-d_localtime64='undef'
-d_mktime64='undef'
-d_ndbm='undef'
-d_ndbm_h_uses_prototypes='undef'
-d_prctl='define'
-d_prctl_set_name='define'
-d_sin6_scope_id='%%IPV6%%'
-d_sockaddr_in6='%%IPV6%%'
-d_sockaddr_sa_len='undef'
-d_static_inline='define'
-d_timegm='define'
-dtrace=''
-extern_C='extern'
-hostosname=''
-i_assert='define'
-i_bfd='undef'
-i_gdbm_ndbm='undef'
-i_gdbmndbm='undef'
-i_mallocmalloc='undef'
-i_stdbool='define'
-i_syspoll='define'
-#incpth='/usr/lib/gcc/i486-slackware-linux/4.8.2/include /usr/local/include /usr/lib/gcc/i486-slackware-linux/4.8.2/include-fixed /usr/include'
-ld_can_script='define'
-#libsfound=' /usr/lib/libgdbm.so /usr/lib/libdb.so /usr/lib/libdl.so /usr/lib/libm.so /usr/lib/libcrypt.so /usr/lib/libutil.so /usr/lib/libc.so'
-nv_overflows_integers_at='256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0'
-perl_static_inline='static __inline__'
-sGMTIME_max='67768036191676799'
-sGMTIME_min='-62167219200'
-sLOCALTIME_max='67768036191673199'
-sLOCALTIME_min='-62167222408'
-#sitelib_stem='/usr/local/lib/perl5/site_perl'
-st_ino_sign='1'
-st_ino_size='8'
-#strings='/usr/include/string.h'
-sysroot=''
-targetdir=''
-targetenv=''
-targethost=''
-targetmkdir=''
-targetport=''
-targetsh='/bin/sh'
-#timeincl='/usr/include/sys/time.h /usr/include/time.h '
-usedevel='undef'
-usedtrace='undef'
-usekernprocpathname='undef'
-usensgetexecutablepath='undef'
-useversionedarchname='undef'
-vaproto='define'
-libdb_needs_pthread='N'
-
-# These symbols changed from perl 5.10.0 to 5.20.0 and probably will
-# change again for new versions, so they're included here for
-# future reference
-api_version='22'
-# Always set this to the base version, not the patched one!
-api_versionstring='5.22.0'
-dynamic_ext='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/DosGlob File/Glob Filter/Util/Call GDBM_File Hash/Util Hash/Util/FieldHash I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc Opcode POSIX PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Tie/Hash/NamedCapture Time/HiRes Time/Piece Unicode/Collate XS/APItest XS/Typemap arybase attributes mro re threads threads/shared'
-installarchlib='/usr/lib/perl5/5.22'
-installprivlib='/usr/lib/perl5/5.22'
-installsitearch='/usr/lib/perl5/5.22'
-installsitelib='/usr/lib/perl5/5.22'
-nonxs_ext='Archive/Tar Attribute/Handlers AutoLoader B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Config/Perl/V Devel/SelfStubber Digest Dumpvalue Env Errno Exporter ExtUtils/CBuilder ExtUtils/Command ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS File/Fetch File/Find File/Path File/Temp FileCache Filter/Simple Getopt/Long HTTP/Tiny I18N/Collate I18N/LangTags IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP Locale/Codes Locale/Maketext Locale/Maketext/Simple Math/BigInt Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NEXT Net/Ping Params/Check Parse/CPAN/Meta Perl/OSType PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage Safe Search/Dict SelfLoader Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Memoize Tie/RefHash Time/Local XSLoader autodie autouse base bignum constant encoding/warnings experimental if lib libnet parent perlfaq podlators Unicode/Normalize version'
-privlib='/usr/lib/perl5/5.22'
-privlibexp='/usr/lib/perl5/5.22'
-archlib='/usr/lib/perl5/5.22'
-archlibexp='/usr/lib/perl5/5.22'
-version='5.22.0'
-version_patchlevel_string='version 22 subversion 0'
-PERL_VERSION=22
-PERL_API_VERSION=22
-PERL_SUBVERSION=0
-patchlevel='22'
-ccdlflags='-fPIC -Wl,-rpath,/usr/lib/perl5/5.22/CORE'
-subversion='0'
-extensions='B Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call GDBM_File Hash/Util I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex Time/HiRes Time/Piece XS/APItest XS/Typemap attrs re threads threads/shared Hash/Util/FieldHash Compress/Zlib Errno IO_Compress_Base IO_Compress_Zlib Unicode/Normalize'
-known_extensions='B Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call GDBM_File Hash/Util I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc NDBM_File ODBM_File Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex Time/HiRes Time/Piece Unicode/Normalize Win32 Win32API/File Win32CORE XS/APItest XS/Typemap attrs re threads threads/shared Hash/Util/FieldHash'
-
-# Make perl use these tools instead of the target binaries during build
-hostgenerate='%%HOSTGENERATE%%'
-hostperl='%%HOSTMINIPERL%%'
diff --git a/lang/perl/files/config.sh-mipsel-mt.in b/lang/perl/files/config.sh-mipsel-mt.in
deleted file mode 100644 (file)
index 26c6d4e..0000000
+++ /dev/null
@@ -1,1213 +0,0 @@
-#!/bin/sh
-#
-# This file was produced by running the Configure script. It holds all the
-# definitions figured out by Configure. Should you modify one of these values,
-# do not forget to propagate your changes by running "Configure -der". You may
-# instead choose to run each of the .SH files by yourself, or "Configure -S".
-#
-
-# Package name      : perl5
-# Source directory  : .
-# Configuration time: Thu Jan 25 03:12:45 MST 2007
-# Configured by     : root
-# Target system     : linux merope 2.4.30 #1 di 23. jan 15:23:42 cet 2007 mips unknown unknown gnulinux 
-
-Author=''
-Date=''
-Header=''
-Id=''
-Locker=''
-Log=''
-RCSfile=''
-Revision=''
-Source=''
-State=''
-_a='.a'
-_exe=''
-_o='.o'
-afs='false'
-afsroot='/afs'
-alignbytes='8'
-ansi2knr=''
-aphostname='/bin/hostname'
-api_revision='5'
-api_subversion='0'
-ar='ar'
-archname64=''
-archname='mipsel-linux-uclibc'
-archobjs=''
-asctime_r_proto='REENTRANT_PROTO_B_SB'
-awk='awk'
-baserev='5.0'
-bash=''
-bin='/usr/bin'
-binexp='/usr/bin'
-bison='bison'
-byacc='byacc'
-byteorder='1234'
-c=''
-castflags='0'
-cat='cat'
-cc='%%CC%%'
-cccdlflags='-fPIC'
-ccflags='-D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 %%CFLAGS%%'
-ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
-ccname='gcc'
-ccsymbols=''
-ccversion=''
-cf_by='root'
-cf_email='root@merope.dev.null'
-cf_time='Thu Jan 25 03:12:45 MST 2007'
-chgrp=''
-chmod='chmod'
-chown=''
-clocktype='clock_t'
-comm='comm'
-compress=''
-contains='grep'
-cp='cp'
-cpio=''
-cpp='cpp'
-cpp_stuff='42'
-cppccsymbols=''
-cppflags='-D_REENTRANT -D_GNU_SOURCE %%CFLAGS%%'
-cpplast='-'
-cppminus='-'
-cpprun='%%CPP%%'
-cppstdin='%%CPP%%'
-cppsymbols='__ELF__=1 _FILE_OFFSET_BITS=64 __GLIBC__=2 __GLIBC_MINOR__=2 __GNUC__=3 __GNUC_MINOR__=4 __GNU_LIBRARY__=6 LANGUAGE_C=1 _LANGUAGE_C=1 __LANGUAGE_C=1 __LANGUAGE_C__=1 _LARGEFILE_SOURCE=1 MIPSEL=1 _MIPSEL=1 __MIPSEL=1 __MIPSEL__=1 _MIPS_FPSET=16 _MIPS_ISA=_MIPS_ISA_MIPS1 _MIPS_SIM=1 _MIPS_SZINT=32 _MIPS_SZLONG=32 _MIPS_SZPTR=32 __PIC__=1 _POSIX_C_SOURCE=199506L _POSIX_SOURCE=1 R3000=1 _R3000=1 __R3000=1 __R3000__=1 __STDC__=1 __USE_BSD=1 __USE_FILE_OFFSET64=1 __USE_LARGEFILE=1 __USE_MISC=1 __USE_POSIX=1 __USE_POSIX199309=1 __USE_POSIX199506=1 __USE_POSIX2=1 __USE_SVID=1 linux=1 __linux=1 __linux__=1 mips=1 _mips=1 __mips=1 __mips__=1 __pic__=1 unix=1 __unix=1 __unix__=1'
-crypt_r_proto='%%CRYPT_R_PROTO%%'
-cryptlib=''
-csh='csh'
-ctermid_r_proto='0'
-ctime_r_proto='REENTRANT_PROTO_B_SB'
-d_Gconvert='sprintf((b),"%.*g",(n),(x))'
-d_PRIEUldbl='define'
-d_PRIFUldbl='define'
-d_PRIGUldbl='define'
-d_PRIXU64='define'
-d_PRId64='define'
-d_PRIeldbl='define'
-d_PRIfldbl='define'
-d_PRIgldbl='define'
-d_PRIi64='define'
-d_PRIo64='define'
-d_PRIu64='define'
-d_PRIx64='define'
-d_SCNfldbl='define'
-d__fwalk='undef'
-d_access='define'
-d_accessx='undef'
-d_acosh='define'
-d_aintl='undef'
-d_alarm='define'
-d_archlib='undef'
-d_asctime_r='define'
-d_asinh='define'
-d_atanh='define'
-d_atolf='undef'
-d_atoll='define'
-d_attribute_format='define'
-d_attribute_malloc='define'
-d_attribute_nonnull='define'
-d_attribute_noreturn='define'
-d_attribute_pure='define'
-d_attribute_unused='define'
-d_attribute_warn_unused_result='define'
-d_backtrace='define'
-d_bcmp='define'
-d_bcopy='define'
-d_bsd='undef'
-d_bsdgetpgrp='undef'
-d_bsdsetpgrp='undef'
-d_builtin_choose_expr='define'
-d_builtin_expect='undef'
-d_bzero='define'
-d_c99_variadic_macros='define'
-d_casti32='define'
-d_castneg='define'
-d_cbrt='define'
-d_charvspr='undef'
-d_chown='define'
-d_chroot='define'
-d_chsize='undef'
-d_class='undef'
-d_clearenv='define'
-d_closedir='define'
-d_cmsghdr_s='define'
-d_const='define'
-d_copysign='define'
-d_copysignl='undef'
-d_cplusplus='undef'
-d_crypt='%%CRYPT%%'
-d_crypt_r='%%CRYPT%%'
-d_csh='undef'
-d_ctermid='define'
-d_ctermid_r='undef'
-d_ctime_r='define'
-d_cuserid='define'
-d_dbl_dig='define'
-d_dbminitproto='undef'
-d_difftime='define'
-d_dir_dd_fd='undef'
-d_dirfd='define'
-d_dirnamlen='undef'
-d_dladdr='define'
-d_dlerror='define'
-d_dlopen='define'
-d_dlsymun='undef'
-d_dosuid='undef'
-d_drand48_r='define'
-d_drand48proto='define'
-d_dup2='define'
-d_eaccess='undef'
-d_endgrent='define'
-d_endgrent_r='undef'
-d_endhent='define'
-d_endhostent_r='undef'
-d_endnent='define'
-d_endnetent_r='undef'
-d_endpent='define'
-d_endprotoent_r='undef'
-d_endpwent='define'
-d_endpwent_r='undef'
-d_endsent='define'
-d_endservent_r='undef'
-d_eofnblk='define'
-d_erf='define'
-d_erfc='define'
-d_eunice='undef'
-d_exp2='define'
-d_expm1='define'
-d_faststdio='undef'
-d_fchdir='define'
-d_fchmod='define'
-d_fchown='define'
-d_fcntl='define'
-d_fcntl_can_lock='define'
-d_fd_macros='define'
-d_fd_set='define'
-d_fdim='define'
-d_fds_bits='define'
-d_fegetround='undef'
-d_fgetpos='define'
-d_finite='define'
-d_finitel='undef'
-d_flexfnam='define'
-d_flock='define'
-d_flockproto='define'
-d_fma='define'
-d_fmax='define'
-d_fmin='define'
-d_fork='define'
-d_fp_class='undef'
-d_fp_classify='undef'
-d_fp_classl='undef'
-d_fpathconf='define'
-d_fpclass='undef'
-d_fpclassify='define'
-d_fpclassl='undef'
-d_fpgetround='undef'
-d_fpos64_t='undef'
-d_frexpl='undef'
-d_fs_data_s='undef'
-d_fseeko='define'
-d_fsetpos='define'
-d_fstatfs='define'
-d_fstatvfs='define'
-d_fsync='define'
-d_ftello='define'
-d_ftime='undef'
-d_futimes='undef'
-d_getcwd='define'
-d_getespwnam='undef'
-d_getfsstat='undef'
-d_getgrent='define'
-d_getgrent_r='define'
-d_getgrgid_r='define'
-d_getgrnam_r='define'
-d_getgrps='define'
-d_gethbyaddr='define'
-d_gethbyname='define'
-d_gethent='define'
-d_gethname='define'
-d_gethostbyaddr_r='define'
-d_gethostbyname_r='define'
-d_gethostent_r='define'
-d_gethostprotos='define'
-d_getitimer='define'
-d_getlogin='define'
-d_getlogin_r='define'
-d_getmnt='undef'
-d_getmntent='define'
-d_getnbyaddr='define'
-d_getnbyname='define'
-d_getnent='define'
-d_getnetbyaddr_r='define'
-d_getnetbyname_r='define'
-d_getnetent_r='define'
-d_getnetprotos='define'
-d_getpagsz='define'
-d_getpbyname='define'
-d_getpbynumber='define'
-d_getpent='define'
-d_getpgid='define'
-d_getpgrp2='undef'
-d_getpgrp='define'
-d_getppid='define'
-d_getprior='define'
-d_getprotobyname_r='define'
-d_getprotobynumber_r='define'
-d_getprotoent_r='define'
-d_getprotoprotos='define'
-d_getprpwnam='undef'
-d_getpwent='define'
-d_getpwent_r='define'
-d_getpwnam_r='define'
-d_getpwuid_r='define'
-d_getsbyname='define'
-d_getsbyport='define'
-d_getsent='define'
-d_getservbyname_r='define'
-d_getservbyport_r='define'
-d_getservent_r='define'
-d_getservprotos='define'
-d_getspnam='define'
-d_getspnam_r='define'
-d_gettimeod='define'
-d_gmtime_r='define'
-d_gnulibc='undef'
-d_grpasswd='define'
-d_hasmntopt='define'
-d_htonl='define'
-d_hypot='define'
-d_ilogb='define'
-d_ilogbl='undef'
-d_inc_version_list='undef'
-d_index='undef'
-d_inetaton='define'
-d_int64_t='define'
-d_isascii='define'
-d_isfinite='define'
-d_isfinitel='undef'
-d_isinf='define'
-d_isinfl='define'
-d_isless='undef'
-d_isnan='define'
-d_isnanl='undef'
-d_isnormal='define'
-d_j0='undef'
-d_j0l='undef'
-d_killpg='define'
-d_lc_monetary_2008='define'
-d_lchown='define'
-d_ldbl_dig='define'
-d_ldexpl='define'
-d_lgamma='define'
-d_lgamma_r='define'
-d_libm_lib_version='define'
-d_link='define'
-d_llrint='define'
-d_llrintl='define'
-d_llround='define'
-d_llroundl='define'
-d_localtime_r='define'
-d_localtime_r_needs_tzset='define'
-d_locconv='define'
-d_lockf='define'
-d_log1p='define'
-d_log2='define'
-d_logb='define'
-d_longdbl='define'
-d_longlong='define'
-d_lrint='define'
-d_lrintl='define'
-d_lround='define'
-d_lroundl='define'
-d_lseekproto='define'
-d_lstat='define'
-d_madvise='define'
-d_malloc_good_size='undef'
-d_malloc_size='undef'
-d_mblen='define'
-d_mbstowcs='define'
-d_mbtowc='define'
-d_memchr='define'
-d_memcmp='define'
-d_memcpy='define'
-d_memmove='define'
-d_memset='define'
-d_mkdir='define'
-d_mkdtemp='define'
-d_mkfifo='define'
-d_mkstemp='define'
-d_mkstemps='undef'
-d_mktime='define'
-d_mmap='define'
-d_modfl='undef'
-d_modfl_pow32_bug='undef'
-d_modflproto='undef'
-d_mprotect='define'
-d_msg='define'
-d_msg_ctrunc='define'
-d_msg_dontroute='define'
-d_msg_oob='define'
-d_msg_peek='define'
-d_msg_proxy='define'
-d_msgctl='define'
-d_msgget='define'
-d_msghdr_s='define'
-d_msgrcv='define'
-d_msgsnd='define'
-d_msync='define'
-d_munmap='define'
-d_mymalloc='undef'
-d_nan='define'
-d_nearbyint='define'
-d_nextafter='define'
-d_nexttoward='undef'
-d_nice='define'
-d_nl_langinfo='define'
-d_nv_preserves_uv='define'
-d_nv_zero_is_allbits_zero='define'
-d_off64_t='define'
-d_old_pthread_create_joinable='undef'
-d_oldpthreads='undef'
-d_oldsock='undef'
-d_open3='define'
-d_pathconf='define'
-d_pause='define'
-d_perl_otherlibdirs='undef'
-d_phostname='undef'
-d_pipe='define'
-d_poll='define'
-d_portable='define'
-d_printf_format_null='define'
-d_procselfexe='define'
-d_pseudofork='undef'
-d_pthread_atfork='define'
-d_pthread_attr_setscope='define'
-d_pthread_yield='define'
-d_ptrdiff_t='define'
-d_pwage='undef'
-d_pwchange='undef'
-d_pwclass='undef'
-d_pwcomment='undef'
-d_pwexpire='undef'
-d_pwgecos='define'
-d_pwpasswd='define'
-d_pwquota='undef'
-d_qgcvt='undef'
-d_quad='define'
-d_random_r='define'
-d_re_comp='undef'
-d_readdir64_r='define'
-d_readdir='define'
-d_readdir_r='define'
-d_readlink='define'
-d_readv='define'
-d_recvmsg='define'
-d_regcmp='undef'
-d_regcomp='define'
-d_remainder='define'
-d_remquo='define'
-d_rename='define'
-d_rewinddir='define'
-d_rint='define'
-d_rmdir='define'
-d_round='define'
-d_safebcpy='undef'
-d_safemcpy='undef'
-d_sanemcmp='define'
-d_sbrkproto='define'
-d_scalbn='define'
-d_scalbnl='undef'
-d_sched_yield='define'
-d_scm_rights='define'
-d_seekdir='define'
-d_select='define'
-d_sem='define'
-d_semctl='define'
-d_semctl_semid_ds='define'
-d_semctl_semun='define'
-d_semget='define'
-d_semop='define'
-d_sendmsg='define'
-d_setegid='define'
-d_seteuid='define'
-d_setgrent='define'
-d_setgrent_r='undef'
-d_setgrps='define'
-d_sethent='define'
-d_sethostent_r='undef'
-d_setitimer='define'
-d_setlinebuf='define'
-d_setlocale='define'
-d_setlocale_r='undef'
-d_setnent='define'
-d_setnetent_r='undef'
-d_setpent='define'
-d_setpgid='define'
-d_setpgrp2='undef'
-d_setpgrp='define'
-d_setprior='define'
-d_setproctitle='undef'
-d_setprotoent_r='undef'
-d_setpwent='define'
-d_setpwent_r='undef'
-d_setregid='define'
-d_setresgid='define'
-d_setresuid='define'
-d_setreuid='define'
-d_setrgid='undef'
-d_setruid='undef'
-d_setsent='define'
-d_setservent_r='undef'
-d_setsid='define'
-d_setvbuf='define'
-d_sfio='undef'
-d_shm='define'
-d_shmat='define'
-d_shmatprototype='define'
-d_shmctl='define'
-d_shmdt='define'
-d_shmget='define'
-d_sigaction='define'
-d_signbit='undef'
-d_sigprocmask='define'
-d_sigsetjmp='define'
-d_sitearch='define'
-d_snprintf='define'
-d_sockatmark='undef'
-d_sockatmarkproto='undef'
-d_socket='define'
-d_socklen_t='define'
-d_sockpair='define'
-d_socks5_init='undef'
-d_sprintf_returns_strlen='define'
-d_sqrtl='undef'
-d_srand48_r='define'
-d_srandom_r='define'
-d_sresgproto='define'
-d_sresuproto='define'
-d_stat='define'
-d_statblks='define'
-d_statfs_f_flags='undef'
-d_statfs_s='define'
-d_statvfs='define'
-d_stdio_cnt_lval='undef'
-d_stdio_ptr_lval='undef'
-d_stdio_ptr_lval_nochange_cnt='undef'
-d_stdio_ptr_lval_sets_cnt='undef'
-d_stdio_stream_array='undef'
-d_stdiobase='undef'
-d_stdstdio='undef'
-d_strchr='define'
-d_strcoll='define'
-d_strctcpy='define'
-d_strerrm='strerror(e)'
-d_strerror='define'
-d_strerror_r='define'
-d_strftime='define'
-d_strlcat='define'
-d_strlcpy='define'
-d_strtod='define'
-d_strtol='define'
-d_strtold='define'
-d_strtoll='define'
-d_strtoq='define'
-d_strtoul='define'
-d_strtoull='define'
-d_strtouq='define'
-d_strxfrm='define'
-d_suidsafe='undef'
-d_symlink='define'
-d_syscall='define'
-d_syscallproto='define'
-d_sysconf='define'
-d_sysernlst=''
-d_syserrlst='undef'
-d_system='define'
-d_tcgetpgrp='define'
-d_tcsetpgrp='define'
-d_telldir='define'
-d_telldirproto='define'
-d_tgamma='define'
-d_time='define'
-d_times='define'
-d_tm_tm_gmtoff='define'
-d_tm_tm_zone='define'
-d_tmpnam_r='define'
-d_trunc='define'
-d_truncate='define'
-d_truncl='define'
-d_ttyname_r='define'
-d_tzname='define'
-d_u32align='undef'
-d_ualarm='define'
-d_umask='define'
-d_uname='define'
-d_union_semun='undef'
-d_unordered='undef'
-d_unsetenv='define'
-d_usleep='define'
-d_usleepproto='define'
-d_ustat='define'
-d_vendorarch='undef'
-d_vendorbin='undef'
-d_vendorlib='undef'
-d_vendorscript='undef'
-d_vfork='undef'
-d_void_closedir='undef'
-d_voidsig='define'
-d_voidtty=''
-d_volatile='define'
-d_vprintf='define'
-d_vsnprintf='define'
-d_wait4='define'
-d_waitpid='define'
-d_wcscmp='define'
-d_wcstombs='define'
-d_wcsxfrm='define'
-d_wctomb='define'
-d_writev='define'
-d_xenix='undef'
-date='date'
-db_hashtype='u_int32_t'
-db_prefixtype='size_t'
-db_version_major=''
-db_version_minor=''
-db_version_patch=''
-defvoidused='15'
-direntrytype='struct dirent'
-dlext='so'
-dlsrc='dl_dlopen.xs'
-doublekind='3'
-doublesize='8'
-drand01='drand48()'
-drand48_r_proto='REENTRANT_PROTO_I_ST'
-eagain='EAGAIN'
-ebcdic='undef'
-echo='echo'
-egrep='egrep'
-emacs=''
-endgrent_r_proto='0'
-endhostent_r_proto='0'
-endnetent_r_proto='0'
-endprotoent_r_proto='0'
-endpwent_r_proto='0'
-endservent_r_proto='0'
-eunicefix=':'
-exe_ext=''
-expr='expr'
-extras=''
-fflushNULL='define'
-fflushall='undef'
-find=''
-firstmakefile='makefile'
-flex=''
-fpossize='24'
-fpostype='fpos_t'
-freetype='void'
-from=':'
-full_ar='%%AR%%'
-full_csh='csh'
-full_sed='sed'
-gccansipedantic=''
-gccosandvers=''
-gccversion='3.4.3'
-getgrent_r_proto='REENTRANT_PROTO_I_SBWR'
-getgrgid_r_proto='REENTRANT_PROTO_I_TSBWR'
-getgrnam_r_proto='REENTRANT_PROTO_I_CSBWR'
-gethostbyaddr_r_proto='REENTRANT_PROTO_I_TsISBWRE'
-gethostbyname_r_proto='REENTRANT_PROTO_I_CSBWRE'
-gethostent_r_proto='REENTRANT_PROTO_I_SBWRE'
-getlogin_r_proto='REENTRANT_PROTO_I_BW'
-getnetbyaddr_r_proto='REENTRANT_PROTO_I_uISBWRE'
-getnetbyname_r_proto='REENTRANT_PROTO_I_CSBWRE'
-getnetent_r_proto='REENTRANT_PROTO_I_SBWRE'
-getprotobyname_r_proto='REENTRANT_PROTO_I_CSBWR'
-getprotobynumber_r_proto='REENTRANT_PROTO_I_ISBWR'
-getprotoent_r_proto='REENTRANT_PROTO_I_SBWR'
-getpwent_r_proto='REENTRANT_PROTO_I_SBWR'
-getpwnam_r_proto='REENTRANT_PROTO_I_CSBWR'
-getpwuid_r_proto='REENTRANT_PROTO_I_TSBWR'
-getservbyname_r_proto='REENTRANT_PROTO_I_CCSBWR'
-getservbyport_r_proto='REENTRANT_PROTO_I_ICSBWR'
-getservent_r_proto='REENTRANT_PROTO_I_SBWR'
-getspnam_r_proto='REENTRANT_PROTO_I_CSBWR'
-gidformat='"lu"'
-gidsign='1'
-gidsize='4'
-gidtype='gid_t'
-glibpth='/usr/shlib  /lib /usr/lib /usr/lib/386 /lib/386 /usr/ccs/lib /usr/ucblib /usr/local/lib '
-gmake='gmake'
-gmtime_r_proto='REENTRANT_PROTO_S_TS'
-gnulibc_version=''
-grep='grep'
-groupcat='cat /etc/group'
-groupstype='gid_t'
-gzip='gzip'
-h_fcntl='false'
-h_sysfile='true'
-hint='recommended'
-hostcat='cat /etc/hosts'
-html1dir=' '
-html1direxp=''
-html3dir=' '
-html3direxp=''
-i16size='2'
-i16type='short'
-i32size='4'
-i32type='long'
-i64size='8'
-i64type='long long'
-i8size='1'
-i8type='char'
-i_arpainet='define'
-i_bsdioctl=''
-i_crypt='%%CRYPT%%'
-i_db='define'
-i_dbm='undef'
-i_dirent='define'
-i_dld='undef'
-i_dlfcn='define'
-i_execinfo='define'
-i_fcntl='undef'
-i_fenv='undef'
-i_float='define'
-i_fp='undef'
-i_fp_class='undef'
-i_gdbm='define'
-i_grp='define'
-i_ieeefp='undef'
-i_inttypes='define'
-i_langinfo='define'
-i_libutil='undef'
-i_limits='define'
-i_locale='define'
-i_machcthr='undef'
-i_malloc='define'
-i_math='define'
-i_memory='undef'
-i_mntent='define'
-i_ndbm='undef'
-i_netdb='define'
-i_neterrno='undef'
-i_netinettcp='define'
-i_niin='define'
-i_poll='define'
-i_prot='undef'
-i_pthread='define'
-i_pwd='define'
-i_quadmath='define'
-i_rpcsvcdbm='undef'
-i_sfio='undef'
-i_sgtty='undef'
-i_shadow='define'
-i_socks='undef'
-i_stdarg='define'
-i_stddef='define'
-i_stdint='define'
-i_stdlib='define'
-i_string='define'
-i_sunmath='undef'
-i_sysaccess='undef'
-i_sysdir='define'
-i_sysfile='define'
-i_sysfilio='undef'
-i_sysin='undef'
-i_sysioctl='define'
-i_syslog='define'
-i_sysmman='define'
-i_sysmode='undef'
-i_sysmount='define'
-i_sysndir='undef'
-i_sysparam='define'
-i_sysresrc='define'
-i_syssecrt='undef'
-i_sysselct='define'
-i_syssockio='undef'
-i_sysstat='define'
-i_sysstatfs='define'
-i_sysstatvfs='define'
-i_systime='define'
-i_systimek='undef'
-i_systimes='define'
-i_systypes='define'
-i_sysuio='define'
-i_sysun='define'
-i_sysutsname='define'
-i_sysvfs='define'
-i_syswait='define'
-i_termio='undef'
-i_termios='define'
-i_time='define'
-i_unistd='define'
-i_ustat='define'
-i_utime='define'
-i_values='define'
-i_varargs='undef'
-i_varhdr='stdarg.h'
-i_vfork='undef'
-ignore_versioned_solibs='y'
-inc_version_list=' '
-inc_version_list_init='0'
-incpath=''
-inews=''
-installbin='/usr/bin'
-initialinstalllocation='/usr/bin'
-installhtml1dir=''
-installhtml3dir=''
-installman1dir=''
-installman3dir=''
-installprefix='/usr'
-installprefixexp='/usr'
-installscript='/usr/bin'
-installsitebin='/usr/bin'
-installsitehtml1dir=''
-installsitehtml3dir=''
-installsiteman1dir=''
-installsiteman3dir=''
-installsitescript='/usr/bin'
-installstyle='lib/perl5'
-installusrbinperl='define'
-installvendorarch=''
-installvendorbin=''
-installvendorhtml1dir=''
-installvendorhtml3dir=''
-installvendorlib=''
-installvendorman1dir=''
-installvendorman3dir=''
-installvendorscript=''
-intsize='4'
-issymlink='test -h'
-ivdformat='"ld"'
-ivsize='4'
-ivtype='long'
-ksh=''
-ld='%%LD%%'
-lddlflags='-shared %%LDFLAGS%%'
-ldflags='%%EXTRA_PERLLIBDIRS%%'
-ldflags_uselargefiles=''
-ldlibpthname='LD_LIBRARY_PATH'
-less='less'
-lib_ext='.a'
-libc=''
-libperl='libperl.so'
-libpth='%%LIBDIRS%%'
-libs='-lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread -lc'
-libsdirs='%%LIBDIRS%%'
-libsfiles=' libdl.so libm.so libcrypt.so libutil.so libpthread.so libc.so'
-#libsfound=' /usr/lib/libdl.so /usr/lib/libm.so /usr/lib/libcrypt.so /usr/lib/libutil.so /usr/lib/libc.so'
-libspath='%%LIBDIRS%%'
-libswanted='sfio socket inet nm ndbm gdbm dbm db malloc dl dld ld sun m crypt sec util pthread c cposix posix ucb BSD'
-libswanted_uselargefiles=''
-line=''
-lint=''
-lkflags=''
-ln='ln'
-lns='/bin/ln -s'
-localtime_r_proto='REENTRANT_PROTO_S_TS'
-locincpth=' '
-loclibpth=' '
-longdblkind='0'
-longdblsize='8'
-longlongsize='8'
-longsize='4'
-lp=''
-lpr=''
-ls='ls'
-lseeksize='8'
-lseektype='off_t'
-mail=''
-mailx=''
-make='make'
-make_set_make='#'
-mallocobj=''
-mallocsrc=''
-malloctype='void *'
-man1dir=' '
-man1direxp=''
-man1ext='0'
-man3dir=' '
-man3direxp=''
-man3ext='0'
-mips_type=''
-mistrustnm=''
-mkdir='mkdir'
-mmaptype='void *'
-modetype='mode_t'
-more='more'
-multiarch='undef'
-mv=''
-myarchname='mipsel-linux-uclibc'
-mydomain='.dev.null'
-myhostname='merope'
-myuname='linux merope 2.4.30 #1 di 23. jan 15:23:42 cet 2007 mips unknown unknown gnulinux '
-n='-n'
-need_va_copy='undef'
-netdb_hlen_type='size_t'
-netdb_host_type='const void *'
-netdb_name_type='const char *'
-netdb_net_type='in_addr_t'
-nm='nm'
-nm_opt=''
-nm_so_opt='--dynamic'
-nroff='nroff'
-nvEUformat='"E"'
-nvFUformat='"F"'
-nvGUformat='"G"'
-nv_preserves_uv_bits='32'
-nveformat='"e"'
-nvfformat='"f"'
-nvgformat='"g"'
-nvsize='8'
-nvtype='double'
-o_nonblock='O_NONBLOCK'
-obj_ext='.o'
-old_pthread_create_joinable=''
-optimize='-O2'
-orderlib='false'
-osname='linux'
-osvers='2.4.30'
-otherlibdirs=' '
-package='perl5'
-pager='/usr/bin/less'
-passcat='cat /etc/passwd'
-path_sep=':'
-perl5=''
-perl=''
-perl_patchlevel=''
-perladmin='root@merope.dev.null'
-perllibs='-ldl -lm -lcrypt -lutil -lpthread -lc %%EXTRA_PERLLIBS%%'
-perlpath='/usr/bin/perl'
-pg='pg'
-phostname='hostname'
-pidtype='pid_t'
-plibpth=''
-pmake=''
-pr=''
-prefix='/usr'
-prefixexp='/usr'
-procselfexe='"/proc/self/exe"'
-prototype='define'
-ptrsize='4'
-quadkind='3'
-quadtype='long long'
-randbits='48'
-randfunc='drand48'
-random_r_proto='REENTRANT_PROTO_I_St'
-randseedtype='long'
-ranlib=':'
-rd_nodata='-1'
-readdir64_r_proto='REENTRANT_PROTO_I_TSR'
-readdir_r_proto='REENTRANT_PROTO_I_TSR'
-revision='5'
-rm='rm'
-rm_try='/bin/rm -f try try a.out .out try.[cho] try..o core core.try* try.core*'
-rmail=''
-run=''
-runnm='false'
-sPRIEUldbl='"E"'
-sPRIFUldbl='"F"'
-sPRIGUldbl='"G"'
-sPRIXU64='"LX"'
-sPRId64='"Ld"'
-sPRIeldbl='"e"'
-sPRIfldbl='"f"'
-sPRIgldbl='"g"'
-sPRIi64='"Li"'
-sPRIo64='"Lo"'
-sPRIu64='"Lu"'
-sPRIx64='"Lx"'
-sSCNfldbl='"f"'
-sched_yield='sched_yield()'
-scriptdir='/usr/bin'
-scriptdirexp='/usr/bin'
-sed='sed'
-seedfunc='srand48'
-selectminbits='32'
-selecttype='fd_set *'
-sendmail=''
-setgrent_r_proto='0'
-sethostent_r_proto='0'
-setlocale_r_proto='0'
-setnetent_r_proto='0'
-setprotoent_r_proto='0'
-setpwent_r_proto='0'
-setservent_r_proto='0'
-sh='/bin/sh'
-shar=''
-sharpbang='#!'
-shmattype='void *'
-shortsize='2'
-shrpenv=''
-shsharp='true'
-sig_count='128'
-sig_name='ZERO HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM USR1 USR2 CHLD PWR WINCH URG IO STOP TSTP CONT TTIN TTOU VTALRM PROF XCPU XFSZ RTMIN NUM33 NUM34 NUM35 NUM36 NUM37 NUM38 NUM39 NUM40 NUM41 NUM42 NUM43 NUM44 NUM45 NUM46 NUM47 NUM48 NUM49 NUM50 NUM51 NUM52 NUM53 NUM54 NUM55 NUM56 NUM57 NUM58 NUM59 NUM60 NUM61 NUM62 NUM63 NUM64 NUM65 NUM66 NUM67 NUM68 NUM69 NUM70 NUM71 NUM72 NUM73 NUM74 NUM75 NUM76 NUM77 NUM78 NUM79 NUM80 NUM81 NUM82 NUM83 NUM84 NUM85 NUM86 NUM87 NUM88 NUM89 NUM90 NUM91 NUM92 NUM93 NUM94 NUM95 NUM96 NUM97 NUM98 NUM99 NUM100 NUM101 NUM102 NUM103 NUM104 NUM105 NUM106 NUM107 NUM108 NUM109 NUM110 NUM111 NUM112 NUM113 NUM114 NUM115 NUM116 NUM117 NUM118 NUM119 NUM120 NUM121 NUM122 NUM123 NUM124 NUM125 NUM126 RTMAX IOT CLD POLL '
-sig_name_init='"ZERO", "HUP", "INT", "QUIT", "ILL", "TRAP", "ABRT", "EMT", "FPE", "KILL", "BUS", "SEGV", "SYS", "PIPE", "ALRM", "TERM", "USR1", "USR2", "CHLD", "PWR", "WINCH", "URG", "IO", "STOP", "TSTP", "CONT", "TTIN", "TTOU", "VTALRM", "PROF", "XCPU", "XFSZ", "RTMIN", "NUM33", "NUM34", "NUM35", "NUM36", "NUM37", "NUM38", "NUM39", "NUM40", "NUM41", "NUM42", "NUM43", "NUM44", "NUM45", "NUM46", "NUM47", "NUM48", "NUM49", "NUM50", "NUM51", "NUM52", "NUM53", "NUM54", "NUM55", "NUM56", "NUM57", "NUM58", "NUM59", "NUM60", "NUM61", "NUM62", "NUM63", "NUM64", "NUM65", "NUM66", "NUM67", "NUM68", "NUM69", "NUM70", "NUM71", "NUM72", "NUM73", "NUM74", "NUM75", "NUM76", "NUM77", "NUM78", "NUM79", "NUM80", "NUM81", "NUM82", "NUM83", "NUM84", "NUM85", "NUM86", "NUM87", "NUM88", "NUM89", "NUM90", "NUM91", "NUM92", "NUM93", "NUM94", "NUM95", "NUM96", "NUM97", "NUM98", "NUM99", "NUM100", "NUM101", "NUM102", "NUM103", "NUM104", "NUM105", "NUM106", "NUM107", "NUM108", "NUM109", "NUM110", "NUM111", "NUM112", "NUM113", "NUM114", "NUM115", "NUM116", "NUM117", "NUM118", "NUM119", "NUM120", "NUM121", "NUM122", "NUM123", "NUM124", "NUM125", "NUM126", "RTMAX", "IOT", "CLD", "POLL", 0'
-sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 6 18 22 '
-sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 6, 18, 22, 0'
-sig_size='131'
-signal_t='void'
-sitearch=''
-sitearchexp=''
-sitebin='/usr/bin'
-sitebinexp='/usr/bin'
-sitehtml1dir=''
-sitehtml1direxp=''
-sitehtml3dir=''
-sitehtml3direxp=''
-sitelib=''
-#sitelib_stem='/usr/lib/perl5/site_perl'
-sitelibexp=''
-siteman1dir=''
-siteman1direxp=''
-siteman3dir=''
-siteman3direxp=''
-siteprefix='/usr'
-siteprefixexp='/usr'
-sitescript='/usr/bin'
-sitescriptexp='/usr/bin'
-sizesize='4'
-sizetype='size_t'
-sleep=''
-smail=''
-so='so'
-sockethdr=''
-socketlib=''
-socksizetype='socklen_t'
-sort='sort'
-spackage='Perl5'
-spitshell='cat'
-srand48_r_proto='REENTRANT_PROTO_I_LS'
-srandom_r_proto='REENTRANT_PROTO_I_TS'
-src='.'
-ssizetype='ssize_t'
-startperl='#!/usr/bin/perl'
-startsh='#!/bin/sh'
-static_ext=' '
-stdchar='char'
-stdio_base='((fp)->_base)'
-stdio_bufsiz='((fp)->_cnt + (fp)->_ptr - (fp)->_base)'
-stdio_cnt='((fp)->_cnt)'
-stdio_filbuf=''
-stdio_ptr='((fp)->_ptr)'
-stdio_stream_array=''
-strerror_r_proto='REENTRANT_PROTO_B_IBW'
-#strings='/usr/include/string.h'
-submit=''
-sysman='/usr/share/man/man1'
-tail=''
-tar=''
-targetarch='mipsel-linux-uclibc'
-tbl=''
-tee=''
-test='test'
-#timeincl='/usr/include/sys/time.h /usr/include/time.h '
-timetype='time_t'
-tmpnam_r_proto='REENTRANT_PROTO_B_B'
-to=':'
-touch='touch'
-tr='tr'
-trnl='\n'
-troff=''
-ttyname_r_proto='REENTRANT_PROTO_I_IBW'
-u16size='2'
-u16type='unsigned short'
-u32size='4'
-u32type='unsigned long'
-u64size='8'
-u64type='unsigned long long'
-u8size='1'
-u8type='unsigned char'
-uidformat='"lu"'
-uidsign='1'
-uidsize='4'
-uidtype='uid_t'
-uname='uname'
-uniq='uniq'
-uquadtype='unsigned long long'
-use5005threads='undef'
-use64bitall='undef'
-use64bitint='undef'
-usecbacktrace='undef'
-usecrosscompile='define'
-usedl='define'
-usefaststdio='undef'
-useithreads='define'
-uselargefiles='define'
-uselongdouble='undef'
-usemallocwrap='define'
-usemorebits='undef'
-usemultiplicity='define'
-usemymalloc='n'
-usenm='true'
-useopcode='true'
-useperlio='define'
-useposix='true'
-usequadmath='undef'
-usereentrant='undef'
-userelocatableinc='undef'
-usesfio='false'
-useshrplib='true'
-usesitecustomize='undef'
-usesocks='undef'
-usethreads='define'
-usevendorprefix='undef'
-usevfork='false'
-usrinc='%%INCDIRS%%'
-uuname=''
-uvXUformat='"lX"'
-uvoformat='"lo"'
-uvsize='4'
-uvtype='unsigned long'
-uvuformat='"lu"'
-uvxformat='"lx"'
-vendorarch=''
-vendorarchexp=''
-vendorbin=''
-vendorbinexp=''
-vendorhtml1dir=' '
-vendorhtml1direxp=''
-vendorhtml3dir=' '
-vendorhtml3direxp=''
-vendorlib=''
-vendorlib_stem=''
-vendorlibexp=''
-vendorman1dir=' '
-vendorman1direxp=''
-vendorman3dir=' '
-vendorman3direxp=''
-vendorprefix=''
-vendorprefixexp=''
-vendorscript=''
-vendorscriptexp=''
-versiononly='undef'
-vi=''
-voidflags='15'
-xlibpth='/usr/lib/386 /lib/386'
-yacc='yacc'
-yaccflags=''
-zcat=''
-zip='zip'
-# Configure command line arguments.
-config_arg0='./Configure'
-config_args='-der -Dusethreads'
-config_argc=2
-config_arg1='-der'
-config_arg2='-Dusethreads'
-PERL_REVISION=5
-PERL_API_REVISION=5
-PERL_API_SUBVERSION=0
-PERL_PATCHLEVEL=
-PERL_CONFIG_SH=true
-# Fix problem with HiRes timer.
-d_nanosleep='define'
-d_clock_gettime='define'
-d_clock_getres='define'
-d_clock_nanosleep='define'
-d_clock='define'
-
-# New symbols for perl 5.20.0
-bin_ELF='define'
-charbits='8'
-charsize='1'
-d_asctime64='undef'
-d_attribute_deprecated='define'
-d_ctime64='undef'
-d_difftime64='undef'
-d_gdbm_ndbm_h_uses_prototypes='undef'
-d_gdbmndbm_h_uses_prototypes='undef'
-d_getaddrinfo='define'
-d_getnameinfo='define'
-d_gmtime64='undef'
-d_inetntop='define'
-d_inetpton='define'
-d_ip_mreq='define'
-d_ip_mreq_source='define'
-d_ipv6_mreq='%%IPV6%%'
-d_ipv6_mreq_source='undef'
-d_isblank='define'
-d_libname_unique='undef'
-d_localtime64='undef'
-d_mktime64='undef'
-d_ndbm='undef'
-d_ndbm_h_uses_prototypes='undef'
-d_prctl='define'
-d_prctl_set_name='define'
-d_sin6_scope_id='%%IPV6%%'
-d_sockaddr_in6='%%IPV6%%'
-d_sockaddr_sa_len='undef'
-d_static_inline='define'
-d_timegm='define'
-dtrace=''
-extern_C='extern'
-hostosname=''
-i_assert='define'
-i_bfd='undef'
-i_gdbm_ndbm='undef'
-i_gdbmndbm='undef'
-i_mallocmalloc='undef'
-i_stdbool='define'
-i_syspoll='define'
-#incpth='/usr/lib/gcc/i486-slackware-linux/4.8.2/include /usr/local/include /usr/lib/gcc/i486-slackware-linux/4.8.2/include-fixed /usr/include'
-ld_can_script='define'
-#libsfound=' /usr/lib/libgdbm.so /usr/lib/libdb.so /usr/lib/libdl.so /usr/lib/libm.so /usr/lib/libcrypt.so /usr/lib/libutil.so /usr/lib/libc.so'
-nv_overflows_integers_at='256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0'
-perl_static_inline='static __inline__'
-sGMTIME_max='2147483647'
-sGMTIME_min='-2147483648'
-sLOCALTIME_max='2147483647'
-sLOCALTIME_min='-2147483648'
-#sitelib_stem='/usr/local/lib/perl5/site_perl'
-st_ino_sign='1'
-st_ino_size='8'
-#strings='/usr/include/string.h'
-sysroot=''
-targetdir=''
-targetenv=''
-targethost=''
-targetmkdir=''
-targetport=''
-targetsh='/bin/sh'
-#timeincl='/usr/include/sys/time.h /usr/include/time.h '
-usedevel='undef'
-usedtrace='undef'
-usekernprocpathname='undef'
-usensgetexecutablepath='undef'
-useversionedarchname='undef'
-vaproto='define'
-libdb_needs_pthread='N'
-
-# These symbols changed from perl 5.10.0 to 5.20.0 and probably will
-# change again for new versions, so they're included here for
-# future reference
-api_version='22'
-# Always set this to the base version, not the patched one!
-api_versionstring='5.22.0'
-dynamic_ext='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/DosGlob File/Glob Filter/Util/Call GDBM_File Hash/Util Hash/Util/FieldHash I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc Opcode POSIX PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Tie/Hash/NamedCapture Time/HiRes Time/Piece Unicode/Collate XS/APItest XS/Typemap arybase attributes mro re threads threads/shared'
-installarchlib='/usr/lib/perl5/5.22'
-installprivlib='/usr/lib/perl5/5.22'
-installsitearch='/usr/lib/perl5/5.22'
-installsitelib='/usr/lib/perl5/5.22'
-nonxs_ext='Archive/Tar Attribute/Handlers AutoLoader B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Config/Perl/V Devel/SelfStubber Digest Dumpvalue Env Errno Exporter ExtUtils/CBuilder ExtUtils/Command ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS File/Fetch File/Find File/Path File/Temp FileCache Filter/Simple Getopt/Long HTTP/Tiny I18N/Collate I18N/LangTags IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP Locale/Codes Locale/Maketext Locale/Maketext/Simple Math/BigInt Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NEXT Net/Ping Params/Check Parse/CPAN/Meta Perl/OSType PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage Safe Search/Dict SelfLoader Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Memoize Tie/RefHash Time/Local XSLoader autodie autouse base bignum constant encoding/warnings experimental if lib libnet parent perlfaq podlators Unicode/Normalize version'
-privlib='/usr/lib/perl5/5.22'
-privlibexp='/usr/lib/perl5/5.22'
-archlib='/usr/lib/perl5/5.22'
-archlibexp='/usr/lib/perl5/5.22'
-version='5.22.0'
-version_patchlevel_string='version 22 subversion 0'
-PERL_VERSION=22
-PERL_API_VERSION=22
-PERL_SUBVERSION=0
-patchlevel='22'
-ccdlflags='-fPIC -Wl,-rpath,/usr/lib/perl5/5.22/CORE'
-subversion='0'
-extensions='B Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call GDBM_File Hash/Util I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex Time/HiRes Time/Piece XS/APItest XS/Typemap attrs re threads threads/shared Hash/Util/FieldHash Compress/Zlib Errno IO_Compress_Base IO_Compress_Zlib Unicode/Normalize'
-known_extensions='B Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call GDBM_File Hash/Util I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc NDBM_File ODBM_File Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex Time/HiRes Time/Piece Unicode/Normalize Win32 Win32API/File Win32CORE XS/APItest XS/Typemap attrs re threads threads/shared Hash/Util/FieldHash'
-
-# Make perl use these tools instead of the target binaries during build
-hostgenerate='%%HOSTGENERATE%%'
-hostperl='%%HOSTMINIPERL%%'
diff --git a/lang/perl/files/config.sh-mipsel.in b/lang/perl/files/config.sh-mipsel.in
deleted file mode 100644 (file)
index 0c424f1..0000000
+++ /dev/null
@@ -1,1212 +0,0 @@
-#!/bin/sh
-#
-# This file was produced by running the Configure script. It holds all the
-# definitions figured out by Configure. Should you modify one of these values,
-# do not forget to propagate your changes by running "Configure -der". You may
-# instead choose to run each of the .SH files by yourself, or "Configure -S".
-#
-
-# Package name      : perl5
-# Source directory  : .
-# Configuration time: Thu Jan 25 03:12:45 MST 2007
-# Configured by     : root
-# Target system     : linux merope 2.4.30 #1 di 23. jan 15:23:42 cet 2007 mips unknown unknown gnulinux 
-
-Author=''
-Date=''
-Header=''
-Id=''
-Locker=''
-Log=''
-RCSfile=''
-Revision=''
-Source=''
-State=''
-_a='.a'
-_exe=''
-_o='.o'
-afs='false'
-afsroot='/afs'
-alignbytes='8'
-ansi2knr=''
-aphostname='/bin/hostname'
-api_revision='5'
-api_subversion='0'
-ar='ar'
-archname64=''
-archname='mipsel-linux-uclibc'
-archobjs=''
-asctime_r_proto='0'
-awk='awk'
-baserev='5.0'
-bash=''
-bin='/usr/bin'
-binexp='/usr/bin'
-bison='bison'
-byacc='byacc'
-byteorder='1234'
-c=''
-castflags='0'
-cat='cat'
-cc='%%CC%%'
-cccdlflags='-fPIC'
-ccflags='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 %%CFLAGS%%'
-ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
-ccname='gcc'
-ccsymbols=''
-ccversion=''
-cf_by='root'
-cf_email='root@merope.dev.null'
-cf_time='Thu Jan 25 03:12:45 MST 2007'
-chgrp=''
-chmod='chmod'
-chown=''
-clocktype='clock_t'
-comm='comm'
-compress=''
-contains='grep'
-cp='cp'
-cpio=''
-cpp='cpp'
-cpp_stuff='42'
-cppccsymbols=''
-cppflags='%%CFLAGS%%'
-cpplast='-'
-cppminus='-'
-cpprun='%%CPP%%'
-cppstdin='%%CPP%%'
-cppsymbols='__ELF__=1 _FILE_OFFSET_BITS=64 __GLIBC__=2 __GLIBC_MINOR__=2 __GNUC__=3 __GNUC_MINOR__=4 __GNU_LIBRARY__=6 LANGUAGE_C=1 _LANGUAGE_C=1 __LANGUAGE_C=1 __LANGUAGE_C__=1 _LARGEFILE_SOURCE=1 MIPSEL=1 _MIPSEL=1 __MIPSEL=1 __MIPSEL__=1 _MIPS_FPSET=16 _MIPS_ISA=_MIPS_ISA_MIPS1 _MIPS_SIM=1 _MIPS_SZINT=32 _MIPS_SZLONG=32 _MIPS_SZPTR=32 __PIC__=1 _POSIX_C_SOURCE=199506L _POSIX_SOURCE=1 R3000=1 _R3000=1 __R3000=1 __R3000__=1 __STDC__=1 __USE_BSD=1 __USE_FILE_OFFSET64=1 __USE_LARGEFILE=1 __USE_MISC=1 __USE_POSIX=1 __USE_POSIX199309=1 __USE_POSIX199506=1 __USE_POSIX2=1 __USE_SVID=1 linux=1 __linux=1 __linux__=1 mips=1 _mips=1 __mips=1 __mips__=1 __pic__=1 unix=1 __unix=1 __unix__=1'
-crypt_r_proto='0'
-cryptlib=''
-csh='csh'
-ctermid_r_proto='0'
-ctime_r_proto='0'
-d_Gconvert='sprintf((b),"%.*g",(n),(x))'
-d_PRIEUldbl='define'
-d_PRIFUldbl='define'
-d_PRIGUldbl='define'
-d_PRIXU64='define'
-d_PRId64='define'
-d_PRIeldbl='define'
-d_PRIfldbl='define'
-d_PRIgldbl='define'
-d_PRIi64='define'
-d_PRIo64='define'
-d_PRIu64='define'
-d_PRIx64='define'
-d_SCNfldbl='define'
-d__fwalk='undef'
-d_access='define'
-d_accessx='undef'
-d_acosh='define'
-d_aintl='undef'
-d_alarm='define'
-d_archlib='undef'
-d_asctime_r='undef'
-d_asinh='define'
-d_atanh='define'
-d_atolf='undef'
-d_atoll='define'
-d_attribute_format='define'
-d_attribute_malloc='define'
-d_attribute_nonnull='define'
-d_attribute_noreturn='define'
-d_attribute_pure='define'
-d_attribute_unused='define'
-d_attribute_warn_unused_result='define'
-d_backtrace='define'
-d_bcmp='define'
-d_bcopy='define'
-d_bsd='undef'
-d_bsdgetpgrp='undef'
-d_bsdsetpgrp='undef'
-d_builtin_choose_expr='define'
-d_builtin_expect='undef'
-d_bzero='define'
-d_c99_variadic_macros='define'
-d_casti32='define'
-d_castneg='define'
-d_cbrt='define'
-d_charvspr='undef'
-d_chown='define'
-d_chroot='define'
-d_chsize='undef'
-d_class='undef'
-d_clearenv='define'
-d_closedir='define'
-d_cmsghdr_s='define'
-d_const='define'
-d_copysign='define'
-d_copysignl='undef'
-d_cplusplus='undef'
-d_crypt='define'
-d_crypt_r='undef'
-d_csh='undef'
-d_ctermid='define'
-d_ctermid_r='undef'
-d_ctime_r='undef'
-d_cuserid='define'
-d_dbl_dig='define'
-d_dbminitproto='undef'
-d_difftime='define'
-d_dir_dd_fd='undef'
-d_dirfd='define'
-d_dirnamlen='undef'
-d_dladdr='define'
-d_dlerror='define'
-d_dlopen='define'
-d_dlsymun='undef'
-d_dosuid='undef'
-d_drand48_r='undef'
-d_drand48proto='define'
-d_dup2='define'
-d_eaccess='undef'
-d_endgrent='define'
-d_endgrent_r='undef'
-d_endhent='define'
-d_endhostent_r='undef'
-d_endnent='define'
-d_endnetent_r='undef'
-d_endpent='define'
-d_endprotoent_r='undef'
-d_endpwent='define'
-d_endpwent_r='undef'
-d_endsent='define'
-d_endservent_r='undef'
-d_eofnblk='define'
-d_erf='define'
-d_erfc='define'
-d_eunice='undef'
-d_exp2='define'
-d_expm1='define'
-d_faststdio='undef'
-d_fchdir='define'
-d_fchmod='define'
-d_fchown='define'
-d_fcntl='define'
-d_fcntl_can_lock='define'
-d_fd_macros='define'
-d_fd_set='define'
-d_fdim='define'
-d_fds_bits='undef'
-d_fegetround='define'
-d_fgetpos='define'
-d_finite='define'
-d_finitel='undef'
-d_flexfnam='define'
-d_flock='define'
-d_flockproto='define'
-d_fma='define'
-d_fmax='define'
-d_fmin='define'
-d_fork='define'
-d_fp_class='undef'
-d_fp_classify='undef'
-d_fp_classl='undef'
-d_fpathconf='define'
-d_fpclass='undef'
-d_fpclassify='define'
-d_fpclassl='undef'
-d_fpgetround='undef'
-d_fpos64_t='undef'
-d_frexpl='undef'
-d_fs_data_s='undef'
-d_fseeko='define'
-d_fsetpos='define'
-d_fstatfs='define'
-d_fstatvfs='define'
-d_fsync='define'
-d_ftello='define'
-d_ftime='undef'
-d_futimes='undef'
-d_getcwd='define'
-d_getespwnam='undef'
-d_getfsstat='undef'
-d_getgrent='define'
-d_getgrent_r='undef'
-d_getgrgid_r='undef'
-d_getgrnam_r='undef'
-d_getgrps='define'
-d_gethbyaddr='define'
-d_gethbyname='define'
-d_gethent='define'
-d_gethname='define'
-d_gethostbyaddr_r='undef'
-d_gethostbyname_r='undef'
-d_gethostent_r='undef'
-d_gethostprotos='define'
-d_getitimer='define'
-d_getlogin='define'
-d_getlogin_r='undef'
-d_getmnt='undef'
-d_getmntent='define'
-d_getnbyaddr='define'
-d_getnbyname='define'
-d_getnent='define'
-d_getnetbyaddr_r='undef'
-d_getnetbyname_r='undef'
-d_getnetent_r='undef'
-d_getnetprotos='define'
-d_getpagsz='define'
-d_getpbyname='define'
-d_getpbynumber='define'
-d_getpent='define'
-d_getpgid='define'
-d_getpgrp2='undef'
-d_getpgrp='define'
-d_getppid='define'
-d_getprior='define'
-d_getprotobyname_r='undef'
-d_getprotobynumber_r='undef'
-d_getprotoent_r='undef'
-d_getprotoprotos='define'
-d_getprpwnam='undef'
-d_getpwent='define'
-d_getpwent_r='undef'
-d_getpwnam_r='undef'
-d_getpwuid_r='undef'
-d_getsbyname='define'
-d_getsbyport='define'
-d_getsent='define'
-d_getservbyname_r='undef'
-d_getservbyport_r='undef'
-d_getservent_r='undef'
-d_getservprotos='define'
-d_getspnam='define'
-d_getspnam_r='undef'
-d_gettimeod='define'
-d_gmtime_r='undef'
-d_gnulibc='undef'
-d_grpasswd='define'
-d_hasmntopt='define'
-d_htonl='define'
-d_hypot='define'
-d_ilogb='define'
-d_ilogbl='undef'
-d_inc_version_list='undef'
-d_index='undef'
-d_inetaton='define'
-d_int64_t='define'
-d_isascii='define'
-d_isfinite='define'
-d_isfinitel='undef'
-d_isinf='define'
-d_isinfl='define'
-d_isless='undef'
-d_isnan='define'
-d_isnanl='undef'
-d_isnormal='define'
-d_j0='define'
-d_j0l='define'
-d_killpg='define'
-d_lc_monetary_2008='define'
-d_lchown='define'
-d_ldbl_dig='define'
-d_ldexpl='define'
-d_lgamma='define'
-d_lgamma_r='define'
-d_libm_lib_version='define'
-d_link='define'
-d_llrint='define'
-d_llrintl='define'
-d_llround='define'
-d_llroundl='define'
-d_localtime_r='undef'
-d_localtime_r_needs_tzset='undef'
-d_locconv='define'
-d_lockf='define'
-d_log1p='define'
-d_log2='define'
-d_logb='define'
-d_longdbl='define'
-d_longlong='define'
-d_lrint='define'
-d_lrintl='define'
-d_lround='define'
-d_lroundl='define'
-d_lseekproto='define'
-d_lstat='define'
-d_madvise='define'
-d_malloc_good_size='undef'
-d_malloc_size='undef'
-d_mblen='define'
-d_mbstowcs='define'
-d_mbtowc='define'
-d_memchr='define'
-d_memcmp='define'
-d_memcpy='define'
-d_memmove='define'
-d_memset='define'
-d_mkdir='define'
-d_mkdtemp='define'
-d_mkfifo='define'
-d_mkstemp='define'
-d_mkstemps='undef'
-d_mktime='define'
-d_mmap='define'
-d_modfl='undef'
-d_modfl_pow32_bug='undef'
-d_modflproto='undef'
-d_mprotect='define'
-d_msg='define'
-d_msg_ctrunc='define'
-d_msg_dontroute='define'
-d_msg_oob='define'
-d_msg_peek='define'
-d_msg_proxy='define'
-d_msgctl='define'
-d_msgget='define'
-d_msghdr_s='define'
-d_msgrcv='define'
-d_msgsnd='define'
-d_msync='define'
-d_munmap='define'
-d_mymalloc='undef'
-d_nan='define'
-d_nearbyint='define'
-d_nextafter='define'
-d_nexttoward='define'
-d_nice='define'
-d_nl_langinfo='define'
-d_nv_preserves_uv='define'
-d_nv_zero_is_allbits_zero='define'
-d_off64_t='undef'
-d_old_pthread_create_joinable='undef'
-d_oldpthreads='undef'
-d_oldsock='undef'
-d_open3='define'
-d_pathconf='define'
-d_pause='define'
-d_perl_otherlibdirs='undef'
-d_phostname='undef'
-d_pipe='define'
-d_poll='define'
-d_portable='define'
-d_printf_format_null='define'
-d_procselfexe='define'
-d_pseudofork='undef'
-d_pthread_atfork='undef'
-d_pthread_attr_setscope='define'
-d_pthread_yield='undef'
-d_ptrdiff_t='define'
-d_pwage='undef'
-d_pwchange='undef'
-d_pwclass='undef'
-d_pwcomment='undef'
-d_pwexpire='undef'
-d_pwgecos='define'
-d_pwpasswd='define'
-d_pwquota='undef'
-d_qgcvt='undef'
-d_quad='define'
-d_random_r='undef'
-d_re_comp='undef'
-d_readdir64_r='undef'
-d_readdir='define'
-d_readdir_r='undef'
-d_readlink='define'
-d_readv='define'
-d_recvmsg='define'
-d_regcmp='undef'
-d_regcomp='define'
-d_remainder='define'
-d_remquo='define'
-d_rename='define'
-d_rewinddir='define'
-d_rint='define'
-d_rmdir='define'
-d_round='define'
-d_safebcpy='undef'
-d_safemcpy='undef'
-d_sanemcmp='define'
-d_sbrkproto='define'
-d_scalbn='define'
-d_scalbnl='undef'
-d_sched_yield='define'
-d_scm_rights='define'
-d_seekdir='define'
-d_select='define'
-d_sem='define'
-d_semctl='define'
-d_semctl_semid_ds='define'
-d_semctl_semun='define'
-d_semget='define'
-d_semop='define'
-d_sendmsg='define'
-d_setegid='define'
-d_seteuid='define'
-d_setgrent='define'
-d_setgrent_r='undef'
-d_setgrps='define'
-d_sethent='define'
-d_sethostent_r='undef'
-d_setitimer='define'
-d_setlinebuf='define'
-d_setlocale='define'
-d_setlocale_r='undef'
-d_setnent='define'
-d_setnetent_r='undef'
-d_setpent='define'
-d_setpgid='define'
-d_setpgrp2='undef'
-d_setpgrp='define'
-d_setprior='define'
-d_setproctitle='undef'
-d_setprotoent_r='undef'
-d_setpwent='define'
-d_setpwent_r='undef'
-d_setregid='define'
-d_setresgid='define'
-d_setresuid='define'
-d_setreuid='define'
-d_setrgid='undef'
-d_setruid='undef'
-d_setsent='define'
-d_setservent_r='undef'
-d_setsid='define'
-d_setvbuf='define'
-d_sfio='undef'
-d_shm='define'
-d_shmat='define'
-d_shmatprototype='define'
-d_shmctl='define'
-d_shmdt='define'
-d_shmget='define'
-d_sigaction='define'
-d_signbit='undef'
-d_sigprocmask='define'
-d_sigsetjmp='define'
-d_sitearch='define'
-d_snprintf='define'
-d_sockatmark='undef'
-d_sockatmarkproto='undef'
-d_socket='define'
-d_socklen_t='define'
-d_sockpair='define'
-d_socks5_init='undef'
-d_sprintf_returns_strlen='define'
-d_sqrtl='undef'
-d_srand48_r='undef'
-d_srandom_r='undef'
-d_sresgproto='undef'
-d_sresuproto='undef'
-d_stat='define'
-d_statblks='define'
-d_statfs_f_flags='undef'
-d_statfs_s='define'
-d_statvfs='define'
-d_stdio_cnt_lval='undef'
-d_stdio_ptr_lval='undef'
-d_stdio_ptr_lval_nochange_cnt='undef'
-d_stdio_ptr_lval_sets_cnt='undef'
-d_stdio_stream_array='undef'
-d_stdiobase='undef'
-d_stdstdio='undef'
-d_strchr='define'
-d_strcoll='define'
-d_strctcpy='define'
-d_strerrm='strerror(e)'
-d_strerror='define'
-d_strerror_r='undef'
-d_strftime='define'
-d_strlcat='define'
-d_strlcpy='define'
-d_strtod='define'
-d_strtol='define'
-d_strtold='define'
-d_strtoll='define'
-d_strtoq='define'
-d_strtoul='define'
-d_strtoull='define'
-d_strtouq='define'
-d_strxfrm='define'
-d_suidsafe='undef'
-d_symlink='define'
-d_syscall='define'
-d_syscallproto='define'
-d_sysconf='define'
-d_sysernlst=''
-d_syserrlst='undef'
-d_system='define'
-d_tcgetpgrp='define'
-d_tcsetpgrp='define'
-d_telldir='define'
-d_telldirproto='define'
-d_tgamma='define'
-d_time='define'
-d_times='define'
-d_tm_tm_gmtoff='define'
-d_tm_tm_zone='define'
-d_tmpnam_r='undef'
-d_trunc='define'
-d_truncate='define'
-d_truncl='define'
-d_ttyname_r='undef'
-d_tzname='define'
-d_u32align='undef'
-d_ualarm='define'
-d_umask='define'
-d_uname='define'
-d_union_semun='undef'
-d_unordered='undef'
-d_unsetenv='define'
-d_usleep='define'
-d_usleepproto='define'
-d_ustat='define'
-d_vendorarch='undef'
-d_vendorbin='undef'
-d_vendorlib='undef'
-d_vendorscript='undef'
-d_vfork='undef'
-d_void_closedir='undef'
-d_voidsig='define'
-d_voidtty=''
-d_volatile='define'
-d_vprintf='define'
-d_vsnprintf='define'
-d_wait4='define'
-d_waitpid='define'
-d_wcscmp='define'
-d_wcstombs='define'
-d_wcsxfrm='define'
-d_wctomb='define'
-d_writev='define'
-d_xenix='undef'
-date='date'
-db_hashtype='u_int32_t'
-db_prefixtype='size_t'
-db_version_major=''
-db_version_minor=''
-db_version_patch=''
-defvoidused='15'
-direntrytype='struct dirent'
-dlext='so'
-dlsrc='dl_dlopen.xs'
-doublekind='3'
-doublesize='8'
-drand01='drand48()'
-drand48_r_proto='0'
-eagain='EAGAIN'
-ebcdic='undef'
-echo='echo'
-egrep='egrep'
-emacs=''
-endgrent_r_proto='0'
-endhostent_r_proto='0'
-endnetent_r_proto='0'
-endprotoent_r_proto='0'
-endpwent_r_proto='0'
-endservent_r_proto='0'
-eunicefix=':'
-exe_ext=''
-expr='expr'
-extras=''
-fflushNULL='define'
-fflushall='undef'
-find=''
-firstmakefile='makefile'
-flex=''
-fpossize='24'
-fpostype='fpos_t'
-freetype='void'
-from=':'
-full_ar='%%AR%%'
-full_csh='csh'
-full_sed='sed'
-gccansipedantic=''
-gccosandvers=''
-gccversion='3.4.3'
-getgrent_r_proto='0'
-getgrgid_r_proto='0'
-getgrnam_r_proto='0'
-gethostbyaddr_r_proto='0'
-gethostbyname_r_proto='0'
-gethostent_r_proto='0'
-getlogin_r_proto='0'
-getnetbyaddr_r_proto='0'
-getnetbyname_r_proto='0'
-getnetent_r_proto='0'
-getprotobyname_r_proto='0'
-getprotobynumber_r_proto='0'
-getprotoent_r_proto='0'
-getpwent_r_proto='0'
-getpwnam_r_proto='0'
-getpwuid_r_proto='0'
-getservbyname_r_proto='0'
-getservbyport_r_proto='0'
-getservent_r_proto='0'
-getspnam_r_proto='0'
-gidformat='"lu"'
-gidsign='1'
-gidsize='4'
-gidtype='gid_t'
-glibpth='/usr/shlib  /lib /usr/lib /usr/lib/386 /lib/386 /usr/ccs/lib /usr/ucblib /usr/local/lib '
-gmake='gmake'
-gmtime_r_proto='0'
-gnulibc_version=''
-grep='grep'
-groupcat='cat /etc/group'
-groupstype='gid_t'
-gzip='gzip'
-h_fcntl='false'
-h_sysfile='true'
-hint='recommended'
-hostcat='cat /etc/hosts'
-html1dir=' '
-html1direxp=''
-html3dir=' '
-html3direxp=''
-i16size='2'
-i16type='short'
-i32size='4'
-i32type='long'
-i64size='8'
-i64type='long long'
-i8size='1'
-i8type='char'
-i_arpainet='define'
-i_bsdioctl=''
-i_crypt='define'
-i_db='define'
-i_dbm='undef'
-i_dirent='define'
-i_dld='undef'
-i_dlfcn='define'
-i_execinfo='define'
-i_fcntl='undef'
-i_fenv='undef'
-i_float='define'
-i_fp='undef'
-i_fp_class='undef'
-i_gdbm='define'
-i_grp='define'
-i_ieeefp='undef'
-i_inttypes='define'
-i_langinfo='define'
-i_libutil='undef'
-i_limits='define'
-i_locale='define'
-i_machcthr='undef'
-i_malloc='define'
-i_math='define'
-i_memory='undef'
-i_mntent='define'
-i_ndbm='undef'
-i_netdb='define'
-i_neterrno='undef'
-i_netinettcp='define'
-i_niin='define'
-i_poll='define'
-i_prot='undef'
-i_pthread='define'
-i_pwd='define'
-i_quadmath='define'
-i_rpcsvcdbm='undef'
-i_sfio='undef'
-i_sgtty='undef'
-i_shadow='define'
-i_socks='undef'
-i_stdarg='define'
-i_stddef='define'
-i_stdint='define'
-i_stdlib='define'
-i_string='define'
-i_sunmath='undef'
-i_sysaccess='undef'
-i_sysdir='define'
-i_sysfile='define'
-i_sysfilio='undef'
-i_sysin='undef'
-i_sysioctl='define'
-i_syslog='define'
-i_sysmman='define'
-i_sysmode='undef'
-i_sysmount='define'
-i_sysndir='undef'
-i_sysparam='define'
-i_sysresrc='define'
-i_syssecrt='undef'
-i_sysselct='define'
-i_syssockio='undef'
-i_sysstat='define'
-i_sysstatfs='define'
-i_sysstatvfs='define'
-i_systime='define'
-i_systimek='undef'
-i_systimes='define'
-i_systypes='define'
-i_sysuio='define'
-i_sysun='define'
-i_sysutsname='define'
-i_sysvfs='define'
-i_syswait='define'
-i_termio='undef'
-i_termios='define'
-i_time='define'
-i_unistd='define'
-i_ustat='define'
-i_utime='define'
-i_values='define'
-i_varargs='undef'
-i_varhdr='stdarg.h'
-i_vfork='undef'
-ignore_versioned_solibs='y'
-inc_version_list=' '
-inc_version_list_init='0'
-incpath=''
-inews=''
-installbin='/usr/bin'
-initialinstalllocation='/usr/bin'
-installhtml1dir=''
-installhtml3dir=''
-installman1dir=''
-installman3dir=''
-installprefix='/usr'
-installprefixexp='/usr'
-installscript='/usr/bin'
-installsitebin='/usr/bin'
-installsitehtml1dir=''
-installsitehtml3dir=''
-installsiteman1dir=''
-installsiteman3dir=''
-installsitescript='/usr/bin'
-installstyle='lib/perl5'
-installusrbinperl='define'
-installvendorarch=''
-installvendorbin=''
-installvendorhtml1dir=''
-installvendorhtml3dir=''
-installvendorlib=''
-installvendorman1dir=''
-installvendorman3dir=''
-installvendorscript=''
-intsize='4'
-issymlink='test -h'
-ivdformat='"ld"'
-ivsize='4'
-ivtype='long'
-ksh=''
-ld='%%LD%%'
-lddlflags='-shared %%LDFLAGS%%'
-ldflags='%%EXTRA_PERLLIBDIRS%%'
-ldflags_uselargefiles=''
-ldlibpthname='LD_LIBRARY_PATH'
-less='less'
-lib_ext='.a'
-libc=''
-libperl='libperl.so'
-libpth='%%LIBDIRS%%'
-libs='-lgdbm -ldb -ldl -lm -lcrypt -lutil -lc'
-libsdirs='%%LIBDIRS%%'
-libsfiles=' libdl.so libm.so libcrypt.so libutil.so libc.so'
-#libsfound=' /usr/lib/libdl.so /usr/lib/libm.so /usr/lib/libcrypt.so /usr/lib/libutil.so /usr/lib/libc.so'
-libspath='%%LIBDIRS%%'
-libswanted='sfio socket inet nm ndbm gdbm dbm db malloc dl dld ld sun m crypt sec util c cposix posix ucb BSD'
-libswanted_uselargefiles=''
-line=''
-lint=''
-lkflags=''
-ln='ln'
-lns='/bin/ln -s'
-localtime_r_proto='0'
-locincpth=' '
-loclibpth=' '
-longdblkind='0'
-longdblsize='8'
-longlongsize='8'
-longsize='4'
-lp=''
-lpr=''
-ls='ls'
-lseeksize='8'
-lseektype='off_t'
-mail=''
-mailx=''
-make='make'
-make_set_make='#'
-mallocobj=''
-mallocsrc=''
-malloctype='void *'
-man1dir=' '
-man1direxp=''
-man1ext='0'
-man3dir=' '
-man3direxp=''
-man3ext='0'
-mips_type=''
-mistrustnm=''
-mkdir='mkdir'
-mmaptype='void *'
-modetype='mode_t'
-more='more'
-multiarch='undef'
-mv=''
-myarchname='mipsel-linux-uclibc'
-mydomain='.dev.null'
-myhostname='merope'
-myuname='linux merope 2.4.30 #1 di 23. jan 15:23:42 cet 2007 mips unknown unknown gnulinux '
-n='-n'
-need_va_copy='undef'
-netdb_hlen_type='size_t'
-netdb_host_type='const void *'
-netdb_name_type='const char *'
-netdb_net_type='in_addr_t'
-nm='nm'
-nm_opt=''
-nm_so_opt='--dynamic'
-nroff='nroff'
-nvEUformat='"E"'
-nvFUformat='"F"'
-nvGUformat='"G"'
-nv_preserves_uv_bits='32'
-nveformat='"e"'
-nvfformat='"f"'
-nvgformat='"g"'
-nvsize='8'
-nvtype='double'
-o_nonblock='O_NONBLOCK'
-obj_ext='.o'
-old_pthread_create_joinable=''
-optimize='-O2'
-orderlib='false'
-osname='linux'
-osvers='2.4.30'
-otherlibdirs=' '
-package='perl5'
-pager='/usr/bin/less'
-passcat='cat /etc/passwd'
-path_sep=':'
-perl5=''
-perl=''
-perl_patchlevel=''
-perladmin='root@merope.dev.null'
-perllibs='-ldl -lm -lcrypt -lutil -lc %%EXTRA_PERLLIBS%%'
-perlpath='/usr/bin/perl'
-pg='pg'
-phostname='hostname'
-pidtype='pid_t'
-plibpth=''
-pmake=''
-pr=''
-prefix='/usr'
-prefixexp='/usr'
-procselfexe='"/proc/self/exe"'
-prototype='define'
-ptrsize='4'
-quadkind='3'
-quadtype='long long'
-randbits='48'
-randfunc='drand48'
-random_r_proto='0'
-randseedtype='long'
-ranlib=':'
-rd_nodata='-1'
-readdir64_r_proto='0'
-readdir_r_proto='0'
-revision='5'
-rm='rm'
-rm_try='/bin/rm -f try try a.out .out try.[cho] try..o core core.try* try.core*'
-rmail=''
-run=''
-runnm='false'
-sPRIEUldbl='"E"'
-sPRIFUldbl='"F"'
-sPRIGUldbl='"G"'
-sPRIXU64='"LX"'
-sPRId64='"Ld"'
-sPRIeldbl='"e"'
-sPRIfldbl='"f"'
-sPRIgldbl='"g"'
-sPRIi64='"Li"'
-sPRIo64='"Lo"'
-sPRIu64='"Lu"'
-sPRIx64='"Lx"'
-sSCNfldbl='"f"'
-sched_yield='sched_yield()'
-scriptdir='/usr/bin'
-scriptdirexp='/usr/bin'
-sed='sed'
-seedfunc='srand48'
-selectminbits='32'
-selecttype='fd_set *'
-sendmail=''
-setgrent_r_proto='0'
-sethostent_r_proto='0'
-setlocale_r_proto='0'
-setnetent_r_proto='0'
-setprotoent_r_proto='0'
-setpwent_r_proto='0'
-setservent_r_proto='0'
-sh='/bin/sh'
-shar=''
-sharpbang='#!'
-shmattype='void *'
-shortsize='2'
-shrpenv=''
-shsharp='true'
-sig_count='128'
-sig_name='ZERO HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM USR1 USR2 CHLD PWR WINCH URG IO STOP TSTP CONT TTIN TTOU VTALRM PROF XCPU XFSZ RTMIN NUM33 NUM34 NUM35 NUM36 NUM37 NUM38 NUM39 NUM40 NUM41 NUM42 NUM43 NUM44 NUM45 NUM46 NUM47 NUM48 NUM49 NUM50 NUM51 NUM52 NUM53 NUM54 NUM55 NUM56 NUM57 NUM58 NUM59 NUM60 NUM61 NUM62 NUM63 NUM64 NUM65 NUM66 NUM67 NUM68 NUM69 NUM70 NUM71 NUM72 NUM73 NUM74 NUM75 NUM76 NUM77 NUM78 NUM79 NUM80 NUM81 NUM82 NUM83 NUM84 NUM85 NUM86 NUM87 NUM88 NUM89 NUM90 NUM91 NUM92 NUM93 NUM94 NUM95 NUM96 NUM97 NUM98 NUM99 NUM100 NUM101 NUM102 NUM103 NUM104 NUM105 NUM106 NUM107 NUM108 NUM109 NUM110 NUM111 NUM112 NUM113 NUM114 NUM115 NUM116 NUM117 NUM118 NUM119 NUM120 NUM121 NUM122 NUM123 NUM124 NUM125 NUM126 RTMAX IOT CLD POLL '
-sig_name_init='"ZERO", "HUP", "INT", "QUIT", "ILL", "TRAP", "ABRT", "EMT", "FPE", "KILL", "BUS", "SEGV", "SYS", "PIPE", "ALRM", "TERM", "USR1", "USR2", "CHLD", "PWR", "WINCH", "URG", "IO", "STOP", "TSTP", "CONT", "TTIN", "TTOU", "VTALRM", "PROF", "XCPU", "XFSZ", "RTMIN", "NUM33", "NUM34", "NUM35", "NUM36", "NUM37", "NUM38", "NUM39", "NUM40", "NUM41", "NUM42", "NUM43", "NUM44", "NUM45", "NUM46", "NUM47", "NUM48", "NUM49", "NUM50", "NUM51", "NUM52", "NUM53", "NUM54", "NUM55", "NUM56", "NUM57", "NUM58", "NUM59", "NUM60", "NUM61", "NUM62", "NUM63", "NUM64", "NUM65", "NUM66", "NUM67", "NUM68", "NUM69", "NUM70", "NUM71", "NUM72", "NUM73", "NUM74", "NUM75", "NUM76", "NUM77", "NUM78", "NUM79", "NUM80", "NUM81", "NUM82", "NUM83", "NUM84", "NUM85", "NUM86", "NUM87", "NUM88", "NUM89", "NUM90", "NUM91", "NUM92", "NUM93", "NUM94", "NUM95", "NUM96", "NUM97", "NUM98", "NUM99", "NUM100", "NUM101", "NUM102", "NUM103", "NUM104", "NUM105", "NUM106", "NUM107", "NUM108", "NUM109", "NUM110", "NUM111", "NUM112", "NUM113", "NUM114", "NUM115", "NUM116", "NUM117", "NUM118", "NUM119", "NUM120", "NUM121", "NUM122", "NUM123", "NUM124", "NUM125", "NUM126", "RTMAX", "IOT", "CLD", "POLL", 0'
-sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 6 18 22 '
-sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 6, 18, 22, 0'
-sig_size='131'
-signal_t='void'
-sitearch=''
-sitearchexp=''
-sitebin='/usr/bin'
-sitebinexp='/usr/bin'
-sitehtml1dir=''
-sitehtml1direxp=''
-sitehtml3dir=''
-sitehtml3direxp=''
-sitelib=''
-#sitelib_stem='/usr/lib/perl5/site_perl'
-sitelibexp=''
-siteman1dir=''
-siteman1direxp=''
-siteman3dir=''
-siteman3direxp=''
-siteprefix='/usr'
-siteprefixexp='/usr'
-sitescript='/usr/bin'
-sitescriptexp='/usr/bin'
-sizesize='4'
-sizetype='size_t'
-sleep=''
-smail=''
-so='so'
-sockethdr=''
-socketlib=''
-socksizetype='socklen_t'
-sort='sort'
-spackage='Perl5'
-spitshell='cat'
-srand48_r_proto='0'
-srandom_r_proto='0'
-src='.'
-ssizetype='ssize_t'
-startperl='#!/usr/bin/perl'
-startsh='#!/bin/sh'
-static_ext=' '
-stdchar='char'
-stdio_base='((fp)->_base)'
-stdio_bufsiz='((fp)->_cnt + (fp)->_ptr - (fp)->_base)'
-stdio_cnt='((fp)->_cnt)'
-stdio_filbuf=''
-stdio_ptr='((fp)->_ptr)'
-stdio_stream_array=''
-strerror_r_proto='0'
-#strings='/usr/include/string.h'
-submit=''
-sysman='/usr/share/man/man1'
-tail=''
-tar=''
-targetarch='mipsel-linux-uclibc'
-tbl=''
-tee=''
-test='test'
-#timeincl='/usr/include/sys/time.h /usr/include/time.h '
-timetype='time_t'
-tmpnam_r_proto='0'
-to=':'
-touch='touch'
-tr='tr'
-trnl='\n'
-troff=''
-ttyname_r_proto='0'
-u16size='2'
-u16type='unsigned short'
-u32size='4'
-u32type='unsigned long'
-u64size='8'
-u64type='unsigned long long'
-u8size='1'
-u8type='unsigned char'
-uidformat='"lu"'
-uidsign='1'
-uidsize='4'
-uidtype='uid_t'
-uname='uname'
-uniq='uniq'
-uquadtype='unsigned long long'
-use5005threads='undef'
-use64bitall='undef'
-use64bitint='undef'
-usecbacktrace='undef'
-usecrosscompile='define'
-usedl='define'
-usefaststdio='undef'
-useithreads='undef'
-uselargefiles='define'
-uselongdouble='undef'
-usemallocwrap='define'
-usemorebits='undef'
-usemultiplicity='undef'
-usemymalloc='n'
-usenm='true'
-useopcode='true'
-useperlio='define'
-useposix='true'
-usequadmath='undef'
-usereentrant='undef'
-userelocatableinc='undef'
-usesfio='false'
-useshrplib='true'
-usesitecustomize='undef'
-usesocks='undef'
-usethreads='undef'
-usevendorprefix='undef'
-usevfork='false'
-usrinc='%%INCDIRS%%'
-uuname=''
-uvXUformat='"lX"'
-uvoformat='"lo"'
-uvsize='4'
-uvtype='unsigned long'
-uvuformat='"lu"'
-uvxformat='"lx"'
-vendorarch=''
-vendorarchexp=''
-vendorbin=''
-vendorbinexp=''
-vendorhtml1dir=' '
-vendorhtml1direxp=''
-vendorhtml3dir=' '
-vendorhtml3direxp=''
-vendorlib=''
-vendorlib_stem=''
-vendorlibexp=''
-vendorman1dir=' '
-vendorman1direxp=''
-vendorman3dir=' '
-vendorman3direxp=''
-vendorprefix=''
-vendorprefixexp=''
-vendorscript=''
-vendorscriptexp=''
-versiononly='undef'
-vi=''
-voidflags='15'
-xlibpth='/usr/lib/386 /lib/386'
-yacc='yacc'
-yaccflags=''
-zcat=''
-zip='zip'
-# Configure command line arguments.
-config_arg0='./Configure'
-config_args='-der'
-config_argc=1
-config_arg1='-der'
-PERL_REVISION=5
-PERL_API_REVISION=5
-PERL_API_SUBVERSION=0
-PERL_PATCHLEVEL=
-PERL_CONFIG_SH=true
-# Fix problem with HiRes timer.
-d_nanosleep='define'
-d_clock_gettime='define'
-d_clock_getres='define'
-d_clock_nanosleep='define'
-d_clock='define'
-
-# New symbols for perl 5.20.0
-bin_ELF='define'
-charbits='8'
-charsize='1'
-d_asctime64='undef'
-d_attribute_deprecated='define'
-d_ctime64='undef'
-d_difftime64='undef'
-d_gdbm_ndbm_h_uses_prototypes='undef'
-d_gdbmndbm_h_uses_prototypes='undef'
-d_getaddrinfo='define'
-d_getnameinfo='define'
-d_gmtime64='undef'
-d_inetntop='define'
-d_inetpton='define'
-d_ip_mreq='define'
-d_ip_mreq_source='define'
-d_ipv6_mreq='%%IPV6%%'
-d_ipv6_mreq_source='undef'
-d_isblank='define'
-d_libname_unique='undef'
-d_localtime64='undef'
-d_mktime64='undef'
-d_ndbm='undef'
-d_ndbm_h_uses_prototypes='undef'
-d_prctl='define'
-d_prctl_set_name='define'
-d_sin6_scope_id='%%IPV6%%'
-d_sockaddr_in6='%%IPV6%%'
-d_sockaddr_sa_len='undef'
-d_static_inline='define'
-d_timegm='define'
-dtrace=''
-extern_C='extern'
-hostosname=''
-i_assert='define'
-i_bfd='undef'
-i_gdbm_ndbm='undef'
-i_gdbmndbm='undef'
-i_mallocmalloc='undef'
-i_stdbool='define'
-i_syspoll='define'
-#incpth='/usr/lib/gcc/i486-slackware-linux/4.8.2/include /usr/local/include /usr/lib/gcc/i486-slackware-linux/4.8.2/include-fixed /usr/include'
-ld_can_script='define'
-#libsfound=' /usr/lib/libgdbm.so /usr/lib/libdb.so /usr/lib/libdl.so /usr/lib/libm.so /usr/lib/libcrypt.so /usr/lib/libutil.so /usr/lib/libc.so'
-nv_overflows_integers_at='256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0'
-perl_static_inline='static __inline__'
-sGMTIME_max='2147483647'
-sGMTIME_min='-2147483648'
-sLOCALTIME_max='2147483647'
-sLOCALTIME_min='-2147483648'
-#sitelib_stem='/usr/local/lib/perl5/site_perl'
-st_ino_sign='1'
-st_ino_size='8'
-#strings='/usr/include/string.h'
-sysroot=''
-targetdir=''
-targetenv=''
-targethost=''
-targetmkdir=''
-targetport=''
-targetsh='/bin/sh'
-#timeincl='/usr/include/sys/time.h /usr/include/time.h '
-usedevel='undef'
-usedtrace='undef'
-usekernprocpathname='undef'
-usensgetexecutablepath='undef'
-useversionedarchname='undef'
-vaproto='define'
-libdb_needs_pthread='N'
-
-# These symbols changed from perl 5.10.0 to 5.20.0 and probably will
-# change again for new versions, so they're included here for
-# future reference
-api_version='22'
-# Always set this to the base version, not the patched one!
-api_versionstring='5.22.0'
-dynamic_ext='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/DosGlob File/Glob Filter/Util/Call GDBM_File Hash/Util Hash/Util/FieldHash I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc Opcode POSIX PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Tie/Hash/NamedCapture Time/HiRes Time/Piece Unicode/Collate XS/APItest XS/Typemap arybase attributes mro re threads threads/shared'
-installarchlib='/usr/lib/perl5/5.22'
-installprivlib='/usr/lib/perl5/5.22'
-installsitearch='/usr/lib/perl5/5.22'
-installsitelib='/usr/lib/perl5/5.22'
-nonxs_ext='Archive/Tar Attribute/Handlers AutoLoader B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Config/Perl/V Devel/SelfStubber Digest Dumpvalue Env Errno Exporter ExtUtils/CBuilder ExtUtils/Command ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS File/Fetch File/Find File/Path File/Temp FileCache Filter/Simple Getopt/Long HTTP/Tiny I18N/Collate I18N/LangTags IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP Locale/Codes Locale/Maketext Locale/Maketext/Simple Math/BigInt Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NEXT Net/Ping Params/Check Parse/CPAN/Meta Perl/OSType PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage Safe Search/Dict SelfLoader Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Memoize Tie/RefHash Time/Local XSLoader autodie autouse base bignum constant encoding/warnings experimental if lib libnet parent perlfaq podlators Unicode/Normalize version'
-privlib='/usr/lib/perl5/5.22'
-privlibexp='/usr/lib/perl5/5.22'
-archlib='/usr/lib/perl5/5.22'
-archlibexp='/usr/lib/perl5/5.22'
-version='5.22.0'
-version_patchlevel_string='version 22 subversion 0'
-PERL_VERSION=22
-PERL_API_VERSION=22
-PERL_SUBVERSION=0
-patchlevel='22'
-ccdlflags='-fPIC -Wl,-rpath,/usr/lib/perl5/5.22/CORE'
-subversion='0'
-extensions='B Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call GDBM_File Hash/Util I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex Time/HiRes Time/Piece XS/APItest XS/Typemap attrs re threads threads/shared Hash/Util/FieldHash Compress/Zlib Errno IO_Compress_Base IO_Compress_Zlib Unicode/Normalize'
-known_extensions='B Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call GDBM_File Hash/Util I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc NDBM_File ODBM_File Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex Time/HiRes Time/Piece Unicode/Normalize Win32 Win32API/File Win32CORE XS/APItest XS/Typemap attrs re threads threads/shared Hash/Util/FieldHash'
-
-# Make perl use these tools instead of the target binaries during build
-hostgenerate='%%HOSTGENERATE%%'
-hostperl='%%HOSTMINIPERL%%'
diff --git a/lang/perl/files/config.sh-powerpc-mt.in b/lang/perl/files/config.sh-powerpc-mt.in
deleted file mode 100644 (file)
index c24eb9b..0000000
+++ /dev/null
@@ -1,1227 +0,0 @@
-#!/bin/sh
-#
-# This file was produced by running the Configure script. It holds all the
-# definitions figured out by Configure. Should you modify one of these values,
-# do not forget to propagate your changes by running "Configure -der". You may
-# instead choose to run each of the .SH files by yourself, or "Configure -S".
-#
-
-# Package name      : perl5
-# Source directory  : .
-# Configuration time: Fri Jul 20 04:26:18 MDT 2007
-# Configured by     : root
-# Target system     : linux maia 2.6.22 #1 wed jul 11 12:24:09 cest 2007 ppc unknown unknown gnulinux 
-
-Author=''
-Date=''
-Header=''
-Id=''
-Locker=''
-Log=''
-RCSfile=''
-Revision=''
-Source=''
-State=''
-_a='.a'
-_exe=''
-_o='.o'
-afs='false'
-afsroot='/afs'
-alignbytes='8'
-ansi2knr=''
-aphostname='/bin/hostname'
-api_revision='5'
-api_subversion='0'
-
-
-ar='ar'
-archname64=''
-archname='powerpc-linux-uclibc'
-archobjs=''
-asctime_r_proto='REENTRANT_PROTO_B_SB'
-awk='awk'
-baserev='5.0'
-bash=''
-bin='/usr/bin'
-binexp='/usr/bin'
-bison='bison'
-byacc='byacc'
-byteorder='4321'
-c=''
-castflags='0'
-cat='cat'
-cc='%%CC%%'
-cccdlflags='-fPIC'
-ccflags='-D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 %%CFLAGS%%'
-ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
-ccname='gcc'
-ccsymbols='__gnu_linux__=1 __linux=1 __linux__=1 __unix=1 __unix__=1 system=linux system=posix system=unix'
-ccversion=''
-cf_by='root'
-cf_email='root@maia.dev.null'
-cf_time='Fri Jul 20 04:26:18 MDT 2007'
-chgrp=''
-chmod='chmod'
-chown=''
-clocktype='clock_t'
-comm='comm'
-compress=''
-contains='grep'
-cp='cp'
-cpio=''
-cpp='cpp'
-cpp_stuff='42'
-cppccsymbols='linux=1 unix=1'
-cppflags='-D_REENTRANT -D_GNU_SOURCE %%CFLAGS%%'
-cpplast='-'
-cppminus='-'
-cpprun='%%CPP%%'
-cppstdin='%%CPP%%'
-cppsymbols='_BIG_ENDIAN=1 __BIG_ENDIAN__=1 __ELF__=1 _FILE_OFFSET_BITS=64 __GLIBC__=2 __GLIBC_MINOR__=2 __GNUC__=3 __GNUC_MINOR__=4 __GNU_LIBRARY__=6 _LARGEFILE_SOURCE=1 _POSIX_C_SOURCE=199506L _POSIX_SOURCE=1 __STDC__=1 __USE_BSD=1 __USE_FILE_OFFSET64=1 __USE_LARGEFILE=1 __USE_MISC=1 __USE_POSIX=1 __USE_POSIX199309=1 __USE_POSIX199506=1 __USE_POSIX2=1 __USE_SVID=1 __linux=1 __linux__=1 __unix=1 __unix__=1'
-crypt_r_proto='%%CRYPT_R_PROTO%%'
-cryptlib=''
-csh='csh'
-ctermid_r_proto='0'
-ctime_r_proto='REENTRANT_PROTO_B_SB'
-d_Gconvert='sprintf((b),"%.*g",(n),(x))'
-d_PRIEUldbl='define'
-d_PRIFUldbl='define'
-d_PRIGUldbl='define'
-d_PRIXU64='define'
-d_PRId64='define'
-d_PRIeldbl='define'
-d_PRIfldbl='define'
-d_PRIgldbl='define'
-d_PRIi64='define'
-d_PRIo64='define'
-d_PRIu64='define'
-d_PRIx64='define'
-d_SCNfldbl='define'
-d__fwalk='undef'
-d_access='define'
-d_accessx='undef'
-d_acosh='define'
-d_aintl='undef'
-d_alarm='define'
-d_archlib='undef'
-d_asctime_r='define'
-d_asinh='define'
-d_atanh='define'
-d_atolf='undef'
-d_atoll='define'
-d_attribute_format='define'
-d_attribute_malloc='define'
-d_attribute_nonnull='define'
-d_attribute_noreturn='define'
-d_attribute_pure='define'
-d_attribute_unused='define'
-d_attribute_warn_unused_result='define'
-d_backtrace='define'
-d_bcmp='define'
-d_bcopy='define'
-d_bsd='undef'
-d_bsdgetpgrp='undef'
-d_bsdsetpgrp='undef'
-d_builtin_choose_expr='define'
-d_builtin_expect='undef'
-d_bzero='define'
-d_c99_variadic_macros='define'
-d_casti32='undef'
-d_castneg='define'
-d_cbrt='define'
-d_charvspr='undef'
-d_chown='define'
-d_chroot='define'
-d_chsize='undef'
-d_class='undef'
-d_clearenv='define'
-d_closedir='define'
-d_cmsghdr_s='define'
-d_const='define'
-d_copysign='define'
-d_copysignl='undef'
-d_cplusplus='undef'
-d_crypt='%%CRYPT%%'
-d_crypt_r='%%CRYPT%%'
-d_csh='undef'
-d_ctermid='define'
-d_ctermid_r='undef'
-d_ctime_r='define'
-d_cuserid='define'
-d_dbl_dig='define'
-d_dbminitproto='undef'
-d_difftime='define'
-d_dir_dd_fd='undef'
-d_dirfd='define'
-d_dirnamlen='undef'
-d_dladdr='define'
-d_dlerror='define'
-d_dlopen='define'
-d_dlsymun='undef'
-d_dosuid='undef'
-d_drand48_r='define'
-d_drand48proto='define'
-d_dup2='define'
-d_eaccess='undef'
-d_endgrent='define'
-d_endgrent_r='undef'
-d_endhent='define'
-d_endhostent_r='undef'
-d_endnent='define'
-d_endnetent_r='undef'
-d_endpent='define'
-d_endprotoent_r='undef'
-d_endpwent='define'
-d_endpwent_r='undef'
-d_endsent='define'
-d_endservent_r='undef'
-d_eofnblk='define'
-d_erf='define'
-d_erfc='define'
-d_eunice='undef'
-d_exp2='define'
-d_expm1='define'
-d_faststdio='undef'
-d_fchdir='define'
-d_fchmod='define'
-d_fchown='define'
-d_fcntl='define'
-d_fcntl_can_lock='define'
-d_fd_macros='define'
-d_fd_set='define'
-d_fdim='define'
-d_fds_bits='define'
-d_fegetround='undef'
-d_fgetpos='define'
-d_finite='define'
-d_finitel='undef'
-d_flexfnam='define'
-d_flock='define'
-d_flockproto='define'
-d_fma='define'
-d_fmax='define'
-d_fmin='define'
-d_fork='define'
-d_fp_class='undef'
-d_fp_classify='undef'
-d_fp_classl='undef'
-d_fpathconf='define'
-d_fpclass='undef'
-d_fpclassify='define'
-d_fpclassl='undef'
-d_fpgetround='undef'
-d_fpos64_t='undef'
-d_frexpl='undef'
-d_fs_data_s='undef'
-d_fseeko='define'
-d_fsetpos='define'
-d_fstatfs='define'
-d_fstatvfs='define'
-d_fsync='define'
-d_ftello='define'
-d_ftime='undef'
-d_futimes='undef'
-d_getcwd='define'
-d_getespwnam='undef'
-d_getfsstat='undef'
-d_getgrent='define'
-d_getgrent_r='define'
-d_getgrgid_r='define'
-d_getgrnam_r='define'
-d_getgrps='define'
-d_gethbyaddr='define'
-d_gethbyname='define'
-d_gethent='define'
-d_gethname='define'
-d_gethostbyaddr_r='define'
-d_gethostbyname_r='define'
-d_gethostent_r='define'
-d_gethostprotos='define'
-d_getitimer='define'
-d_getlogin='define'
-d_getlogin_r='define'
-d_getmnt='undef'
-d_getmntent='define'
-d_getnbyaddr='define'
-d_getnbyname='define'
-d_getnent='define'
-d_getnetbyaddr_r='define'
-d_getnetbyname_r='define'
-d_getnetent_r='define'
-d_getnetprotos='define'
-d_getpagsz='define'
-d_getpbyname='define'
-d_getpbynumber='define'
-d_getpent='define'
-d_getpgid='define'
-d_getpgrp2='undef'
-d_getpgrp='define'
-d_getppid='define'
-d_getprior='define'
-d_getprotobyname_r='define'
-d_getprotobynumber_r='define'
-d_getprotoent_r='define'
-d_getprotoprotos='define'
-d_getprpwnam='undef'
-d_getpwent='define'
-d_getpwent_r='define'
-d_getpwnam_r='define'
-d_getpwuid_r='define'
-d_getsbyname='define'
-d_getsbyport='define'
-d_getsent='define'
-d_getservbyname_r='define'
-d_getservbyport_r='define'
-d_getservent_r='define'
-d_getservprotos='define'
-d_getspnam='define'
-d_getspnam_r='define'
-d_gettimeod='define'
-d_gmtime_r='define'
-d_gnulibc='undef'
-d_grpasswd='define'
-d_hasmntopt='define'
-d_htonl='define'
-d_hypot='define'
-d_ilogb='define'
-d_ilogbl='undef'
-d_inc_version_list='undef'
-d_index='undef'
-d_inetaton='define'
-d_int64_t='define'
-d_isascii='define'
-d_isfinite='define'
-d_isfinitel='undef'
-d_isinf='define'
-d_isinfl='define'
-d_isless='undef'
-d_isnan='define'
-d_isnanl='undef'
-d_isnormal='define'
-d_j0='undef'
-d_j0l='undef'
-d_killpg='define'
-d_lc_monetary_2008='define'
-d_lchown='define'
-d_ldbl_dig='define'
-d_ldexpl='define'
-d_lgamma='define'
-d_lgamma_r='define'
-d_libm_lib_version='define'
-d_link='define'
-d_llrint='define'
-d_llrintl='define'
-d_llround='define'
-d_llroundl='define'
-d_localtime_r='define'
-d_localtime_r_needs_tzset='define'
-d_locconv='define'
-d_lockf='define'
-d_log1p='define'
-d_log2='define'
-d_logb='define'
-d_longdbl='define'
-d_longlong='define'
-d_lrint='define'
-d_lrintl='define'
-d_lround='define'
-d_lroundl='define'
-d_lseekproto='define'
-d_lstat='define'
-d_madvise='define'
-d_malloc_good_size='undef'
-d_malloc_size='undef'
-d_mblen='define'
-d_mbstowcs='define'
-d_mbtowc='define'
-d_memchr='define'
-d_memcmp='define'
-d_memcpy='define'
-d_memmove='define'
-d_memset='define'
-d_mkdir='define'
-d_mkdtemp='define'
-d_mkfifo='define'
-d_mkstemp='define'
-d_mkstemps='undef'
-d_mktime='define'
-d_mmap='define'
-d_modfl='undef'
-d_modfl_pow32_bug='undef'
-d_modflproto='undef'
-d_mprotect='define'
-d_msg='define'
-d_msg_ctrunc='define'
-d_msg_dontroute='define'
-d_msg_oob='define'
-d_msg_peek='define'
-d_msg_proxy='define'
-d_msgctl='define'
-d_msgget='define'
-d_msghdr_s='define'
-d_msgrcv='define'
-d_msgsnd='define'
-d_msync='define'
-d_munmap='define'
-d_mymalloc='undef'
-d_nan='define'
-d_nearbyint='define'
-d_nextafter='define'
-d_nexttoward='undef'
-d_nice='define'
-d_nl_langinfo='define'
-d_nv_preserves_uv='define'
-d_nv_zero_is_allbits_zero='define'
-d_off64_t='define'
-d_old_pthread_create_joinable='undef'
-d_oldpthreads='undef'
-d_oldsock='undef'
-d_open3='define'
-d_pathconf='define'
-d_pause='define'
-d_perl_otherlibdirs='undef'
-d_phostname='undef'
-d_pipe='define'
-d_poll='define'
-d_portable='define'
-d_printf_format_null='define'
-d_procselfexe='define'
-d_pseudofork='undef'
-d_pthread_atfork='define'
-d_pthread_attr_setscope='define'
-d_pthread_yield='define'
-d_ptrdiff_t='define'
-d_pwage='undef'
-d_pwchange='undef'
-d_pwclass='undef'
-d_pwcomment='undef'
-d_pwexpire='undef'
-d_pwgecos='define'
-d_pwpasswd='define'
-d_pwquota='undef'
-d_qgcvt='undef'
-d_quad='define'
-d_random_r='define'
-d_re_comp='undef'
-d_readdir64_r='define'
-d_readdir='define'
-d_readdir_r='define'
-d_readlink='define'
-d_readv='define'
-d_recvmsg='define'
-d_regcmp='undef'
-d_regcomp='define'
-d_remainder='define'
-d_remquo='define'
-d_rename='define'
-d_rewinddir='define'
-d_rint='define'
-d_rmdir='define'
-d_round='define'
-d_safebcpy='undef'
-d_safemcpy='undef'
-d_sanemcmp='define'
-d_sbrkproto='define'
-d_scalbn='define'
-d_scalbnl='undef'
-d_sched_yield='define'
-d_scm_rights='define'
-d_seekdir='define'
-d_select='define'
-d_sem='define'
-d_semctl='define'
-d_semctl_semid_ds='define'
-d_semctl_semun='define'
-d_semget='define'
-d_semop='define'
-d_sendmsg='define'
-d_setegid='define'
-d_seteuid='define'
-d_setgrent='define'
-d_setgrent_r='undef'
-d_setgrps='define'
-d_sethent='define'
-d_sethostent_r='undef'
-d_setitimer='define'
-d_setlinebuf='define'
-d_setlocale='define'
-d_setlocale_r='undef'
-d_setnent='define'
-d_setnetent_r='undef'
-d_setpent='define'
-d_setpgid='define'
-d_setpgrp2='undef'
-d_setpgrp='define'
-d_setprior='define'
-d_setproctitle='undef'
-d_setprotoent_r='undef'
-d_setpwent='define'
-d_setpwent_r='undef'
-d_setregid='define'
-d_setresgid='define'
-d_setresuid='define'
-d_setreuid='define'
-d_setrgid='undef'
-d_setruid='undef'
-d_setsent='define'
-d_setservent_r='undef'
-d_setsid='define'
-d_setvbuf='define'
-d_sfio='undef'
-d_shm='define'
-d_shmat='define'
-d_shmatprototype='define'
-d_shmctl='define'
-d_shmdt='define'
-d_shmget='define'
-d_sigaction='define'
-d_signbit='undef'
-d_sigprocmask='define'
-d_sigsetjmp='define'
-d_sitearch='define'
-d_snprintf='define'
-d_sockatmark='undef'
-d_sockatmarkproto='undef'
-d_socket='define'
-d_socklen_t='define'
-d_sockpair='define'
-d_socks5_init='undef'
-d_sprintf_returns_strlen='define'
-d_sqrtl='undef'
-d_srand48_r='define'
-d_srandom_r='define'
-d_sresgproto='define'
-d_sresuproto='define'
-d_stat='define'
-d_statblks='define'
-d_statfs_f_flags='undef'
-d_statfs_s='define'
-d_statvfs='define'
-d_stdio_cnt_lval='undef'
-d_stdio_ptr_lval='undef'
-d_stdio_ptr_lval_nochange_cnt='undef'
-d_stdio_ptr_lval_sets_cnt='undef'
-d_stdio_stream_array='undef'
-d_stdiobase='undef'
-d_stdstdio='undef'
-d_strchr='define'
-d_strcoll='define'
-d_strctcpy='define'
-d_strerrm='strerror(e)'
-d_strerror='define'
-d_strerror_r='define'
-d_strftime='define'
-d_strlcat='define'
-d_strlcpy='define'
-d_strtod='define'
-d_strtol='define'
-d_strtold='define'
-d_strtoll='define'
-d_strtoq='define'
-d_strtoul='define'
-d_strtoull='define'
-d_strtouq='define'
-d_strxfrm='define'
-d_suidsafe='undef'
-d_symlink='define'
-d_syscall='define'
-d_syscallproto='define'
-d_sysconf='define'
-d_sysernlst=''
-d_syserrlst='undef'
-d_system='define'
-d_tcgetpgrp='define'
-d_tcsetpgrp='define'
-d_telldir='define'
-d_telldirproto='define'
-d_tgamma='define'
-d_time='define'
-d_times='define'
-d_tm_tm_gmtoff='define'
-d_tm_tm_zone='define'
-d_tmpnam_r='define'
-d_trunc='define'
-d_truncate='define'
-d_truncl='define'
-d_ttyname_r='define'
-d_tzname='define'
-d_u32align='undef'
-d_ualarm='define'
-d_umask='define'
-d_uname='define'
-d_union_semun='undef'
-d_unordered='undef'
-d_unsetenv='define'
-d_usleep='define'
-d_usleepproto='define'
-d_ustat='define'
-d_vendorarch='undef'
-d_vendorbin='undef'
-d_vendorlib='undef'
-d_vendorscript='undef'
-d_vfork='undef'
-d_void_closedir='undef'
-d_voidsig='define'
-d_voidtty=''
-d_volatile='define'
-d_vprintf='define'
-d_vsnprintf='define'
-d_wait4='define'
-d_waitpid='define'
-d_wcscmp='define'
-d_wcstombs='define'
-d_wcsxfrm='define'
-d_wctomb='define'
-d_writev='define'
-d_xenix='undef'
-date='date'
-db_hashtype='u_int32_t'
-db_prefixtype='size_t'
-db_version_major=''
-db_version_minor=''
-db_version_patch=''
-defvoidused='15'
-direntrytype='struct dirent'
-dlext='so'
-dlsrc='dl_dlopen.xs'
-doublekind='4'
-doublesize='8'
-drand01='drand48()'
-drand48_r_proto='REENTRANT_PROTO_I_ST'
-
-eagain='EAGAIN'
-ebcdic='undef'
-echo='echo'
-egrep='egrep'
-emacs=''
-endgrent_r_proto='0'
-endhostent_r_proto='0'
-endnetent_r_proto='0'
-endprotoent_r_proto='0'
-endpwent_r_proto='0'
-endservent_r_proto='0'
-eunicefix=':'
-exe_ext=''
-expr='expr'
-extras=''
-fflushNULL='define'
-fflushall='undef'
-find=''
-firstmakefile='makefile'
-flex=''
-fpossize='24'
-fpostype='fpos_t'
-freetype='void'
-from=':'
-full_ar='%%AR%%'
-full_csh='csh'
-full_sed='sed'
-gccansipedantic=''
-gccosandvers=''
-gccversion='3.4.3'
-getgrent_r_proto='REENTRANT_PROTO_I_SBWR'
-getgrgid_r_proto='REENTRANT_PROTO_I_TSBWR'
-getgrnam_r_proto='REENTRANT_PROTO_I_CSBWR'
-gethostbyaddr_r_proto='REENTRANT_PROTO_I_TsISBWRE'
-gethostbyname_r_proto='REENTRANT_PROTO_I_CSBWRE'
-gethostent_r_proto='REENTRANT_PROTO_I_SBWRE'
-getlogin_r_proto='REENTRANT_PROTO_I_BW'
-getnetbyaddr_r_proto='REENTRANT_PROTO_I_uISBWRE'
-getnetbyname_r_proto='REENTRANT_PROTO_I_CSBWRE'
-getnetent_r_proto='REENTRANT_PROTO_I_SBWRE'
-getprotobyname_r_proto='REENTRANT_PROTO_I_CSBWR'
-getprotobynumber_r_proto='REENTRANT_PROTO_I_ISBWR'
-getprotoent_r_proto='REENTRANT_PROTO_I_SBWR'
-getpwent_r_proto='REENTRANT_PROTO_I_SBWR'
-getpwnam_r_proto='REENTRANT_PROTO_I_CSBWR'
-getpwuid_r_proto='REENTRANT_PROTO_I_TSBWR'
-getservbyname_r_proto='REENTRANT_PROTO_I_CCSBWR'
-getservbyport_r_proto='REENTRANT_PROTO_I_ICSBWR'
-getservent_r_proto='REENTRANT_PROTO_I_SBWR'
-getspnam_r_proto='REENTRANT_PROTO_I_CSBWR'
-gidformat='"lu"'
-gidsign='1'
-gidsize='4'
-gidtype='gid_t'
-glibpth='/usr/shlib  /lib /usr/lib /usr/lib/386 /lib/386 /usr/ccs/lib /usr/ucblib /usr/local/lib '
-gmake='gmake'
-gmtime_r_proto='REENTRANT_PROTO_S_TS'
-gnulibc_version=''
-grep='grep'
-groupcat='cat /etc/group'
-groupstype='gid_t'
-gzip='gzip'
-h_fcntl='false'
-h_sysfile='true'
-hint='recommended'
-hostcat='cat /etc/hosts'
-html1dir=' '
-html1direxp=''
-html3dir=' '
-html3direxp=''
-i16size='2'
-i16type='signed short'
-i32size='4'
-i32type='signed long'
-i64size='8'
-i64type='signed long long'
-i8size='1'
-i8type='signed char'
-i_arpainet='define'
-i_bsdioctl=''
-i_crypt='%%CRYPT%%'
-i_db='define'
-i_dbm='undef'
-i_dirent='define'
-i_dld='undef'
-i_dlfcn='define'
-i_execinfo='define'
-i_fcntl='undef'
-i_fenv='undef'
-i_float='define'
-i_fp='undef'
-i_fp_class='undef'
-i_gdbm='define'
-i_grp='define'
-i_ieeefp='undef'
-i_inttypes='define'
-i_langinfo='define'
-i_libutil='undef'
-i_limits='define'
-i_locale='define'
-i_machcthr='undef'
-i_malloc='define'
-i_math='define'
-i_memory='undef'
-i_mntent='define'
-i_ndbm='undef'
-i_netdb='define'
-i_neterrno='undef'
-i_netinettcp='define'
-i_niin='define'
-i_poll='define'
-i_prot='undef'
-i_pthread='define'
-i_pwd='define'
-i_quadmath='define'
-i_rpcsvcdbm='undef'
-i_sfio='undef'
-i_sgtty='undef'
-i_shadow='define'
-i_socks='undef'
-i_stdarg='define'
-i_stddef='define'
-i_stdint='define'
-i_stdlib='define'
-i_string='define'
-i_sunmath='undef'
-i_sysaccess='undef'
-i_sysdir='define'
-i_sysfile='define'
-i_sysfilio='undef'
-i_sysin='undef'
-i_sysioctl='define'
-i_syslog='define'
-i_sysmman='define'
-i_sysmode='undef'
-i_sysmount='define'
-i_sysndir='undef'
-i_sysparam='define'
-i_sysresrc='define'
-i_syssecrt='undef'
-i_sysselct='define'
-i_syssockio='undef'
-i_sysstat='define'
-i_sysstatfs='define'
-i_sysstatvfs='define'
-i_systime='define'
-i_systimek='undef'
-i_systimes='define'
-i_systypes='define'
-i_sysuio='define'
-i_sysun='define'
-i_sysutsname='define'
-i_sysvfs='define'
-i_syswait='define'
-i_termio='undef'
-i_termios='define'
-i_time='define'
-i_unistd='define'
-i_ustat='define'
-i_utime='define'
-i_values='define'
-i_varargs='undef'
-i_varhdr='stdarg.h'
-i_vfork='undef'
-ignore_versioned_solibs='y'
-inc_version_list=' '
-inc_version_list_init='0'
-incpath=''
-inews=''
-
-installbin='/usr/bin'
-initialinstalllocation='/usr/bin'
-installhtml1dir=''
-installhtml3dir=''
-installman1dir=''
-installman3dir=''
-installprefix='/usr'
-installprefixexp='/usr'
-
-installscript='/usr/bin'
-
-installsitebin='/usr/bin'
-installsitehtml1dir=''
-installsitehtml3dir=''
-
-installsiteman1dir=''
-installsiteman3dir=''
-installsitescript='/usr/bin'
-installstyle='lib/perl5'
-installusrbinperl='define'
-installvendorarch=''
-installvendorbin=''
-installvendorhtml1dir=''
-installvendorhtml3dir=''
-installvendorlib=''
-installvendorman1dir=''
-installvendorman3dir=''
-installvendorscript=''
-intsize='4'
-issymlink='test -h'
-ivdformat='"ld"'
-ivsize='4'
-ivtype='long'
-ksh=''
-ld='%%LD%%'
-lddlflags='-shared %%LDFLAGS%%'
-ldflags='%%EXTRA_PERLLIBDIRS%%'
-ldflags_uselargefiles=''
-ldlibpthname='LD_LIBRARY_PATH'
-less='less'
-lib_ext='.a'
-libc=''
-libperl='libperl.so'
-libpth='%%LIBDIRS%%'
-libs='-lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread -lc'
-libsdirs='%%LIBDIRS%%'
-libsfiles=' libdl.so libm.so libcrypt.so libutil.so libpthread.so libc.so'
-#libsfound=' /usr/lib/libdl.so /usr/lib/libm.so /usr/lib/libcrypt.so /usr/lib/libutil.so /usr/lib/libc.so'
-libspath='%%LIBDIRS%%'
-libswanted='sfio socket inet nm ndbm gdbm dbm db malloc dl dld ld sun m crypt sec util pthread c cposix posix ucb BSD'
-libswanted_uselargefiles=''
-line=''
-lint=''
-lkflags=''
-ln='ln'
-lns='/bin/ln -s'
-localtime_r_proto='REENTRANT_PROTO_S_TS'
-locincpth=' '
-loclibpth=' '
-longdblkind='0'
-longdblsize='8'
-longlongsize='8'
-longsize='4'
-lp=''
-lpr=''
-ls='ls'
-lseeksize='8'
-lseektype='off_t'
-mail=''
-mailx=''
-make='make'
-make_set_make='#'
-mallocobj=''
-mallocsrc=''
-malloctype='void *'
-man1dir=' '
-man1direxp=''
-man1ext='0'
-man3dir=' '
-man3direxp=''
-man3ext='0'
-mips_type=''
-mistrustnm=''
-mkdir='mkdir'
-mmaptype='void *'
-modetype='mode_t'
-more='more'
-multiarch='undef'
-mv=''
-myarchname='powerpc-linux-uclibc'
-mydomain='.dev.null'
-myhostname='maia'
-myuname='linux maia 2.6.22 #1 wed jul 11 12:24:09 cest 2007 ppc unknown unknown gnulinux '
-n='-n'
-need_va_copy='define'
-netdb_hlen_type='size_t'
-netdb_host_type='const void *'
-netdb_name_type='const char *'
-netdb_net_type='in_addr_t'
-nm='nm'
-nm_opt=''
-nm_so_opt='--dynamic'
-
-nroff='nroff'
-nvEUformat='"E"'
-nvFUformat='"F"'
-nvGUformat='"G"'
-nv_preserves_uv_bits='32'
-nveformat='"e"'
-nvfformat='"f"'
-nvgformat='"g"'
-nvsize='8'
-nvtype='double'
-o_nonblock='O_NONBLOCK'
-obj_ext='.o'
-old_pthread_create_joinable=''
-optimize='-O2'
-orderlib='false'
-osname='linux'
-osvers='2.6.22'
-otherlibdirs=' '
-package='perl5'
-pager='/usr/bin/less'
-passcat='cat /etc/passwd'
-
-path_sep=':'
-perl5=''
-perl=''
-perl_patchlevel=''
-perladmin='root@maia.dev.null'
-perllibs='-ldl -lm -lcrypt -lutil -lpthread -lc %%EXTRA_PERLLIBS%%'
-perlpath='/usr/bin/perl'
-pg='pg'
-phostname='hostname'
-pidtype='pid_t'
-plibpth=''
-pmake=''
-pr=''
-prefix='/usr'
-prefixexp='/usr'
-
-
-procselfexe='"/proc/self/exe"'
-prototype='define'
-ptrsize='4'
-quadkind='3'
-quadtype='long long'
-randbits='48'
-randfunc='drand48'
-random_r_proto='REENTRANT_PROTO_I_St'
-randseedtype='long'
-ranlib=':'
-rd_nodata='-1'
-readdir64_r_proto='REENTRANT_PROTO_I_TSR'
-readdir_r_proto='REENTRANT_PROTO_I_TSR'
-revision='5'
-rm='rm'
-rm_try='/bin/rm -f try try a.out .out try.[cho] try..o core core.try* try.core*'
-rmail=''
-run=''
-runnm='false'
-sPRIEUldbl='"E"'
-sPRIFUldbl='"F"'
-sPRIGUldbl='"G"'
-sPRIXU64='"LX"'
-sPRId64='"Ld"'
-sPRIeldbl='"e"'
-sPRIfldbl='"f"'
-sPRIgldbl='"g"'
-sPRIi64='"Li"'
-sPRIo64='"Lo"'
-sPRIu64='"Lu"'
-sPRIx64='"Lx"'
-sSCNfldbl='"f"'
-sched_yield='sched_yield()'
-scriptdir='/usr/bin'
-scriptdirexp='/usr/bin'
-sed='sed'
-seedfunc='srand48'
-selectminbits='32'
-selecttype='fd_set *'
-sendmail=''
-setgrent_r_proto='0'
-sethostent_r_proto='0'
-setlocale_r_proto='0'
-setnetent_r_proto='0'
-setprotoent_r_proto='0'
-setpwent_r_proto='0'
-setservent_r_proto='0'
-sh='/bin/sh'
-shar=''
-sharpbang='#!'
-shmattype='void *'
-shortsize='2'
-shrpenv=''
-shsharp='true'
-sig_count='64'
-sig_name='ZERO HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS RTMIN NUM33 NUM34 NUM35 NUM36 NUM37 NUM38 NUM39 NUM40 NUM41 NUM42 NUM43 NUM44 NUM45 NUM46 NUM47 NUM48 NUM49 NUM50 NUM51 NUM52 NUM53 NUM54 NUM55 NUM56 NUM57 NUM58 NUM59 NUM60 NUM61 NUM62 RTMAX IOT CLD POLL UNUSED '
-sig_name_init='"ZERO", "HUP", "INT", "QUIT", "ILL", "TRAP", "ABRT", "BUS", "FPE", "KILL", "USR1", "SEGV", "USR2", "PIPE", "ALRM", "TERM", "STKFLT", "CHLD", "CONT", "STOP", "TSTP", "TTIN", "TTOU", "URG", "XCPU", "XFSZ", "VTALRM", "PROF", "WINCH", "IO", "PWR", "SYS", "RTMIN", "NUM33", "NUM34", "NUM35", "NUM36", "NUM37", "NUM38", "NUM39", "NUM40", "NUM41", "NUM42", "NUM43", "NUM44", "NUM45", "NUM46", "NUM47", "NUM48", "NUM49", "NUM50", "NUM51", "NUM52", "NUM53", "NUM54", "NUM55", "NUM56", "NUM57", "NUM58", "NUM59", "NUM60", "NUM61", "NUM62", "RTMAX", "IOT", "CLD", "POLL", "UNUSED", 0'
-sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 6 17 29 31 '
-sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 6, 17, 29, 31, 0'
-sig_size='68'
-signal_t='void'
-sitearch=''
-sitearchexp=''
-sitebin='/usr/bin'
-sitebinexp='/usr/bin'
-sitehtml1dir=''
-sitehtml1direxp=''
-sitehtml3dir=''
-sitehtml3direxp=''
-sitelib=''
-#sitelib_stem='/usr/lib/perl5/site_perl'
-sitelibexp=''
-siteman1dir=''
-siteman1direxp=''
-siteman3dir=''
-siteman3direxp=''
-siteprefix='/usr'
-siteprefixexp='/usr'
-sitescript='/usr/bin'
-sitescriptexp='/usr/bin'
-sizesize='4'
-sizetype='size_t'
-sleep=''
-smail=''
-so='so'
-sockethdr=''
-socketlib=''
-socksizetype='socklen_t'
-sort='sort'
-spackage='Perl5'
-spitshell='cat'
-srand48_r_proto='REENTRANT_PROTO_I_LS'
-srandom_r_proto='REENTRANT_PROTO_I_TS'
-src='.'
-ssizetype='ssize_t'
-startperl='#!/usr/bin/perl'
-startsh='#!/bin/sh'
-static_ext=' '
-stdchar='char'
-stdio_base='((fp)->_base)'
-stdio_bufsiz='((fp)->_cnt + (fp)->_ptr - (fp)->_base)'
-stdio_cnt='((fp)->_cnt)'
-stdio_filbuf=''
-stdio_ptr='((fp)->_ptr)'
-stdio_stream_array=''
-strerror_r_proto='REENTRANT_PROTO_B_IBW'
-#strings='/usr/include/string.h'
-submit=''
-sysman='/usr/share/man/man1'
-tail=''
-tar=''
-targetarch='powerpc-linux-uclibc'
-tbl=''
-tee=''
-test='test'
-#timeincl='/usr/include/sys/time.h /usr/include/time.h '
-timetype='time_t'
-tmpnam_r_proto='REENTRANT_PROTO_B_B'
-to=':'
-touch='touch'
-tr='tr'
-trnl='\n'
-troff=''
-ttyname_r_proto='REENTRANT_PROTO_I_IBW'
-u16size='2'
-u16type='unsigned short'
-u32size='4'
-u32type='unsigned long'
-u64size='8'
-u64type='unsigned long long'
-u8size='1'
-u8type='unsigned char'
-uidformat='"lu"'
-uidsign='1'
-uidsize='4'
-uidtype='uid_t'
-uname='uname'
-uniq='uniq'
-uquadtype='unsigned long long'
-use5005threads='undef'
-use64bitall='undef'
-use64bitint='undef'
-usecbacktrace='undef'
-usecrosscompile='define'
-usedl='define'
-usefaststdio='undef'
-useithreads='define'
-uselargefiles='define'
-uselongdouble='undef'
-usemallocwrap='define'
-usemorebits='undef'
-usemultiplicity='define'
-usemymalloc='n'
-usenm='true'
-useopcode='true'
-useperlio='define'
-useposix='true'
-usequadmath='undef'
-usereentrant='undef'
-userelocatableinc='undef'
-usesfio='false'
-useshrplib='true'
-usesitecustomize='undef'
-usesocks='undef'
-usethreads='define'
-usevendorprefix='undef'
-usevfork='false'
-usrinc='%%INCDIRS%%'
-uuname=''
-uvXUformat='"lX"'
-uvoformat='"lo"'
-uvsize='4'
-uvtype='unsigned long'
-uvuformat='"lu"'
-uvxformat='"lx"'
-vendorarch=''
-vendorarchexp=''
-vendorbin=''
-vendorbinexp=''
-vendorhtml1dir=' '
-vendorhtml1direxp=''
-vendorhtml3dir=' '
-vendorhtml3direxp=''
-vendorlib=''
-vendorlib_stem=''
-vendorlibexp=''
-vendorman1dir=' '
-vendorman1direxp=''
-vendorman3dir=' '
-vendorman3direxp=''
-vendorprefix=''
-vendorprefixexp=''
-vendorscript=''
-vendorscriptexp=''
-
-
-versiononly='undef'
-vi=''
-voidflags='15'
-xlibpth='/usr/lib/386 /lib/386'
-yacc='yacc'
-yaccflags=''
-zcat=''
-zip='zip'
-# Configure command line arguments.
-config_arg0='./Configure'
-config_args='-der -Dusethreads'
-config_argc=2
-config_arg1='-der'
-config_arg2='-Dusethreads'
-PERL_REVISION=5
-PERL_API_REVISION=5
-
-PERL_API_SUBVERSION=0
-PERL_PATCHLEVEL=
-PERL_CONFIG_SH=true
-# Fix problem with HiRes timer.
-d_nanosleep='define'
-d_clock_gettime='define'
-d_clock_getres='define'
-d_clock_nanosleep='define'
-d_clock='define'
-
-# New symbols for perl 5.20.0
-bin_ELF='define'
-charbits='8'
-charsize='1'
-d_asctime64='undef'
-d_attribute_deprecated='define'
-d_ctime64='undef'
-d_difftime64='undef'
-d_gdbm_ndbm_h_uses_prototypes='undef'
-d_gdbmndbm_h_uses_prototypes='undef'
-d_getaddrinfo='define'
-d_getnameinfo='define'
-d_gmtime64='undef'
-d_inetntop='define'
-d_inetpton='define'
-d_ip_mreq='define'
-d_ip_mreq_source='define'
-d_ipv6_mreq='%%IPV6%%'
-d_ipv6_mreq_source='undef'
-d_isblank='define'
-d_libname_unique='undef'
-d_localtime64='undef'
-d_mktime64='undef'
-d_ndbm='undef'
-d_ndbm_h_uses_prototypes='undef'
-d_prctl='define'
-d_prctl_set_name='define'
-d_sin6_scope_id='%%IPV6%%'
-d_sockaddr_in6='%%IPV6%%'
-d_sockaddr_sa_len='undef'
-d_static_inline='define'
-d_timegm='define'
-dtrace=''
-extern_C='extern'
-hostosname=''
-i_assert='define'
-i_bfd='undef'
-i_gdbm_ndbm='undef'
-i_gdbmndbm='undef'
-i_mallocmalloc='undef'
-i_stdbool='define'
-i_syspoll='define'
-#incpth='/usr/lib/gcc/i486-slackware-linux/4.8.2/include /usr/local/include /usr/lib/gcc/i486-slackware-linux/4.8.2/include-fixed /usr/include'
-ld_can_script='define'
-#libsfound=' /usr/lib/libgdbm.so /usr/lib/libdb.so /usr/lib/libdl.so /usr/lib/libm.so /usr/lib/libcrypt.so /usr/lib/libutil.so /usr/lib/libc.so'
-nv_overflows_integers_at='256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0'
-perl_static_inline='static __inline__'
-sGMTIME_max='2147483647'
-sGMTIME_min='-2147483648'
-sLOCALTIME_max='2147483647'
-sLOCALTIME_min='-2147483648'
-#sitelib_stem='/usr/local/lib/perl5/site_perl'
-st_ino_sign='1'
-st_ino_size='8'
-#strings='/usr/include/string.h'
-sysroot=''
-targetdir=''
-targetenv=''
-targethost=''
-targetmkdir=''
-targetport=''
-targetsh='/bin/sh'
-#timeincl='/usr/include/sys/time.h /usr/include/time.h '
-usedevel='undef'
-usedtrace='undef'
-usekernprocpathname='undef'
-usensgetexecutablepath='undef'
-useversionedarchname='undef'
-vaproto='define'
-libdb_needs_pthread='N'
-
-# These symbols changed from perl 5.10.0 to 5.20.0 and probably will
-# change again for new versions, so they're included here for
-# future reference
-api_version='22'
-# Always set this to the base version, not the patched one!
-api_versionstring='5.22.0'
-dynamic_ext='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/DosGlob File/Glob Filter/Util/Call GDBM_File Hash/Util Hash/Util/FieldHash I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc Opcode POSIX PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Tie/Hash/NamedCapture Time/HiRes Time/Piece Unicode/Collate XS/APItest XS/Typemap arybase attributes mro re threads threads/shared'
-installarchlib='/usr/lib/perl5/5.22'
-installprivlib='/usr/lib/perl5/5.22'
-installsitearch='/usr/lib/perl5/5.22'
-installsitelib='/usr/lib/perl5/5.22'
-nonxs_ext='Archive/Tar Attribute/Handlers AutoLoader B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Config/Perl/V Devel/SelfStubber Digest Dumpvalue Env Errno Exporter ExtUtils/CBuilder ExtUtils/Command ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS File/Fetch File/Find File/Path File/Temp FileCache Filter/Simple Getopt/Long HTTP/Tiny I18N/Collate I18N/LangTags IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP Locale/Codes Locale/Maketext Locale/Maketext/Simple Math/BigInt Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NEXT Net/Ping Params/Check Parse/CPAN/Meta Perl/OSType PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage Safe Search/Dict SelfLoader Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Memoize Tie/RefHash Time/Local XSLoader autodie autouse base bignum constant encoding/warnings experimental if lib libnet parent perlfaq podlators Unicode/Normalize version'
-privlib='/usr/lib/perl5/5.22'
-privlibexp='/usr/lib/perl5/5.22'
-archlib='/usr/lib/perl5/5.22'
-archlibexp='/usr/lib/perl5/5.22'
-version='5.22.0'
-version_patchlevel_string='version 22 subversion 0'
-PERL_VERSION=22
-PERL_API_VERSION=22
-PERL_SUBVERSION=0
-patchlevel='22'
-ccdlflags='-fPIC -Wl,-rpath,/usr/lib/perl5/5.22/CORE'
-subversion='0'
-extensions='B Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call GDBM_File Hash/Util I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex Time/HiRes Time/Piece XS/APItest XS/Typemap attrs re threads threads/shared Hash/Util/FieldHash Compress/Zlib Errno IO_Compress_Base IO_Compress_Zlib Unicode/Normalize'
-known_extensions='B Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call GDBM_File Hash/Util I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc NDBM_File ODBM_File Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex Time/HiRes Time/Piece Unicode/Normalize Win32 Win32API/File Win32CORE XS/APItest XS/Typemap attrs re threads threads/shared Hash/Util/FieldHash'
-
-# Make perl use these tools instead of the target binaries during build
-hostgenerate='%%HOSTGENERATE%%'
-hostperl='%%HOSTMINIPERL%%'
diff --git a/lang/perl/files/config.sh-powerpc.in b/lang/perl/files/config.sh-powerpc.in
deleted file mode 100644 (file)
index cbeb218..0000000
+++ /dev/null
@@ -1,1226 +0,0 @@
-#!/bin/sh
-#
-# This file was produced by running the Configure script. It holds all the
-# definitions figured out by Configure. Should you modify one of these values,
-# do not forget to propagate your changes by running "Configure -der". You may
-# instead choose to run each of the .SH files by yourself, or "Configure -S".
-#
-
-# Package name      : perl5
-# Source directory  : .
-# Configuration time: Fri Jul 20 04:26:18 MDT 2007
-# Configured by     : root
-# Target system     : linux maia 2.6.22 #1 wed jul 11 12:24:09 cest 2007 ppc unknown unknown gnulinux 
-
-Author=''
-Date=''
-Header=''
-Id=''
-Locker=''
-Log=''
-RCSfile=''
-Revision=''
-Source=''
-State=''
-_a='.a'
-_exe=''
-_o='.o'
-afs='false'
-afsroot='/afs'
-alignbytes='8'
-ansi2knr=''
-aphostname='/bin/hostname'
-api_revision='5'
-api_subversion='0'
-
-
-ar='ar'
-archname64=''
-archname='powerpc-linux-uclibc'
-archobjs=''
-asctime_r_proto='0'
-awk='awk'
-baserev='5.0'
-bash=''
-bin='/usr/bin'
-binexp='/usr/bin'
-bison='bison'
-byacc='byacc'
-byteorder='4321'
-c=''
-castflags='0'
-cat='cat'
-cc='%%CC%%'
-cccdlflags='-fPIC'
-ccflags='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 %%CFLAGS%%'
-ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
-ccname='gcc'
-ccsymbols='__gnu_linux__=1 __linux=1 __linux__=1 __unix=1 __unix__=1 system=linux system=posix system=unix'
-ccversion=''
-cf_by='root'
-cf_email='root@maia.dev.null'
-cf_time='Fri Jul 20 04:26:18 MDT 2007'
-chgrp=''
-chmod='chmod'
-chown=''
-clocktype='clock_t'
-comm='comm'
-compress=''
-contains='grep'
-cp='cp'
-cpio=''
-cpp='cpp'
-cpp_stuff='42'
-cppccsymbols='linux=1 unix=1'
-cppflags='%%CFLAGS%%'
-cpplast='-'
-cppminus='-'
-cpprun='%%CPP%%'
-cppstdin='%%CPP%%'
-cppsymbols='_BIG_ENDIAN=1 __BIG_ENDIAN__=1 __ELF__=1 _FILE_OFFSET_BITS=64 __GLIBC__=2 __GLIBC_MINOR__=2 __GNUC__=3 __GNUC_MINOR__=4 __GNU_LIBRARY__=6 _LARGEFILE_SOURCE=1 _POSIX_C_SOURCE=199506L _POSIX_SOURCE=1 __STDC__=1 __USE_BSD=1 __USE_FILE_OFFSET64=1 __USE_LARGEFILE=1 __USE_MISC=1 __USE_POSIX=1 __USE_POSIX199309=1 __USE_POSIX199506=1 __USE_POSIX2=1 __USE_SVID=1 __linux=1 __linux__=1 __unix=1 __unix__=1'
-crypt_r_proto='0'
-cryptlib=''
-csh='csh'
-ctermid_r_proto='0'
-ctime_r_proto='0'
-d_Gconvert='sprintf((b),"%.*g",(n),(x))'
-d_PRIEUldbl='define'
-d_PRIFUldbl='define'
-d_PRIGUldbl='define'
-d_PRIXU64='define'
-d_PRId64='define'
-d_PRIeldbl='define'
-d_PRIfldbl='define'
-d_PRIgldbl='define'
-d_PRIi64='define'
-d_PRIo64='define'
-d_PRIu64='define'
-d_PRIx64='define'
-d_SCNfldbl='define'
-d__fwalk='undef'
-d_access='define'
-d_accessx='undef'
-d_acosh='define'
-d_aintl='undef'
-d_alarm='define'
-d_archlib='undef'
-d_asctime_r='undef'
-d_asinh='define'
-d_atanh='define'
-d_atolf='undef'
-d_atoll='define'
-d_attribute_format='define'
-d_attribute_malloc='define'
-d_attribute_nonnull='define'
-d_attribute_noreturn='define'
-d_attribute_pure='define'
-d_attribute_unused='define'
-d_attribute_warn_unused_result='define'
-d_backtrace='define'
-d_bcmp='define'
-d_bcopy='define'
-d_bsd='undef'
-d_bsdgetpgrp='undef'
-d_bsdsetpgrp='undef'
-d_builtin_choose_expr='define'
-d_builtin_expect='undef'
-d_bzero='define'
-d_c99_variadic_macros='define'
-d_casti32='undef'
-d_castneg='define'
-d_cbrt='define'
-d_charvspr='undef'
-d_chown='define'
-d_chroot='define'
-d_chsize='undef'
-d_class='undef'
-d_clearenv='define'
-d_closedir='define'
-d_cmsghdr_s='define'
-d_const='define'
-d_copysign='define'
-d_copysignl='undef'
-d_cplusplus='undef'
-d_crypt='define'
-d_crypt_r='undef'
-d_csh='undef'
-d_ctermid='define'
-d_ctermid_r='undef'
-d_ctime_r='undef'
-d_cuserid='define'
-d_dbl_dig='define'
-d_dbminitproto='undef'
-d_difftime='define'
-d_dir_dd_fd='undef'
-d_dirfd='define'
-d_dirnamlen='undef'
-d_dladdr='define'
-d_dlerror='define'
-d_dlopen='define'
-d_dlsymun='undef'
-d_dosuid='undef'
-d_drand48_r='undef'
-d_drand48proto='define'
-d_dup2='define'
-d_eaccess='undef'
-d_endgrent='define'
-d_endgrent_r='undef'
-d_endhent='define'
-d_endhostent_r='undef'
-d_endnent='define'
-d_endnetent_r='undef'
-d_endpent='define'
-d_endprotoent_r='undef'
-d_endpwent='define'
-d_endpwent_r='undef'
-d_endsent='define'
-d_endservent_r='undef'
-d_eofnblk='define'
-d_erf='define'
-d_erfc='define'
-d_eunice='undef'
-d_exp2='define'
-d_expm1='define'
-d_faststdio='undef'
-d_fchdir='define'
-d_fchmod='define'
-d_fchown='define'
-d_fcntl='define'
-d_fcntl_can_lock='define'
-d_fd_macros='define'
-d_fd_set='define'
-d_fdim='define'
-d_fds_bits='undef'
-d_fegetround='undef'
-d_fgetpos='define'
-d_finite='define'
-d_finitel='undef'
-d_flexfnam='define'
-d_flock='define'
-d_flockproto='define'
-d_fma='define'
-d_fmax='define'
-d_fmin='define'
-d_fork='define'
-d_fp_class='undef'
-d_fp_classify='undef'
-d_fp_classl='undef'
-d_fpathconf='define'
-d_fpclass='undef'
-d_fpclassify='define'
-d_fpclassl='undef'
-d_fpgetround='undef'
-d_fpos64_t='undef'
-d_frexpl='undef'
-d_fs_data_s='undef'
-d_fseeko='define'
-d_fsetpos='define'
-d_fstatfs='define'
-d_fstatvfs='define'
-d_fsync='define'
-d_ftello='define'
-d_ftime='undef'
-d_futimes='undef'
-d_getcwd='define'
-d_getespwnam='undef'
-d_getfsstat='undef'
-d_getgrent='define'
-d_getgrent_r='undef'
-d_getgrgid_r='undef'
-d_getgrnam_r='undef'
-d_getgrps='define'
-d_gethbyaddr='define'
-d_gethbyname='define'
-d_gethent='define'
-d_gethname='define'
-d_gethostbyaddr_r='undef'
-d_gethostbyname_r='undef'
-d_gethostent_r='undef'
-d_gethostprotos='define'
-d_getitimer='define'
-d_getlogin='define'
-d_getlogin_r='undef'
-d_getmnt='undef'
-d_getmntent='define'
-d_getnbyaddr='define'
-d_getnbyname='define'
-d_getnent='define'
-d_getnetbyaddr_r='undef'
-d_getnetbyname_r='undef'
-d_getnetent_r='undef'
-d_getnetprotos='define'
-d_getpagsz='define'
-d_getpbyname='define'
-d_getpbynumber='define'
-d_getpent='define'
-d_getpgid='define'
-d_getpgrp2='undef'
-d_getpgrp='define'
-d_getppid='define'
-d_getprior='define'
-d_getprotobyname_r='undef'
-d_getprotobynumber_r='undef'
-d_getprotoent_r='undef'
-d_getprotoprotos='define'
-d_getprpwnam='undef'
-d_getpwent='define'
-d_getpwent_r='undef'
-d_getpwnam_r='undef'
-d_getpwuid_r='undef'
-d_getsbyname='define'
-d_getsbyport='define'
-d_getsent='define'
-d_getservbyname_r='undef'
-d_getservbyport_r='undef'
-d_getservent_r='undef'
-d_getservprotos='define'
-d_getspnam='define'
-d_getspnam_r='undef'
-d_gettimeod='define'
-d_gmtime_r='undef'
-d_gnulibc='undef'
-d_grpasswd='define'
-d_hasmntopt='define'
-d_htonl='define'
-d_hypot='define'
-d_ilogb='define'
-d_ilogbl='undef'
-d_inc_version_list='undef'
-d_index='undef'
-d_inetaton='define'
-d_int64_t='define'
-d_isascii='define'
-d_isfinite='define'
-d_isfinitel='undef'
-d_isinf='define'
-d_isinfl='define'
-d_isless='undef'
-d_isnan='define'
-d_isnanl='undef'
-d_isnormal='define'
-d_j0='undef'
-d_j0l='undef'
-d_killpg='define'
-d_lc_monetary_2008='define'
-d_lchown='define'
-d_ldbl_dig='define'
-d_ldexpl='define'
-d_lgamma='define'
-d_lgamma_r='define'
-d_libm_lib_version='define'
-d_link='define'
-d_llrint='define'
-d_llrintl='define'
-d_llround='define'
-d_llroundl='define'
-d_localtime_r='undef'
-d_localtime_r_needs_tzset='undef'
-d_locconv='define'
-d_lockf='define'
-d_log1p='define'
-d_log2='define'
-d_logb='define'
-d_longdbl='define'
-d_longlong='define'
-d_lrint='define'
-d_lrintl='define'
-d_lround='define'
-d_lroundl='define'
-d_lseekproto='define'
-d_lstat='define'
-d_madvise='define'
-d_malloc_good_size='undef'
-d_malloc_size='undef'
-d_mblen='define'
-d_mbstowcs='define'
-d_mbtowc='define'
-d_memchr='define'
-d_memcmp='define'
-d_memcpy='define'
-d_memmove='define'
-d_memset='define'
-d_mkdir='define'
-d_mkdtemp='define'
-d_mkfifo='define'
-d_mkstemp='define'
-d_mkstemps='undef'
-d_mktime='define'
-d_mmap='define'
-d_modfl='undef'
-d_modfl_pow32_bug='undef'
-d_modflproto='undef'
-d_mprotect='define'
-d_msg='define'
-d_msg_ctrunc='define'
-d_msg_dontroute='define'
-d_msg_oob='define'
-d_msg_peek='define'
-d_msg_proxy='define'
-d_msgctl='define'
-d_msgget='define'
-d_msghdr_s='define'
-d_msgrcv='define'
-d_msgsnd='define'
-d_msync='define'
-d_munmap='define'
-d_mymalloc='undef'
-d_nan='define'
-d_nearbyint='define'
-d_nextafter='define'
-d_nexttoward='undef'
-d_nice='define'
-d_nl_langinfo='define'
-d_nv_preserves_uv='define'
-d_nv_zero_is_allbits_zero='define'
-d_off64_t='undef'
-d_old_pthread_create_joinable='undef'
-d_oldpthreads='undef'
-d_oldsock='undef'
-d_open3='define'
-d_pathconf='define'
-d_pause='define'
-d_perl_otherlibdirs='undef'
-d_phostname='undef'
-d_pipe='define'
-d_poll='define'
-d_portable='define'
-d_printf_format_null='define'
-d_procselfexe='define'
-d_pseudofork='undef'
-d_pthread_atfork='undef'
-d_pthread_attr_setscope='define'
-d_pthread_yield='undef'
-d_ptrdiff_t='define'
-d_pwage='undef'
-d_pwchange='undef'
-d_pwclass='undef'
-d_pwcomment='undef'
-d_pwexpire='undef'
-d_pwgecos='define'
-d_pwpasswd='define'
-d_pwquota='undef'
-d_qgcvt='undef'
-d_quad='define'
-d_random_r='undef'
-d_re_comp='undef'
-d_readdir64_r='undef'
-d_readdir='define'
-d_readdir_r='undef'
-d_readlink='define'
-d_readv='define'
-d_recvmsg='define'
-d_regcmp='undef'
-d_regcomp='define'
-d_remainder='define'
-d_remquo='define'
-d_rename='define'
-d_rewinddir='define'
-d_rint='define'
-d_rmdir='define'
-d_round='define'
-d_safebcpy='undef'
-d_safemcpy='undef'
-d_sanemcmp='define'
-d_sbrkproto='define'
-d_scalbn='define'
-d_scalbnl='undef'
-d_sched_yield='define'
-d_scm_rights='define'
-d_seekdir='define'
-d_select='define'
-d_sem='define'
-d_semctl='define'
-d_semctl_semid_ds='define'
-d_semctl_semun='define'
-d_semget='define'
-d_semop='define'
-d_sendmsg='define'
-d_setegid='define'
-d_seteuid='define'
-d_setgrent='define'
-d_setgrent_r='undef'
-d_setgrps='define'
-d_sethent='define'
-d_sethostent_r='undef'
-d_setitimer='define'
-d_setlinebuf='define'
-d_setlocale='define'
-d_setlocale_r='undef'
-d_setnent='define'
-d_setnetent_r='undef'
-d_setpent='define'
-d_setpgid='define'
-d_setpgrp2='undef'
-d_setpgrp='define'
-d_setprior='define'
-d_setproctitle='undef'
-d_setprotoent_r='undef'
-d_setpwent='define'
-d_setpwent_r='undef'
-d_setregid='define'
-d_setresgid='define'
-d_setresuid='define'
-d_setreuid='define'
-d_setrgid='undef'
-d_setruid='undef'
-d_setsent='define'
-d_setservent_r='undef'
-d_setsid='define'
-d_setvbuf='define'
-d_sfio='undef'
-d_shm='define'
-d_shmat='define'
-d_shmatprototype='define'
-d_shmctl='define'
-d_shmdt='define'
-d_shmget='define'
-d_sigaction='define'
-d_signbit='undef'
-d_sigprocmask='define'
-d_sigsetjmp='define'
-d_sitearch='define'
-d_snprintf='define'
-d_sockatmark='undef'
-d_sockatmarkproto='undef'
-d_socket='define'
-d_socklen_t='define'
-d_sockpair='define'
-d_socks5_init='undef'
-d_sprintf_returns_strlen='define'
-d_sqrtl='undef'
-d_srand48_r='undef'
-d_srandom_r='undef'
-d_sresgproto='undef'
-d_sresuproto='undef'
-d_stat='define'
-d_statblks='define'
-d_statfs_f_flags='undef'
-d_statfs_s='define'
-d_statvfs='define'
-d_stdio_cnt_lval='undef'
-d_stdio_ptr_lval='undef'
-d_stdio_ptr_lval_nochange_cnt='undef'
-d_stdio_ptr_lval_sets_cnt='undef'
-d_stdio_stream_array='undef'
-d_stdiobase='undef'
-d_stdstdio='undef'
-d_strchr='define'
-d_strcoll='define'
-d_strctcpy='define'
-d_strerrm='strerror(e)'
-d_strerror='define'
-d_strerror_r='undef'
-d_strftime='define'
-d_strlcat='define'
-d_strlcpy='define'
-d_strtod='define'
-d_strtol='define'
-d_strtold='define'
-d_strtoll='define'
-d_strtoq='define'
-d_strtoul='define'
-d_strtoull='define'
-d_strtouq='define'
-d_strxfrm='define'
-d_suidsafe='undef'
-d_symlink='define'
-d_syscall='define'
-d_syscallproto='define'
-d_sysconf='define'
-d_sysernlst=''
-d_syserrlst='undef'
-d_system='define'
-d_tcgetpgrp='define'
-d_tcsetpgrp='define'
-d_telldir='define'
-d_telldirproto='define'
-d_tgamma='define'
-d_time='define'
-d_times='define'
-d_tm_tm_gmtoff='define'
-d_tm_tm_zone='define'
-d_tmpnam_r='undef'
-d_trunc='define'
-d_truncate='define'
-d_truncl='define'
-d_ttyname_r='undef'
-d_tzname='define'
-d_u32align='undef'
-d_ualarm='define'
-d_umask='define'
-d_uname='define'
-d_union_semun='undef'
-d_unordered='undef'
-d_unsetenv='define'
-d_usleep='define'
-d_usleepproto='define'
-d_ustat='define'
-d_vendorarch='undef'
-d_vendorbin='undef'
-d_vendorlib='undef'
-d_vendorscript='undef'
-d_vfork='undef'
-d_void_closedir='undef'
-d_voidsig='define'
-d_voidtty=''
-d_volatile='define'
-d_vprintf='define'
-d_vsnprintf='define'
-d_wait4='define'
-d_waitpid='define'
-d_wcscmp='define'
-d_wcstombs='define'
-d_wcsxfrm='define'
-d_wctomb='define'
-d_writev='define'
-d_xenix='undef'
-date='date'
-db_hashtype='u_int32_t'
-db_prefixtype='size_t'
-db_version_major=''
-db_version_minor=''
-db_version_patch=''
-defvoidused='15'
-direntrytype='struct dirent'
-dlext='so'
-dlsrc='dl_dlopen.xs'
-doublekind='4'
-doublesize='8'
-drand01='drand48()'
-drand48_r_proto='0'
-
-eagain='EAGAIN'
-ebcdic='undef'
-echo='echo'
-egrep='egrep'
-emacs=''
-endgrent_r_proto='0'
-endhostent_r_proto='0'
-endnetent_r_proto='0'
-endprotoent_r_proto='0'
-endpwent_r_proto='0'
-endservent_r_proto='0'
-eunicefix=':'
-exe_ext=''
-expr='expr'
-extras=''
-fflushNULL='define'
-fflushall='undef'
-find=''
-firstmakefile='makefile'
-flex=''
-fpossize='24'
-fpostype='fpos_t'
-freetype='void'
-from=':'
-full_ar='%%AR%%'
-full_csh='csh'
-full_sed='sed'
-gccansipedantic=''
-gccosandvers=''
-gccversion='3.4.3'
-getgrent_r_proto='0'
-getgrgid_r_proto='0'
-getgrnam_r_proto='0'
-gethostbyaddr_r_proto='0'
-gethostbyname_r_proto='0'
-gethostent_r_proto='0'
-getlogin_r_proto='0'
-getnetbyaddr_r_proto='0'
-getnetbyname_r_proto='0'
-getnetent_r_proto='0'
-getprotobyname_r_proto='0'
-getprotobynumber_r_proto='0'
-getprotoent_r_proto='0'
-getpwent_r_proto='0'
-getpwnam_r_proto='0'
-getpwuid_r_proto='0'
-getservbyname_r_proto='0'
-getservbyport_r_proto='0'
-getservent_r_proto='0'
-getspnam_r_proto='0'
-gidformat='"lu"'
-gidsign='1'
-gidsize='4'
-gidtype='gid_t'
-glibpth='/usr/shlib  /lib /usr/lib /usr/lib/386 /lib/386 /usr/ccs/lib /usr/ucblib /usr/local/lib '
-gmake='gmake'
-gmtime_r_proto='0'
-gnulibc_version=''
-grep='grep'
-groupcat='cat /etc/group'
-groupstype='gid_t'
-gzip='gzip'
-h_fcntl='false'
-h_sysfile='true'
-hint='recommended'
-hostcat='cat /etc/hosts'
-html1dir=' '
-html1direxp=''
-html3dir=' '
-html3direxp=''
-i16size='2'
-i16type='signed short'
-i32size='4'
-i32type='signed long'
-i64size='8'
-i64type='signed long long'
-i8size='1'
-i8type='signed char'
-i_arpainet='define'
-i_bsdioctl=''
-i_crypt='define'
-i_db='define'
-i_dbm='undef'
-i_dirent='define'
-i_dld='undef'
-i_dlfcn='define'
-i_execinfo='define'
-i_fcntl='undef'
-i_fenv='undef'
-i_float='define'
-i_fp='undef'
-i_fp_class='undef'
-i_gdbm='define'
-i_grp='define'
-i_ieeefp='undef'
-i_inttypes='define'
-i_langinfo='define'
-i_libutil='undef'
-i_limits='define'
-i_locale='define'
-i_machcthr='undef'
-i_malloc='define'
-i_math='define'
-i_memory='undef'
-i_mntent='define'
-i_ndbm='undef'
-i_netdb='define'
-i_neterrno='undef'
-i_netinettcp='define'
-i_niin='define'
-i_poll='define'
-i_prot='undef'
-i_pthread='define'
-i_pwd='define'
-i_quadmath='define'
-i_rpcsvcdbm='undef'
-i_sfio='undef'
-i_sgtty='undef'
-i_shadow='define'
-i_socks='undef'
-i_stdarg='define'
-i_stddef='define'
-i_stdint='define'
-i_stdlib='define'
-i_string='define'
-i_sunmath='undef'
-i_sysaccess='undef'
-i_sysdir='define'
-i_sysfile='define'
-i_sysfilio='undef'
-i_sysin='undef'
-i_sysioctl='define'
-i_syslog='define'
-i_sysmman='define'
-i_sysmode='undef'
-i_sysmount='define'
-i_sysndir='undef'
-i_sysparam='define'
-i_sysresrc='define'
-i_syssecrt='undef'
-i_sysselct='define'
-i_syssockio='undef'
-i_sysstat='define'
-i_sysstatfs='define'
-i_sysstatvfs='define'
-i_systime='define'
-i_systimek='undef'
-i_systimes='define'
-i_systypes='define'
-i_sysuio='define'
-i_sysun='define'
-i_sysutsname='define'
-i_sysvfs='define'
-i_syswait='define'
-i_termio='undef'
-i_termios='define'
-i_time='define'
-i_unistd='define'
-i_ustat='define'
-i_utime='define'
-i_values='define'
-i_varargs='undef'
-i_varhdr='stdarg.h'
-i_vfork='undef'
-ignore_versioned_solibs='y'
-inc_version_list=' '
-inc_version_list_init='0'
-incpath=''
-inews=''
-
-installbin='/usr/bin'
-initialinstalllocation='/usr/bin'
-installhtml1dir=''
-installhtml3dir=''
-installman1dir=''
-installman3dir=''
-installprefix='/usr'
-installprefixexp='/usr'
-
-installscript='/usr/bin'
-
-installsitebin='/usr/bin'
-installsitehtml1dir=''
-installsitehtml3dir=''
-
-installsiteman1dir=''
-installsiteman3dir=''
-installsitescript='/usr/bin'
-installstyle='lib/perl5'
-installusrbinperl='define'
-installvendorarch=''
-installvendorbin=''
-installvendorhtml1dir=''
-installvendorhtml3dir=''
-installvendorlib=''
-installvendorman1dir=''
-installvendorman3dir=''
-installvendorscript=''
-intsize='4'
-issymlink='test -h'
-ivdformat='"ld"'
-ivsize='4'
-ivtype='long'
-ksh=''
-ld='%%LD%%'
-lddlflags='-shared %%LDFLAGS%%'
-ldflags='%%EXTRA_PERLLIBDIRS%%'
-ldflags_uselargefiles=''
-ldlibpthname='LD_LIBRARY_PATH'
-less='less'
-lib_ext='.a'
-libc=''
-libperl='libperl.so'
-libpth='%%LIBDIRS%%'
-libs='-lgdbm -ldb -ldl -lm -lcrypt -lutil -lc'
-libsdirs='%%LIBDIRS%%'
-libsfiles=' libdl.so libm.so libcrypt.so libutil.so libc.so'
-#libsfound=' /usr/lib/libdl.so /usr/lib/libm.so /usr/lib/libcrypt.so /usr/lib/libutil.so /usr/lib/libc.so'
-libspath='%%LIBDIRS%%'
-libswanted='sfio socket inet nm ndbm gdbm dbm db malloc dl dld ld sun m crypt sec util c cposix posix ucb BSD'
-libswanted_uselargefiles=''
-line=''
-lint=''
-lkflags=''
-ln='ln'
-lns='/bin/ln -s'
-localtime_r_proto='0'
-locincpth=' '
-loclibpth=' '
-longdblkind='0'
-longdblsize='8'
-longlongsize='8'
-longsize='4'
-lp=''
-lpr=''
-ls='ls'
-lseeksize='8'
-lseektype='off_t'
-mail=''
-mailx=''
-make='make'
-make_set_make='#'
-mallocobj=''
-mallocsrc=''
-malloctype='void *'
-man1dir=' '
-man1direxp=''
-man1ext='0'
-man3dir=' '
-man3direxp=''
-man3ext='0'
-mips_type=''
-mistrustnm=''
-mkdir='mkdir'
-mmaptype='void *'
-modetype='mode_t'
-more='more'
-multiarch='undef'
-mv=''
-myarchname='powerpc-linux-uclibc'
-mydomain='.dev.null'
-myhostname='maia'
-myuname='linux maia 2.6.22 #1 wed jul 11 12:24:09 cest 2007 ppc unknown unknown gnulinux '
-n='-n'
-need_va_copy='define'
-netdb_hlen_type='size_t'
-netdb_host_type='const void *'
-netdb_name_type='const char *'
-netdb_net_type='in_addr_t'
-nm='nm'
-nm_opt=''
-nm_so_opt='--dynamic'
-
-nroff='nroff'
-nvEUformat='"E"'
-nvFUformat='"F"'
-nvGUformat='"G"'
-nv_preserves_uv_bits='32'
-nveformat='"e"'
-nvfformat='"f"'
-nvgformat='"g"'
-nvsize='8'
-nvtype='double'
-o_nonblock='O_NONBLOCK'
-obj_ext='.o'
-old_pthread_create_joinable=''
-optimize='-O2'
-orderlib='false'
-osname='linux'
-osvers='2.6.22'
-otherlibdirs=' '
-package='perl5'
-pager='/usr/bin/less'
-passcat='cat /etc/passwd'
-
-path_sep=':'
-perl5=''
-perl=''
-perl_patchlevel=''
-perladmin='root@maia.dev.null'
-perllibs='-ldl -lm -lcrypt -lutil -lc %%EXTRA_PERLLIBS%%'
-perlpath='/usr/bin/perl'
-pg='pg'
-phostname='hostname'
-pidtype='pid_t'
-plibpth=''
-pmake=''
-pr=''
-prefix='/usr'
-prefixexp='/usr'
-
-
-procselfexe='"/proc/self/exe"'
-prototype='define'
-ptrsize='4'
-quadkind='3'
-quadtype='long long'
-randbits='48'
-randfunc='drand48'
-random_r_proto='0'
-randseedtype='long'
-ranlib=':'
-rd_nodata='-1'
-readdir64_r_proto='0'
-readdir_r_proto='0'
-revision='5'
-rm='rm'
-rm_try='/bin/rm -f try try a.out .out try.[cho] try..o core core.try* try.core*'
-rmail=''
-run=''
-runnm='false'
-sPRIEUldbl='"E"'
-sPRIFUldbl='"F"'
-sPRIGUldbl='"G"'
-sPRIXU64='"LX"'
-sPRId64='"Ld"'
-sPRIeldbl='"e"'
-sPRIfldbl='"f"'
-sPRIgldbl='"g"'
-sPRIi64='"Li"'
-sPRIo64='"Lo"'
-sPRIu64='"Lu"'
-sPRIx64='"Lx"'
-sSCNfldbl='"f"'
-sched_yield='sched_yield()'
-scriptdir='/usr/bin'
-scriptdirexp='/usr/bin'
-sed='sed'
-seedfunc='srand48'
-selectminbits='32'
-selecttype='fd_set *'
-sendmail=''
-setgrent_r_proto='0'
-sethostent_r_proto='0'
-setlocale_r_proto='0'
-setnetent_r_proto='0'
-setprotoent_r_proto='0'
-setpwent_r_proto='0'
-setservent_r_proto='0'
-sh='/bin/sh'
-shar=''
-sharpbang='#!'
-shmattype='void *'
-shortsize='2'
-shrpenv=''
-shsharp='true'
-sig_count='64'
-sig_name='ZERO HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS RTMIN NUM33 NUM34 NUM35 NUM36 NUM37 NUM38 NUM39 NUM40 NUM41 NUM42 NUM43 NUM44 NUM45 NUM46 NUM47 NUM48 NUM49 NUM50 NUM51 NUM52 NUM53 NUM54 NUM55 NUM56 NUM57 NUM58 NUM59 NUM60 NUM61 NUM62 RTMAX IOT CLD POLL UNUSED '
-sig_name_init='"ZERO", "HUP", "INT", "QUIT", "ILL", "TRAP", "ABRT", "BUS", "FPE", "KILL", "USR1", "SEGV", "USR2", "PIPE", "ALRM", "TERM", "STKFLT", "CHLD", "CONT", "STOP", "TSTP", "TTIN", "TTOU", "URG", "XCPU", "XFSZ", "VTALRM", "PROF", "WINCH", "IO", "PWR", "SYS", "RTMIN", "NUM33", "NUM34", "NUM35", "NUM36", "NUM37", "NUM38", "NUM39", "NUM40", "NUM41", "NUM42", "NUM43", "NUM44", "NUM45", "NUM46", "NUM47", "NUM48", "NUM49", "NUM50", "NUM51", "NUM52", "NUM53", "NUM54", "NUM55", "NUM56", "NUM57", "NUM58", "NUM59", "NUM60", "NUM61", "NUM62", "RTMAX", "IOT", "CLD", "POLL", "UNUSED", 0'
-sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 6 17 29 31 '
-sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 6, 17, 29, 31, 0'
-sig_size='68'
-signal_t='void'
-sitearch=''
-sitearchexp=''
-sitebin='/usr/bin'
-sitebinexp='/usr/bin'
-sitehtml1dir=''
-sitehtml1direxp=''
-sitehtml3dir=''
-sitehtml3direxp=''
-sitelib=''
-#sitelib_stem='/usr/lib/perl5/site_perl'
-sitelibexp=''
-siteman1dir=''
-siteman1direxp=''
-siteman3dir=''
-siteman3direxp=''
-siteprefix='/usr'
-siteprefixexp='/usr'
-sitescript='/usr/bin'
-sitescriptexp='/usr/bin'
-sizesize='4'
-sizetype='size_t'
-sleep=''
-smail=''
-so='so'
-sockethdr=''
-socketlib=''
-socksizetype='socklen_t'
-sort='sort'
-spackage='Perl5'
-spitshell='cat'
-srand48_r_proto='0'
-srandom_r_proto='0'
-src='.'
-ssizetype='ssize_t'
-startperl='#!/usr/bin/perl'
-startsh='#!/bin/sh'
-static_ext=' '
-stdchar='char'
-stdio_base='((fp)->_base)'
-stdio_bufsiz='((fp)->_cnt + (fp)->_ptr - (fp)->_base)'
-stdio_cnt='((fp)->_cnt)'
-stdio_filbuf=''
-stdio_ptr='((fp)->_ptr)'
-stdio_stream_array=''
-strerror_r_proto='0'
-#strings='/usr/include/string.h'
-submit=''
-sysman='/usr/share/man/man1'
-tail=''
-tar=''
-targetarch='powerpc-linux-uclibc'
-tbl=''
-tee=''
-test='test'
-#timeincl='/usr/include/sys/time.h /usr/include/time.h '
-timetype='time_t'
-tmpnam_r_proto='0'
-to=':'
-touch='touch'
-tr='tr'
-trnl='\n'
-troff=''
-ttyname_r_proto='0'
-u16size='2'
-u16type='unsigned short'
-u32size='4'
-u32type='unsigned long'
-u64size='8'
-u64type='unsigned long long'
-u8size='1'
-u8type='unsigned char'
-uidformat='"lu"'
-uidsign='1'
-uidsize='4'
-uidtype='uid_t'
-uname='uname'
-uniq='uniq'
-uquadtype='unsigned long long'
-use5005threads='undef'
-use64bitall='undef'
-use64bitint='undef'
-usecbacktrace='undef'
-usecrosscompile='define'
-usedl='define'
-usefaststdio='undef'
-useithreads='undef'
-uselargefiles='define'
-uselongdouble='undef'
-usemallocwrap='define'
-usemorebits='undef'
-usemultiplicity='undef'
-usemymalloc='n'
-usenm='true'
-useopcode='true'
-useperlio='define'
-useposix='true'
-usequadmath='undef'
-usereentrant='undef'
-userelocatableinc='undef'
-usesfio='false'
-useshrplib='true'
-usesitecustomize='undef'
-usesocks='undef'
-usethreads='undef'
-usevendorprefix='undef'
-usevfork='false'
-usrinc='%%INCDIRS%%'
-uuname=''
-uvXUformat='"lX"'
-uvoformat='"lo"'
-uvsize='4'
-uvtype='unsigned long'
-uvuformat='"lu"'
-uvxformat='"lx"'
-vendorarch=''
-vendorarchexp=''
-vendorbin=''
-vendorbinexp=''
-vendorhtml1dir=' '
-vendorhtml1direxp=''
-vendorhtml3dir=' '
-vendorhtml3direxp=''
-vendorlib=''
-vendorlib_stem=''
-vendorlibexp=''
-vendorman1dir=' '
-vendorman1direxp=''
-vendorman3dir=' '
-vendorman3direxp=''
-vendorprefix=''
-vendorprefixexp=''
-vendorscript=''
-vendorscriptexp=''
-
-
-versiononly='undef'
-vi=''
-voidflags='15'
-xlibpth='/usr/lib/386 /lib/386'
-yacc='yacc'
-yaccflags=''
-zcat=''
-zip='zip'
-# Configure command line arguments.
-config_arg0='./Configure'
-config_args='-der'
-config_argc=1
-config_arg1='-der'
-PERL_REVISION=5
-PERL_API_REVISION=5
-
-PERL_API_SUBVERSION=0
-PERL_PATCHLEVEL=
-PERL_CONFIG_SH=true
-# Fix problem with HiRes timer.
-d_nanosleep='define'
-d_clock_gettime='define'
-d_clock_getres='define'
-d_clock_nanosleep='define'
-d_clock='define'
-
-# New symbols for perl 5.20.0
-bin_ELF='define'
-charbits='8'
-charsize='1'
-d_asctime64='undef'
-d_attribute_deprecated='define'
-d_ctime64='undef'
-d_difftime64='undef'
-d_gdbm_ndbm_h_uses_prototypes='undef'
-d_gdbmndbm_h_uses_prototypes='undef'
-d_getaddrinfo='define'
-d_getnameinfo='define'
-d_gmtime64='undef'
-d_inetntop='define'
-d_inetpton='define'
-d_ip_mreq='define'
-d_ip_mreq_source='define'
-d_ipv6_mreq='%%IPV6%%'
-d_ipv6_mreq_source='undef'
-d_isblank='define'
-d_libname_unique='undef'
-d_localtime64='undef'
-d_mktime64='undef'
-d_ndbm='undef'
-d_ndbm_h_uses_prototypes='undef'
-d_prctl='define'
-d_prctl_set_name='define'
-d_sin6_scope_id='%%IPV6%%'
-d_sockaddr_in6='%%IPV6%%'
-d_sockaddr_sa_len='undef'
-d_static_inline='define'
-d_timegm='define'
-dtrace=''
-extern_C='extern'
-hostosname=''
-i_assert='define'
-i_bfd='undef'
-i_gdbm_ndbm='undef'
-i_gdbmndbm='undef'
-i_mallocmalloc='undef'
-i_stdbool='define'
-i_syspoll='define'
-#incpth='/usr/lib/gcc/i486-slackware-linux/4.8.2/include /usr/local/include /usr/lib/gcc/i486-slackware-linux/4.8.2/include-fixed /usr/include'
-ld_can_script='define'
-#libsfound=' /usr/lib/libgdbm.so /usr/lib/libdb.so /usr/lib/libdl.so /usr/lib/libm.so /usr/lib/libcrypt.so /usr/lib/libutil.so /usr/lib/libc.so'
-nv_overflows_integers_at='256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0'
-perl_static_inline='static __inline__'
-sGMTIME_max='2147483647'
-sGMTIME_min='-2147483648'
-sLOCALTIME_max='2147483647'
-sLOCALTIME_min='-2147483648'
-#sitelib_stem='/usr/local/lib/perl5/site_perl'
-st_ino_sign='1'
-st_ino_size='8'
-#strings='/usr/include/string.h'
-sysroot=''
-targetdir=''
-targetenv=''
-targethost=''
-targetmkdir=''
-targetport=''
-targetsh='/bin/sh'
-#timeincl='/usr/include/sys/time.h /usr/include/time.h '
-usedevel='undef'
-usedtrace='undef'
-usekernprocpathname='undef'
-usensgetexecutablepath='undef'
-useversionedarchname='undef'
-vaproto='define'
-libdb_needs_pthread='N'
-
-# These symbols changed from perl 5.10.0 to 5.20.0 and probably will
-# change again for new versions, so they're included here for
-# future reference
-api_version='22'
-# Always set this to the base version, not the patched one!
-api_versionstring='5.22.0'
-dynamic_ext='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/DosGlob File/Glob Filter/Util/Call GDBM_File Hash/Util Hash/Util/FieldHash I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc Opcode POSIX PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Tie/Hash/NamedCapture Time/HiRes Time/Piece Unicode/Collate XS/APItest XS/Typemap arybase attributes mro re threads threads/shared'
-installarchlib='/usr/lib/perl5/5.22'
-installprivlib='/usr/lib/perl5/5.22'
-installsitearch='/usr/lib/perl5/5.22'
-installsitelib='/usr/lib/perl5/5.22'
-nonxs_ext='Archive/Tar Attribute/Handlers AutoLoader B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Config/Perl/V Devel/SelfStubber Digest Dumpvalue Env Errno Exporter ExtUtils/CBuilder ExtUtils/Command ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS File/Fetch File/Find File/Path File/Temp FileCache Filter/Simple Getopt/Long HTTP/Tiny I18N/Collate I18N/LangTags IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP Locale/Codes Locale/Maketext Locale/Maketext/Simple Math/BigInt Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NEXT Net/Ping Params/Check Parse/CPAN/Meta Perl/OSType PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage Safe Search/Dict SelfLoader Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Memoize Tie/RefHash Time/Local XSLoader autodie autouse base bignum constant encoding/warnings experimental if lib libnet parent perlfaq podlators Unicode/Normalize version'
-privlib='/usr/lib/perl5/5.22'
-privlibexp='/usr/lib/perl5/5.22'
-archlib='/usr/lib/perl5/5.22'
-archlibexp='/usr/lib/perl5/5.22'
-version='5.22.0'
-version_patchlevel_string='version 22 subversion 0'
-PERL_VERSION=22
-PERL_API_VERSION=22
-PERL_SUBVERSION=0
-patchlevel='22'
-ccdlflags='-fPIC -Wl,-rpath,/usr/lib/perl5/5.22/CORE'
-subversion='0'
-extensions='B Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call GDBM_File Hash/Util I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex Time/HiRes Time/Piece XS/APItest XS/Typemap attrs re threads threads/shared Hash/Util/FieldHash Compress/Zlib Errno IO_Compress_Base IO_Compress_Zlib Unicode/Normalize'
-known_extensions='B Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call GDBM_File Hash/Util I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc NDBM_File ODBM_File Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex Time/HiRes Time/Piece Unicode/Normalize Win32 Win32API/File Win32CORE XS/APItest XS/Typemap attrs re threads threads/shared Hash/Util/FieldHash'
-
-# Make perl use these tools instead of the target binaries during build
-hostgenerate='%%HOSTGENERATE%%'
-hostperl='%%HOSTMINIPERL%%'
diff --git a/lang/perl/files/config.sh-x86_64-mt.in b/lang/perl/files/config.sh-x86_64-mt.in
deleted file mode 100644 (file)
index 9ea9b0e..0000000
+++ /dev/null
@@ -1,1213 +0,0 @@
-#!/bin/sh
-#
-# This file was produced by running the Configure script. It holds all the
-# definitions figured out by Configure. Should you modify one of these values,
-# do not forget to propagate your changes by running "Configure -der". You may
-# instead choose to run each of the .SH files by yourself, or "Configure -S".
-#
-
-# Package name      : perl5
-# Source directory  : .
-# Configuration time: Sat Apr 19 15:51:11 MDT 2008
-# Configured by     : root
-# Target system     : linux maia 2.6.25 #2 sat apr 19 09:46:49 cest 2008 i686 unknown unknown gnulinux 
-
-Author=''
-Date=''
-Header=''
-Id=''
-Locker=''
-Log=''
-RCSfile=''
-Revision=''
-Source=''
-State=''
-_a='.a'
-_exe=''
-_o='.o'
-afs='false'
-afsroot='/afs'
-alignbytes='8'
-ansi2knr=''
-aphostname='/bin/hostname'
-api_revision='5'
-api_subversion='0'
-ar='ar'
-archname64=''
-archname='x86_64-linux-uclibc'
-archobjs=''
-asctime_r_proto='REENTRANT_PROTO_B_SB'
-awk='awk'
-baserev='5.0'
-bash=''
-bin='/usr/bin'
-binexp='/usr/bin'
-bison='bison'
-byacc='byacc'
-byteorder='12345678'
-c=''
-castflags='0'
-cat='cat'
-cc='%%CC%%'
-cccdlflags='-fPIC'
-ccflags='-D_REENTRANT -D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 %%CFLAGS%%'
-ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
-ccname='gcc'
-ccsymbols=''
-ccversion=''
-cf_by='root'
-cf_email='root@maia.dev.null'
-cf_time='Sat Apr 19 15:51:11 MDT 2008'
-chgrp=''
-chmod='chmod'
-chown=''
-clocktype='clock_t'
-comm='comm'
-compress=''
-contains='grep'
-cp='cp'
-cpio=''
-cpp='cpp'
-cpp_stuff='42'
-cppccsymbols=''
-cppflags='-D_REENTRANT -D_GNU_SOURCE %%CFLAGS%%'
-cpplast='-'
-cppminus='-'
-cpprun='%%CPP%%'
-cppstdin='%%CPP%%'
-cppsymbols='__ELF__=1 _LP64=1 __FLT_EVAL_METHOD__=0 __FXSR__=1 __GCC_ATOMIC_LLONG_LOCK_FREE=2 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8=1 __INT64_MAX__=9223372036854775807L __INT64_TYPE__=long\ int __INTMAX_MAX__=9223372036854775807L __INTMAX_TYPE__=long\ int __INTPTR_MAX__=9223372036854775807L __INTPTR_TYPE__=long\ int __INT_FAST16_MAX__=9223372036854775807L __INT_FAST16_TYPE__=long\ int __INT_FAST32_MAX__=9223372036854775807L __INT_FAST32_TYPE__=long\ int __INT_FAST64_MAX__=9223372036854775807L __INT_FAST64_TYPE__=long\ int __INT_LEAST64_MAX__=9223372036854775807L __INT_LEAST64_TYPE__=long\ int __LONG_MAX__=9223372036854775807L __LP64__=1 __MMX__=1 __PTRDIFF_MAX__=9223372036854775807L __PTRDIFF_TYPE__=long\ int __SIZEOF_INT128__=16 __SIZEOF_LONG_DOUBLE__=16 __SIZEOF_LONG__=8 __SIZEOF_POINTER__=8 __SIZEOF_PTRDIFF_T__=8 __SIZEOF_SIZE_T__=8 __SIZE_MAX__=18446744073709551615UL __SIZE_TYPE__=long\ unsigned\ int __SSE2_MATH__=1 __SSE2__=1 __SSE_MATH__=1 __SSE__=1 __UINT64_MAX__=18446744073709551615UL __UINT64_TYPE__=long\ unsigned\ int __UINTMAX_MAX__=18446744073709551615UL __UINTMAX_TYPE__=long\ unsigned\ int __UINTPTR_MAX__=18446744073709551615UL __UINTPTR_TYPE__=long\ unsigned\ int __UINT_FAST16_MAX__=18446744073709551615UL __UINT_FAST16_TYPE__=long\ unsigned\ int __UINT_FAST32_MAX__=18446744073709551615UL __UINT_FAST32_TYPE__=long\ unsigned\ int __UINT_FAST64_MAX__=18446744073709551615UL __UINT_FAST64_TYPE__=long\ unsigned\ int __UINT_LEAST64_MAX__=18446744073709551615UL __UINT_LEAST64_TYPE__=long\ unsigned\ int __WCHAR_MAX__=2147483647 __WCHAR_MIN__=(-2147483647\ -\ 1) __WCHAR_TYPE__=int __amd64=1 __amd64__=1 __code_model_small__=1 __k8=1 __k8__=1 __x86_64=1 __x86_64__=1 _FILE_OFFSET_BITS=64 __GLIBC__=2 __GLIBC_MINOR__=2 __GNUC__=3 __GNUC_MINOR__=4 __GNU_LIBRARY__=6 _LARGEFILE_SOURCE=1 _POSIX_C_SOURCE=199506L _POSIX_SOURCE=1 __STDC__=1 __USE_BSD=1 __USE_FILE_OFFSET64=1 __USE_LARGEFILE=1 __USE_MISC=1 __USE_POSIX=1 __USE_POSIX199309=1 __USE_POSIX199506=1 __USE_POSIX2=1 __USE_SVID=1 linux=1 __linux=1 __linux__=1 unix=1 __unix=1 __unix__=1'
-crypt_r_proto='%%CRYPT_R_PROTO%%'
-cryptlib=''
-csh='csh'
-ctermid_r_proto='0'
-ctime_r_proto='REENTRANT_PROTO_B_SB'
-d_Gconvert='sprintf((b),"%.*g",(n),(x))'
-d_PRIEUldbl='define'
-d_PRIFUldbl='define'
-d_PRIGUldbl='define'
-d_PRIXU64='define'
-d_PRId64='define'
-d_PRIeldbl='define'
-d_PRIfldbl='define'
-d_PRIgldbl='define'
-d_PRIi64='define'
-d_PRIo64='define'
-d_PRIu64='define'
-d_PRIx64='define'
-d_SCNfldbl='define'
-d__fwalk='undef'
-d_access='define'
-d_accessx='undef'
-d_acosh='define'
-d_aintl='undef'
-d_alarm='define'
-d_archlib='undef'
-d_asctime_r='define'
-d_asinh='define'
-d_atanh='define'
-d_atolf='undef'
-d_atoll='define'
-d_attribute_format='define'
-d_attribute_malloc='define'
-d_attribute_nonnull='define'
-d_attribute_noreturn='define'
-d_attribute_pure='define'
-d_attribute_unused='define'
-d_attribute_warn_unused_result='define'
-d_backtrace='define'
-d_bcmp='define'
-d_bcopy='define'
-d_bsd='undef'
-d_bsdgetpgrp='undef'
-d_bsdsetpgrp='undef'
-d_builtin_choose_expr='define'
-d_builtin_expect='undef'
-d_bzero='define'
-d_c99_variadic_macros='define'
-d_casti32='undef'
-d_castneg='define'
-d_cbrt='define'
-d_charvspr='undef'
-d_chown='define'
-d_chroot='define'
-d_chsize='undef'
-d_class='undef'
-d_clearenv='define'
-d_closedir='define'
-d_cmsghdr_s='define'
-d_const='define'
-d_copysign='define'
-d_copysignl='undef'
-d_cplusplus='undef'
-d_crypt='%%CRYPT%%'
-d_crypt_r='%%CRYPT%%'
-d_csh='undef'
-d_ctermid='define'
-d_ctermid_r='undef'
-d_ctime_r='define'
-d_cuserid='define'
-d_dbl_dig='define'
-d_dbminitproto='undef'
-d_difftime='define'
-d_dir_dd_fd='undef'
-d_dirfd='define'
-d_dirnamlen='undef'
-d_dladdr='define'
-d_dlerror='define'
-d_dlopen='define'
-d_dlsymun='undef'
-d_dosuid='undef'
-d_drand48_r='define'
-d_drand48proto='define'
-d_dup2='define'
-d_eaccess='undef'
-d_endgrent='define'
-d_endgrent_r='undef'
-d_endhent='define'
-d_endhostent_r='undef'
-d_endnent='define'
-d_endnetent_r='undef'
-d_endpent='define'
-d_endprotoent_r='undef'
-d_endpwent='define'
-d_endpwent_r='undef'
-d_endsent='define'
-d_endservent_r='undef'
-d_eofnblk='define'
-d_erf='define'
-d_erfc='define'
-d_eunice='undef'
-d_exp2='define'
-d_expm1='define'
-d_faststdio='undef'
-d_fchdir='define'
-d_fchmod='define'
-d_fchown='define'
-d_fcntl='define'
-d_fcntl_can_lock='define'
-d_fd_macros='define'
-d_fd_set='define'
-d_fdim='define'
-d_fds_bits='define'
-d_fegetround='undef'
-d_fgetpos='define'
-d_finite='define'
-d_finitel='undef'
-d_flexfnam='define'
-d_flock='define'
-d_flockproto='define'
-d_fma='define'
-d_fmax='define'
-d_fmin='define'
-d_fork='define'
-d_fp_class='undef'
-d_fp_classify='undef'
-d_fp_classl='undef'
-d_fpathconf='define'
-d_fpclass='undef'
-d_fpclassify='define'
-d_fpclassl='undef'
-d_fpgetround='undef'
-d_fpos64_t='undef'
-d_frexpl='undef'
-d_fs_data_s='undef'
-d_fseeko='define'
-d_fsetpos='define'
-d_fstatfs='define'
-d_fstatvfs='define'
-d_fsync='define'
-d_ftello='define'
-d_ftime='undef'
-d_futimes='undef'
-d_getcwd='define'
-d_getespwnam='undef'
-d_getfsstat='undef'
-d_getgrent='define'
-d_getgrent_r='define'
-d_getgrgid_r='define'
-d_getgrnam_r='define'
-d_getgrps='define'
-d_gethbyaddr='define'
-d_gethbyname='define'
-d_gethent='define'
-d_gethname='define'
-d_gethostbyaddr_r='define'
-d_gethostbyname_r='define'
-d_gethostent_r='define'
-d_gethostprotos='define'
-d_getitimer='define'
-d_getlogin='define'
-d_getlogin_r='define'
-d_getmnt='undef'
-d_getmntent='define'
-d_getnbyaddr='define'
-d_getnbyname='define'
-d_getnent='define'
-d_getnetbyaddr_r='define'
-d_getnetbyname_r='define'
-d_getnetent_r='define'
-d_getnetprotos='define'
-d_getpagsz='define'
-d_getpbyname='define'
-d_getpbynumber='define'
-d_getpent='define'
-d_getpgid='define'
-d_getpgrp2='undef'
-d_getpgrp='define'
-d_getppid='define'
-d_getprior='define'
-d_getprotobyname_r='define'
-d_getprotobynumber_r='define'
-d_getprotoent_r='define'
-d_getprotoprotos='define'
-d_getprpwnam='undef'
-d_getpwent='define'
-d_getpwent_r='define'
-d_getpwnam_r='define'
-d_getpwuid_r='define'
-d_getsbyname='define'
-d_getsbyport='define'
-d_getsent='define'
-d_getservbyname_r='define'
-d_getservbyport_r='define'
-d_getservent_r='define'
-d_getservprotos='define'
-d_getspnam='define'
-d_getspnam_r='define'
-d_gettimeod='define'
-d_gmtime_r='define'
-d_gnulibc='undef'
-d_grpasswd='define'
-d_hasmntopt='define'
-d_htonl='define'
-d_hypot='define'
-d_ilogb='define'
-d_ilogbl='undef'
-d_inc_version_list='undef'
-d_index='undef'
-d_inetaton='define'
-d_int64_t='define'
-d_isascii='define'
-d_isfinite='define'
-d_isfinitel='undef'
-d_isinf='define'
-d_isinfl='define'
-d_isless='undef'
-d_isnan='define'
-d_isnanl='undef'
-d_isnormal='define'
-d_j0='undef'
-d_j0l='undef'
-d_killpg='define'
-d_lc_monetary_2008='define'
-d_lchown='define'
-d_ldbl_dig='define'
-d_ldexpl='define'
-d_lgamma='define'
-d_lgamma_r='define'
-d_libm_lib_version='define'
-d_link='define'
-d_llrint='define'
-d_llrintl='define'
-d_llround='define'
-d_llroundl='define'
-d_localtime_r='define'
-d_localtime_r_needs_tzset='define'
-d_locconv='define'
-d_lockf='define'
-d_log1p='define'
-d_log2='define'
-d_logb='define'
-d_longdbl='define'
-d_longlong='define'
-d_lrint='define'
-d_lrintl='define'
-d_lround='define'
-d_lroundl='define'
-d_lseekproto='define'
-d_lstat='define'
-d_madvise='define'
-d_malloc_good_size='undef'
-d_malloc_size='undef'
-d_mblen='define'
-d_mbstowcs='define'
-d_mbtowc='define'
-d_memchr='define'
-d_memcmp='define'
-d_memcpy='define'
-d_memmove='define'
-d_memset='define'
-d_mkdir='define'
-d_mkdtemp='define'
-d_mkfifo='define'
-d_mkstemp='define'
-d_mkstemps='undef'
-d_mktime='define'
-d_mmap='define'
-d_modfl='undef'
-d_modfl_pow32_bug='undef'
-d_modflproto='define'
-d_mprotect='define'
-d_msg='define'
-d_msg_ctrunc='define'
-d_msg_dontroute='define'
-d_msg_oob='define'
-d_msg_peek='define'
-d_msg_proxy='define'
-d_msgctl='define'
-d_msgget='define'
-d_msghdr_s='define'
-d_msgrcv='define'
-d_msgsnd='define'
-d_msync='define'
-d_munmap='define'
-d_mymalloc='undef'
-d_nan='define'
-d_nearbyint='define'
-d_nextafter='define'
-d_nexttoward='undef'
-d_nice='define'
-d_nl_langinfo='define'
-d_nv_preserves_uv='undef'
-d_nv_zero_is_allbits_zero='define'
-d_off64_t='define'
-d_old_pthread_create_joinable='undef'
-d_oldpthreads='undef'
-d_oldsock='undef'
-d_open3='define'
-d_pathconf='define'
-d_pause='define'
-d_perl_otherlibdirs='undef'
-d_phostname='undef'
-d_pipe='define'
-d_poll='define'
-d_portable='define'
-d_printf_format_null='undef'
-d_procselfexe='define'
-d_pseudofork='undef'
-d_pthread_atfork='define'
-d_pthread_attr_setscope='define'
-d_pthread_yield='define'
-d_ptrdiff_t='define'
-d_pwage='undef'
-d_pwchange='undef'
-d_pwclass='undef'
-d_pwcomment='undef'
-d_pwexpire='undef'
-d_pwgecos='define'
-d_pwpasswd='define'
-d_pwquota='undef'
-d_qgcvt='undef'
-d_quad='define'
-d_random_r='define'
-d_re_comp='undef'
-d_readdir64_r='define'
-d_readdir='define'
-d_readdir_r='define'
-d_readlink='define'
-d_readv='define'
-d_recvmsg='define'
-d_regcmp='undef'
-d_regcomp='define'
-d_remainder='define'
-d_remquo='define'
-d_rename='define'
-d_rewinddir='define'
-d_rint='define'
-d_rmdir='define'
-d_round='define'
-d_safebcpy='undef'
-d_safemcpy='undef'
-d_sanemcmp='define'
-d_sbrkproto='define'
-d_scalbn='define'
-d_scalbnl='undef'
-d_sched_yield='define'
-d_scm_rights='define'
-d_seekdir='define'
-d_select='define'
-d_sem='define'
-d_semctl='define'
-d_semctl_semid_ds='define'
-d_semctl_semun='define'
-d_semget='define'
-d_semop='define'
-d_sendmsg='define'
-d_setegid='define'
-d_seteuid='define'
-d_setgrent='define'
-d_setgrent_r='undef'
-d_setgrps='define'
-d_sethent='define'
-d_sethostent_r='undef'
-d_setitimer='define'
-d_setlinebuf='define'
-d_setlocale='define'
-d_setlocale_r='undef'
-d_setnent='define'
-d_setnetent_r='undef'
-d_setpent='define'
-d_setpgid='define'
-d_setpgrp2='undef'
-d_setpgrp='define'
-d_setprior='define'
-d_setproctitle='undef'
-d_setprotoent_r='undef'
-d_setpwent='define'
-d_setpwent_r='undef'
-d_setregid='define'
-d_setresgid='define'
-d_setresuid='define'
-d_setreuid='define'
-d_setrgid='undef'
-d_setruid='undef'
-d_setsent='define'
-d_setservent_r='undef'
-d_setsid='define'
-d_setvbuf='define'
-d_sfio='undef'
-d_shm='define'
-d_shmat='define'
-d_shmatprototype='define'
-d_shmctl='define'
-d_shmdt='define'
-d_shmget='define'
-d_sigaction='define'
-d_signbit='undef'
-d_sigprocmask='define'
-d_sigsetjmp='define'
-d_sitearch='define'
-d_snprintf='define'
-d_sockatmark='undef'
-d_sockatmarkproto='undef'
-d_socket='define'
-d_socklen_t='define'
-d_sockpair='define'
-d_socks5_init='undef'
-d_sprintf_returns_strlen='define'
-d_sqrtl='undef'
-d_srand48_r='define'
-d_srandom_r='define'
-d_sresgproto='define'
-d_sresuproto='define'
-d_stat='define'
-d_statblks='define'
-d_statfs_f_flags='undef'
-d_statfs_s='define'
-d_statvfs='define'
-d_stdio_cnt_lval='undef'
-d_stdio_ptr_lval='undef'
-d_stdio_ptr_lval_nochange_cnt='undef'
-d_stdio_ptr_lval_sets_cnt='undef'
-d_stdio_stream_array='undef'
-d_stdiobase='undef'
-d_stdstdio='undef'
-d_strchr='define'
-d_strcoll='define'
-d_strctcpy='define'
-d_strerrm='strerror(e)'
-d_strerror='define'
-d_strerror_r='define'
-d_strftime='define'
-d_strlcat='define'
-d_strlcpy='define'
-d_strtod='define'
-d_strtol='define'
-d_strtold='define'
-d_strtoll='define'
-d_strtoq='define'
-d_strtoul='define'
-d_strtoull='define'
-d_strtouq='define'
-d_strxfrm='define'
-d_suidsafe='undef'
-d_symlink='define'
-d_syscall='define'
-d_syscallproto='define'
-d_sysconf='define'
-d_sysernlst=''
-d_syserrlst='undef'
-d_system='define'
-d_tcgetpgrp='define'
-d_tcsetpgrp='define'
-d_telldir='define'
-d_telldirproto='define'
-d_tgamma='define'
-d_time='define'
-d_times='define'
-d_tm_tm_gmtoff='define'
-d_tm_tm_zone='define'
-d_tmpnam_r='define'
-d_trunc='define'
-d_truncate='define'
-d_truncl='define'
-d_ttyname_r='define'
-d_tzname='define'
-d_u32align='define'
-d_ualarm='define'
-d_umask='define'
-d_uname='define'
-d_union_semun='undef'
-d_unordered='undef'
-d_unsetenv='define'
-d_usleep='define'
-d_usleepproto='define'
-d_ustat='define'
-d_vendorarch='undef'
-d_vendorbin='undef'
-d_vendorlib='undef'
-d_vendorscript='undef'
-d_vfork='undef'
-d_void_closedir='undef'
-d_voidsig='define'
-d_voidtty=''
-d_volatile='define'
-d_vprintf='define'
-d_vsnprintf='define'
-d_wait4='define'
-d_waitpid='define'
-d_wcscmp='define'
-d_wcstombs='define'
-d_wcsxfrm='define'
-d_wctomb='define'
-d_writev='define'
-d_xenix='undef'
-date='date'
-db_hashtype='u_int32_t'
-db_prefixtype='size_t'
-db_version_major=''
-db_version_minor=''
-db_version_patch=''
-defvoidused='15'
-direntrytype='struct dirent'
-dlext='so'
-dlsrc='dl_dlopen.xs'
-doublekind='3'
-doublesize='8'
-drand01='drand48()'
-drand48_r_proto='REENTRANT_PROTO_I_ST'
-eagain='EAGAIN'
-ebcdic='undef'
-echo='echo'
-egrep='egrep'
-emacs=''
-endgrent_r_proto='0'
-endhostent_r_proto='0'
-endnetent_r_proto='0'
-endprotoent_r_proto='0'
-endpwent_r_proto='0'
-endservent_r_proto='0'
-eunicefix=':'
-exe_ext=''
-expr='expr'
-extras=''
-fflushNULL='define'
-fflushall='undef'
-find=''
-firstmakefile='makefile'
-flex=''
-fpossize='16'
-fpostype='fpos_t'
-freetype='void'
-from=':'
-full_ar='%%AR%%'
-full_csh='csh'
-full_sed='sed'
-gccansipedantic=''
-gccosandvers=''
-gccversion='3.4.3'
-getgrent_r_proto='REENTRANT_PROTO_I_SBWR'
-getgrgid_r_proto='REENTRANT_PROTO_I_TSBWR'
-getgrnam_r_proto='REENTRANT_PROTO_I_CSBWR'
-gethostbyaddr_r_proto='REENTRANT_PROTO_I_TsISBWRE'
-gethostbyname_r_proto='REENTRANT_PROTO_I_CSBWRE'
-gethostent_r_proto='REENTRANT_PROTO_I_SBWRE'
-getlogin_r_proto='REENTRANT_PROTO_I_BW'
-getnetbyaddr_r_proto='REENTRANT_PROTO_I_uISBWRE'
-getnetbyname_r_proto='REENTRANT_PROTO_I_CSBWRE'
-getnetent_r_proto='REENTRANT_PROTO_I_SBWRE'
-getprotobyname_r_proto='REENTRANT_PROTO_I_CSBWR'
-getprotobynumber_r_proto='REENTRANT_PROTO_I_ISBWR'
-getprotoent_r_proto='REENTRANT_PROTO_I_SBWR'
-getpwent_r_proto='REENTRANT_PROTO_I_SBWR'
-getpwnam_r_proto='REENTRANT_PROTO_I_CSBWR'
-getpwuid_r_proto='REENTRANT_PROTO_I_TSBWR'
-getservbyname_r_proto='REENTRANT_PROTO_I_CCSBWR'
-getservbyport_r_proto='REENTRANT_PROTO_I_ICSBWR'
-getservent_r_proto='REENTRANT_PROTO_I_SBWR'
-getspnam_r_proto='REENTRANT_PROTO_I_CSBWR'
-gidformat='"u"'
-gidsign='1'
-gidsize='4'
-gidtype='gid_t'
-glibpth='/usr/shlib  /lib /usr/lib /usr/lib/386 /lib/386 /usr/ccs/lib /usr/ucblib /usr/local/lib '
-gmake='gmake'
-gmtime_r_proto='REENTRANT_PROTO_S_TS'
-gnulibc_version=''
-grep='grep'
-groupcat='cat /etc/group'
-groupstype='gid_t'
-gzip='gzip'
-h_fcntl='false'
-h_sysfile='true'
-hint='recommended'
-hostcat='cat /etc/hosts'
-html1dir=' '
-html1direxp=''
-html3dir=' '
-html3direxp=''
-i16size='2'
-i16type='short'
-i32size='4'
-i32type='int'
-i64size='8'
-i64type='long'
-i8size='1'
-i8type='signed char'
-i_arpainet='define'
-i_bsdioctl=''
-i_crypt='%%CRYPT%%'
-i_db='define'
-i_dbm='undef'
-i_dirent='define'
-i_dld='undef'
-i_dlfcn='define'
-i_execinfo='define'
-i_fcntl='undef'
-i_fenv='undef'
-i_float='define'
-i_fp='undef'
-i_fp_class='undef'
-i_gdbm='define'
-i_grp='define'
-i_ieeefp='undef'
-i_inttypes='define'
-i_langinfo='define'
-i_libutil='undef'
-i_limits='define'
-i_locale='define'
-i_machcthr='undef'
-i_malloc='define'
-i_math='define'
-i_memory='undef'
-i_mntent='define'
-i_ndbm='undef'
-i_netdb='define'
-i_neterrno='undef'
-i_netinettcp='define'
-i_niin='define'
-i_poll='define'
-i_prot='undef'
-i_pthread='define'
-i_pwd='define'
-i_quadmath='define'
-i_rpcsvcdbm='undef'
-i_sfio='undef'
-i_sgtty='undef'
-i_shadow='define'
-i_socks='undef'
-i_stdarg='define'
-i_stddef='define'
-i_stdint='define'
-i_stdlib='define'
-i_string='define'
-i_sunmath='undef'
-i_sysaccess='undef'
-i_sysdir='define'
-i_sysfile='define'
-i_sysfilio='undef'
-i_sysin='undef'
-i_sysioctl='define'
-i_syslog='define'
-i_sysmman='define'
-i_sysmode='undef'
-i_sysmount='define'
-i_sysndir='undef'
-i_sysparam='define'
-i_sysresrc='define'
-i_syssecrt='undef'
-i_sysselct='define'
-i_syssockio='undef'
-i_sysstat='define'
-i_sysstatfs='define'
-i_sysstatvfs='define'
-i_systime='define'
-i_systimek='undef'
-i_systimes='define'
-i_systypes='define'
-i_sysuio='define'
-i_sysun='define'
-i_sysutsname='define'
-i_sysvfs='define'
-i_syswait='define'
-i_termio='undef'
-i_termios='define'
-i_time='define'
-i_unistd='define'
-i_ustat='define'
-i_utime='define'
-i_values='define'
-i_varargs='undef'
-i_varhdr='stdarg.h'
-i_vfork='undef'
-ignore_versioned_solibs='y'
-inc_version_list=' '
-inc_version_list_init='0'
-incpath=''
-inews=''
-installbin='/usr/bin'
-initialinstalllocation='/usr/bin'
-installhtml1dir=''
-installhtml3dir=''
-installman1dir=''
-installman3dir=''
-installprefix='/usr'
-installprefixexp='/usr'
-installscript='/usr/bin'
-installsitebin='/usr/bin'
-installsitehtml1dir=''
-installsitehtml3dir=''
-installsiteman1dir=''
-installsiteman3dir=''
-installsitescript='/usr/bin'
-installstyle='lib/perl5'
-installusrbinperl='define'
-installvendorarch=''
-installvendorbin=''
-installvendorhtml1dir=''
-installvendorhtml3dir=''
-installvendorlib=''
-installvendorman1dir=''
-installvendorman3dir=''
-installvendorscript=''
-intsize='4'
-issymlink='test -h'
-ivdformat='"ld"'
-ivsize='8'
-ivtype='long'
-ksh=''
-ld='%%LD%%'
-lddlflags='-shared %%LDFLAGS%%'
-ldflags='%%EXTRA_PERLLIBDIRS%%'
-ldflags_uselargefiles=''
-ldlibpthname='LD_LIBRARY_PATH'
-less='less'
-lib_ext='.a'
-libc=''
-libperl='libperl.so'
-libpth='%%LIBDIRS%%'
-libs='-lgdbm -ldb -ldl -lm -lcrypt -lutil -lpthread -lc'
-libsdirs='%%LIBDIRS%%'
-libsfiles=' libdl.so libm.so libcrypt.so libutil.so libpthread.so libc.so'
-#libsfound=' /usr/lib/libdl.so /usr/lib/libm.so /usr/lib/libcrypt.so /usr/lib/libutil.so /usr/lib/libc.so'
-libspath='%%LIBDIRS%%'
-libswanted='sfio socket inet nm ndbm gdbm dbm db malloc dl dld ld sun m crypt sec util pthread c cposix posix ucb BSD'
-libswanted_uselargefiles=''
-line=''
-lint=''
-lkflags=''
-ln='ln'
-lns='/bin/ln -s'
-localtime_r_proto='REENTRANT_PROTO_S_TS'
-locincpth=' '
-loclibpth=' '
-longdblkind='3'
-longdblsize='16'
-longlongsize='8'
-longsize='8'
-lp=''
-lpr=''
-ls='ls'
-lseeksize='8'
-lseektype='off_t'
-mail=''
-mailx=''
-make='make'
-make_set_make='#'
-mallocobj=''
-mallocsrc=''
-malloctype='void *'
-man1dir=' '
-man1direxp=''
-man1ext='0'
-man3dir=' '
-man3direxp=''
-man3ext='0'
-mips_type=''
-mistrustnm=''
-mkdir='mkdir'
-mmaptype='void *'
-modetype='mode_t'
-more='more'
-multiarch='undef'
-mv=''
-myarchname='x86_64-linux-uclibc'
-mydomain='.dev.null'
-myhostname='maia'
-myuname='linux maia 2.6.25 #2 sat apr 19 09:46:49 cest 2008 x86_64 unknown unknown gnulinux '
-n='-n'
-need_va_copy='define'
-netdb_hlen_type='size_t'
-netdb_host_type='char *'
-netdb_name_type='const char *'
-netdb_net_type='in_addr_t'
-nm='nm'
-nm_opt=''
-nm_so_opt='--dynamic'
-nroff='nroff'
-nvEUformat='"E"'
-nvFUformat='"F"'
-nvGUformat='"G"'
-nv_preserves_uv_bits='53'
-nveformat='"e"'
-nvfformat='"f"'
-nvgformat='"g"'
-nvsize='8'
-nvtype='double'
-o_nonblock='O_NONBLOCK'
-obj_ext='.o'
-old_pthread_create_joinable=''
-optimize='-O2'
-orderlib='false'
-osname='linux'
-osvers='2.6.25'
-otherlibdirs=' '
-package='perl5'
-pager='/usr/bin/less'
-passcat='cat /etc/passwd'
-path_sep=':'
-perl5=''
-perl=''
-perl_patchlevel=''
-perladmin='root@maia.dev.null'
-perllibs='-ldl -lm -lcrypt -lutil -lpthread -lc %%EXTRA_PERLLIBS%%'
-perlpath='/usr/bin/perl'
-pg='pg'
-phostname='hostname'
-pidtype='pid_t'
-plibpth=''
-pmake=''
-pr=''
-prefix='/usr'
-prefixexp='/usr'
-procselfexe='"/proc/self/exe"'
-prototype='define'
-ptrsize='8'
-quadkind='2'
-quadtype='long'
-randbits='48'
-randfunc='drand48'
-random_r_proto='REENTRANT_PROTO_I_St'
-randseedtype='long'
-ranlib=':'
-rd_nodata='-1'
-readdir64_r_proto='REENTRANT_PROTO_I_TSR'
-readdir_r_proto='REENTRANT_PROTO_I_TSR'
-revision='5'
-rm='rm'
-rm_try='/bin/rm -f try try a.out .out try.[cho] try..o core core.try* try.core*'
-rmail=''
-run=''
-runnm='false'
-sPRIEUldbl='"LE"'
-sPRIFUldbl='"LF"'
-sPRIGUldbl='"LG"'
-sPRIXU64='"lX"'
-sPRId64='"ld"'
-sPRIeldbl='"Le"'
-sPRIfldbl='"Lf"'
-sPRIgldbl='"Lg"'
-sPRIi64='"li"'
-sPRIo64='"lo"'
-sPRIu64='"lu"'
-sPRIx64='"lx"'
-sSCNfldbl='"Lf"'
-sched_yield='sched_yield()'
-scriptdir='/usr/bin'
-scriptdirexp='/usr/bin'
-sed='sed'
-seedfunc='srand48'
-selectminbits='64'
-selecttype='fd_set *'
-sendmail=''
-setgrent_r_proto='0'
-sethostent_r_proto='0'
-setlocale_r_proto='0'
-setnetent_r_proto='0'
-setprotoent_r_proto='0'
-setpwent_r_proto='0'
-setservent_r_proto='0'
-sh='/bin/sh'
-shar=''
-sharpbang='#!'
-shmattype='void *'
-shortsize='2'
-shrpenv=''
-shsharp='true'
-sig_count='64'
-sig_name='ZERO HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS RTMIN NUM33 NUM34 NUM35 NUM36 NUM37 NUM38 NUM39 NUM40 NUM41 NUM42 NUM43 NUM44 NUM45 NUM46 NUM47 NUM48 NUM49 NUM50 NUM51 NUM52 NUM53 NUM54 NUM55 NUM56 NUM57 NUM58 NUM59 NUM60 NUM61 NUM62 RTMAX IOT CLD POLL UNUSED '
-sig_name_init='"ZERO", "HUP", "INT", "QUIT", "ILL", "TRAP", "ABRT", "BUS", "FPE", "KILL", "USR1", "SEGV", "USR2", "PIPE", "ALRM", "TERM", "STKFLT", "CHLD", "CONT", "STOP", "TSTP", "TTIN", "TTOU", "URG", "XCPU", "XFSZ", "VTALRM", "PROF", "WINCH", "IO", "PWR", "SYS", "RTMIN", "NUM33", "NUM34", "NUM35", "NUM36", "NUM37", "NUM38", "NUM39", "NUM40", "NUM41", "NUM42", "NUM43", "NUM44", "NUM45", "NUM46", "NUM47", "NUM48", "NUM49", "NUM50", "NUM51", "NUM52", "NUM53", "NUM54", "NUM55", "NUM56", "NUM57", "NUM58", "NUM59", "NUM60", "NUM61", "NUM62", "RTMAX", "IOT", "CLD", "POLL", "UNUSED", 0'
-sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 6 17 29 31 '
-sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 6, 17, 29, 31, 0'
-sig_size='68'
-signal_t='void'
-sitearch=''
-sitearchexp=''
-sitebin='/usr/bin'
-sitebinexp='/usr/bin'
-sitehtml1dir=''
-sitehtml1direxp=''
-sitehtml3dir=''
-sitehtml3direxp=''
-sitelib=''
-#sitelib_stem='/usr/lib/perl5/site_perl'
-sitelibexp=''
-siteman1dir=''
-siteman1direxp=''
-siteman3dir=''
-siteman3direxp=''
-siteprefix='/usr'
-siteprefixexp='/usr'
-sitescript='/usr/bin'
-sitescriptexp='/usr/bin'
-sizesize='8'
-sizetype='size_t'
-sleep=''
-smail=''
-so='so'
-sockethdr=''
-socketlib=''
-socksizetype='socklen_t'
-sort='sort'
-spackage='Perl5'
-spitshell='cat'
-srand48_r_proto='REENTRANT_PROTO_I_LS'
-srandom_r_proto='REENTRANT_PROTO_I_TS'
-src='.'
-ssizetype='ssize_t'
-startperl='#!/usr/bin/perl'
-startsh='#!/bin/sh'
-static_ext=' '
-stdchar='char'
-stdio_base='((fp)->_base)'
-stdio_bufsiz='((fp)->_cnt + (fp)->_ptr - (fp)->_base)'
-stdio_cnt='((fp)->_cnt)'
-stdio_filbuf=''
-stdio_ptr='((fp)->_ptr)'
-stdio_stream_array=''
-strerror_r_proto='REENTRANT_PROTO_B_IBW'
-#strings='/usr/include/string.h'
-submit=''
-sysman='/usr/share/man/man1'
-tail=''
-tar=''
-targetarch='x86_64-linux-uclibc'
-tbl=''
-tee=''
-test='test'
-#timeincl='/usr/include/sys/time.h /usr/include/time.h '
-timetype='time_t'
-tmpnam_r_proto='REENTRANT_PROTO_B_B'
-to=':'
-touch='touch'
-tr='tr'
-trnl='\n'
-troff=''
-ttyname_r_proto='REENTRANT_PROTO_I_IBW'
-u16size='2'
-u16type='unsigned short'
-u32size='4'
-u32type='unsigned int'
-u64size='8'
-u64type='unsigned long'
-u8size='1'
-u8type='unsigned char'
-uidformat='"u"'
-uidsign='1'
-uidsize='4'
-uidtype='uid_t'
-uname='uname'
-uniq='uniq'
-uquadtype='unsigned long'
-use5005threads='undef'
-use64bitall='define'
-use64bitint='define'
-usecbacktrace='undef'
-usecrosscompile='define'
-usedl='define'
-usefaststdio='undef'
-useithreads='define'
-uselargefiles='define'
-uselongdouble='undef'
-usemallocwrap='define'
-usemorebits='undef'
-usemultiplicity='define'
-usemymalloc='n'
-usenm='true'
-useopcode='true'
-useperlio='define'
-useposix='true'
-usequadmath='undef'
-usereentrant='undef'
-userelocatableinc='undef'
-usesfio='false'
-useshrplib='true'
-usesitecustomize='undef'
-usesocks='undef'
-usethreads='define'
-usevendorprefix='undef'
-usevfork='false'
-usrinc='%%INCDIRS%%'
-uuname=''
-uvXUformat='"lX"'
-uvoformat='"lo"'
-uvsize='8'
-uvtype='unsigned long'
-uvuformat='"lu"'
-uvxformat='"lx"'
-vendorarch=''
-vendorarchexp=''
-vendorbin=''
-vendorbinexp=''
-vendorhtml1dir=' '
-vendorhtml1direxp=''
-vendorhtml3dir=' '
-vendorhtml3direxp=''
-vendorlib=''
-vendorlib_stem=''
-vendorlibexp=''
-vendorman1dir=' '
-vendorman1direxp=''
-vendorman3dir=' '
-vendorman3direxp=''
-vendorprefix=''
-vendorprefixexp=''
-vendorscript=''
-vendorscriptexp=''
-versiononly='undef'
-vi=''
-voidflags='15'
-xlibpth='/usr/lib/386 /lib/386'
-yacc='yacc'
-yaccflags=''
-zcat=''
-zip='zip'
-# Configure command line arguments.
-config_arg0='./Configure'
-config_args='-der -Dusethreads'
-config_argc=2
-config_arg1='-der'
-config_arg2='-Dusethreads'
-PERL_REVISION=5
-PERL_API_REVISION=5
-PERL_API_SUBVERSION=0
-PERL_PATCHLEVEL=
-PERL_CONFIG_SH=true
-# Fix problem with HiRes timer.
-d_nanosleep='define'
-d_clock_gettime='define'
-d_clock_getres='define'
-d_clock_nanosleep='define'
-d_clock='define'
-
-# New symbols for perl 5.20.0
-bin_ELF='define'
-charbits='8'
-charsize='1'
-d_asctime64='undef'
-d_attribute_deprecated='define'
-d_ctime64='undef'
-d_difftime64='undef'
-d_gdbm_ndbm_h_uses_prototypes='undef'
-d_gdbmndbm_h_uses_prototypes='undef'
-d_getaddrinfo='define'
-d_getnameinfo='define'
-d_gmtime64='undef'
-d_inetntop='define'
-d_inetpton='define'
-d_ip_mreq='define'
-d_ip_mreq_source='define'
-d_ipv6_mreq='%%IPV6%%'
-d_ipv6_mreq_source='undef'
-d_isblank='define'
-d_libname_unique='undef'
-d_localtime64='undef'
-d_mktime64='undef'
-d_ndbm='undef'
-d_ndbm_h_uses_prototypes='undef'
-d_prctl='define'
-d_prctl_set_name='define'
-d_sin6_scope_id='%%IPV6%%'
-d_sockaddr_in6='%%IPV6%%'
-d_sockaddr_sa_len='undef'
-d_static_inline='define'
-d_timegm='define'
-dtrace=''
-extern_C='extern'
-hostosname=''
-i_assert='define'
-i_bfd='undef'
-i_gdbm_ndbm='undef'
-i_gdbmndbm='undef'
-i_mallocmalloc='undef'
-i_stdbool='define'
-i_syspoll='define'
-#incpth='/usr/lib/gcc/i486-slackware-linux/4.8.2/include /usr/local/include /usr/lib/gcc/i486-slackware-linux/4.8.2/include-fixed /usr/include'
-ld_can_script='define'
-#libsfound=' /usr/lib/libgdbm.so /usr/lib/libdb.so /usr/lib/libdl.so /usr/lib/libm.so /usr/lib/libcrypt.so /usr/lib/libutil.so /usr/lib/libc.so'
-nv_overflows_integers_at='256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0'
-perl_static_inline='static __inline__'
-sGMTIME_max='67768036191676799'
-sGMTIME_min='-62167219200'
-sLOCALTIME_max='67768036191673199'
-sLOCALTIME_min='-62167222408'
-#sitelib_stem='/usr/local/lib/perl5/site_perl'
-st_ino_sign='1'
-st_ino_size='8'
-#strings='/usr/include/string.h'
-sysroot=''
-targetdir=''
-targetenv=''
-targethost=''
-targetmkdir=''
-targetport=''
-targetsh='/bin/sh'
-#timeincl='/usr/include/sys/time.h /usr/include/time.h '
-usedevel='undef'
-usedtrace='undef'
-usekernprocpathname='undef'
-usensgetexecutablepath='undef'
-useversionedarchname='undef'
-vaproto='define'
-libdb_needs_pthread='N'
-
-# These symbols changed from perl 5.10.0 to 5.20.0 and probably will
-# change again for new versions, so they're included here for
-# future reference
-api_version='22'
-# Always set this to the base version, not the patched one!
-api_versionstring='5.22.0'
-dynamic_ext='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/DosGlob File/Glob Filter/Util/Call GDBM_File Hash/Util Hash/Util/FieldHash I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc Opcode POSIX PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Tie/Hash/NamedCapture Time/HiRes Time/Piece Unicode/Collate XS/APItest XS/Typemap arybase attributes mro re threads threads/shared'
-installarchlib='/usr/lib/perl5/5.22'
-installprivlib='/usr/lib/perl5/5.22'
-installsitearch='/usr/lib/perl5/5.22'
-installsitelib='/usr/lib/perl5/5.22'
-nonxs_ext='Archive/Tar Attribute/Handlers AutoLoader B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Config/Perl/V Devel/SelfStubber Digest Dumpvalue Env Errno Exporter ExtUtils/CBuilder ExtUtils/Command ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS File/Fetch File/Find File/Path File/Temp FileCache Filter/Simple Getopt/Long HTTP/Tiny I18N/Collate I18N/LangTags IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP Locale/Codes Locale/Maketext Locale/Maketext/Simple Math/BigInt Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NEXT Net/Ping Params/Check Parse/CPAN/Meta Perl/OSType PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage Safe Search/Dict SelfLoader Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Memoize Tie/RefHash Time/Local XSLoader autodie autouse base bignum constant encoding/warnings experimental if lib libnet parent perlfaq podlators Unicode/Normalize version'
-privlib='/usr/lib/perl5/5.22'
-privlibexp='/usr/lib/perl5/5.22'
-archlib='/usr/lib/perl5/5.22'
-archlibexp='/usr/lib/perl5/5.22'
-version='5.22.0'
-version_patchlevel_string='version 22 subversion 0'
-PERL_VERSION=22
-PERL_API_VERSION=22
-PERL_SUBVERSION=0
-patchlevel='22'
-ccdlflags='-fPIC -Wl,-rpath,/usr/lib/perl5/5.22/CORE'
-subversion='0'
-extensions='B Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call GDBM_File Hash/Util I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex Time/HiRes Time/Piece XS/APItest XS/Typemap attrs re threads threads/shared Hash/Util/FieldHash Compress/Zlib Errno IO_Compress_Base IO_Compress_Zlib Unicode/Normalize'
-known_extensions='B Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call GDBM_File Hash/Util I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc NDBM_File ODBM_File Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex Time/HiRes Time/Piece Unicode/Normalize Win32 Win32API/File Win32CORE XS/APItest XS/Typemap attrs re threads threads/shared Hash/Util/FieldHash'
-
-# Make perl use these tools instead of the target binaries during build
-hostgenerate='%%HOSTGENERATE%%'
-hostperl='%%HOSTMINIPERL%%'
diff --git a/lang/perl/files/config.sh-x86_64.in b/lang/perl/files/config.sh-x86_64.in
deleted file mode 100644 (file)
index 7d12b27..0000000
+++ /dev/null
@@ -1,1212 +0,0 @@
-#!/bin/sh
-#
-# This file was produced by running the Configure script. It holds all the
-# definitions figured out by Configure. Should you modify one of these values,
-# do not forget to propagate your changes by running "Configure -der". You may
-# instead choose to run each of the .SH files by yourself, or "Configure -S".
-#
-
-# Package name      : perl5
-# Source directory  : .
-# Configuration time: Sat Apr 19 15:51:11 MDT 2008
-# Configured by     : root
-# Target system     : linux maia 2.6.25 #2 sat apr 19 09:46:49 cest 2008 i686 unknown unknown gnulinux 
-
-Author=''
-Date=''
-Header=''
-Id=''
-Locker=''
-Log=''
-RCSfile=''
-Revision=''
-Source=''
-State=''
-_a='.a'
-_exe=''
-_o='.o'
-afs='false'
-afsroot='/afs'
-alignbytes='8'
-ansi2knr=''
-aphostname='/bin/hostname'
-api_revision='5'
-api_subversion='0'
-ar='ar'
-archname64=''
-archname='x86_64-linux-uclibc'
-archobjs=''
-asctime_r_proto='0'
-awk='awk'
-baserev='5.0'
-bash=''
-bin='/usr/bin'
-binexp='/usr/bin'
-bison='bison'
-byacc='byacc'
-byteorder='12345678'
-c=''
-castflags='0'
-cat='cat'
-cc='%%CC%%'
-cccdlflags='-fPIC'
-ccflags='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 %%CFLAGS%%'
-ccflags_uselargefiles='-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
-ccname='gcc'
-ccsymbols=''
-ccversion=''
-cf_by='root'
-cf_email='root@maia.dev.null'
-cf_time='Sat Apr 19 15:51:11 MDT 2008'
-chgrp=''
-chmod='chmod'
-chown=''
-clocktype='clock_t'
-comm='comm'
-compress=''
-contains='grep'
-cp='cp'
-cpio=''
-cpp='cpp'
-cpp_stuff='42'
-cppccsymbols=''
-cppflags='%%CFLAGS%%'
-cpplast='-'
-cppminus='-'
-cpprun='%%CPP%%'
-cppstdin='%%CPP%%'
-cppsymbols='__ELF__=1 _LP64=1 __FLT_EVAL_METHOD__=0 __FXSR__=1 __GCC_ATOMIC_LLONG_LOCK_FREE=2 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8=1 __INT64_MAX__=9223372036854775807L __INT64_TYPE__=long\ int __INTMAX_MAX__=9223372036854775807L __INTMAX_TYPE__=long\ int __INTPTR_MAX__=9223372036854775807L __INTPTR_TYPE__=long\ int __INT_FAST16_MAX__=9223372036854775807L __INT_FAST16_TYPE__=long\ int __INT_FAST32_MAX__=9223372036854775807L __INT_FAST32_TYPE__=long\ int __INT_FAST64_MAX__=9223372036854775807L __INT_FAST64_TYPE__=long\ int __INT_LEAST64_MAX__=9223372036854775807L __INT_LEAST64_TYPE__=long\ int __LONG_MAX__=9223372036854775807L __LP64__=1 __MMX__=1 __PTRDIFF_MAX__=9223372036854775807L __PTRDIFF_TYPE__=long\ int __SIZEOF_INT128__=16 __SIZEOF_LONG_DOUBLE__=16 __SIZEOF_LONG__=8 __SIZEOF_POINTER__=8 __SIZEOF_PTRDIFF_T__=8 __SIZEOF_SIZE_T__=8 __SIZE_MAX__=18446744073709551615UL __SIZE_TYPE__=long\ unsigned\ int __SSE2_MATH__=1 __SSE2__=1 __SSE_MATH__=1 __SSE__=1 __UINT64_MAX__=18446744073709551615UL __UINT64_TYPE__=long\ unsigned\ int __UINTMAX_MAX__=18446744073709551615UL __UINTMAX_TYPE__=long\ unsigned\ int __UINTPTR_MAX__=18446744073709551615UL __UINTPTR_TYPE__=long\ unsigned\ int __UINT_FAST16_MAX__=18446744073709551615UL __UINT_FAST16_TYPE__=long\ unsigned\ int __UINT_FAST32_MAX__=18446744073709551615UL __UINT_FAST32_TYPE__=long\ unsigned\ int __UINT_FAST64_MAX__=18446744073709551615UL __UINT_FAST64_TYPE__=long\ unsigned\ int __UINT_LEAST64_MAX__=18446744073709551615UL __UINT_LEAST64_TYPE__=long\ unsigned\ int __WCHAR_MAX__=2147483647 __WCHAR_MIN__=(-2147483647\ -\ 1) __WCHAR_TYPE__=int __amd64=1 __amd64__=1 __code_model_small__=1 __k8=1 __k8__=1 __x86_64=1 __x86_64__=1 _FILE_OFFSET_BITS=64 __GLIBC__=2 __GLIBC_MINOR__=2 __GNUC__=3 __GNUC_MINOR__=4 __GNU_LIBRARY__=6 _LARGEFILE_SOURCE=1 _POSIX_C_SOURCE=199506L _POSIX_SOURCE=1 __STDC__=1 __USE_BSD=1 __USE_FILE_OFFSET64=1 __USE_LARGEFILE=1 __USE_MISC=1 __USE_POSIX=1 __USE_POSIX199309=1 __USE_POSIX199506=1 __USE_POSIX2=1 __USE_SVID=1 linux=1 __linux=1 __linux__=1 unix=1 __unix=1 __unix__=1'
-crypt_r_proto='0'
-cryptlib=''
-csh='csh'
-ctermid_r_proto='0'
-ctime_r_proto='0'
-d_Gconvert='sprintf((b),"%.*g",(n),(x))'
-d_PRIEUldbl='define'
-d_PRIFUldbl='define'
-d_PRIGUldbl='define'
-d_PRIXU64='define'
-d_PRId64='define'
-d_PRIeldbl='define'
-d_PRIfldbl='define'
-d_PRIgldbl='define'
-d_PRIi64='define'
-d_PRIo64='define'
-d_PRIu64='define'
-d_PRIx64='define'
-d_SCNfldbl='define'
-d__fwalk='undef'
-d_access='define'
-d_accessx='undef'
-d_acosh='define'
-d_aintl='undef'
-d_alarm='define'
-d_archlib='undef'
-d_asctime_r='undef'
-d_asinh='define'
-d_atanh='define'
-d_atolf='undef'
-d_atoll='define'
-d_attribute_format='define'
-d_attribute_malloc='define'
-d_attribute_nonnull='define'
-d_attribute_noreturn='define'
-d_attribute_pure='define'
-d_attribute_unused='define'
-d_attribute_warn_unused_result='define'
-d_backtrace='define'
-d_bcmp='define'
-d_bcopy='define'
-d_bsd='undef'
-d_bsdgetpgrp='undef'
-d_bsdsetpgrp='undef'
-d_builtin_choose_expr='define'
-d_builtin_expect='undef'
-d_bzero='define'
-d_c99_variadic_macros='define'
-d_casti32='undef'
-d_castneg='define'
-d_cbrt='define'
-d_charvspr='undef'
-d_chown='define'
-d_chroot='define'
-d_chsize='undef'
-d_class='undef'
-d_clearenv='define'
-d_closedir='define'
-d_cmsghdr_s='define'
-d_const='define'
-d_copysign='define'
-d_copysignl='undef'
-d_cplusplus='undef'
-d_crypt='define'
-d_crypt_r='undef'
-d_csh='undef'
-d_ctermid='define'
-d_ctermid_r='undef'
-d_ctime_r='undef'
-d_cuserid='define'
-d_dbl_dig='define'
-d_dbminitproto='undef'
-d_difftime='define'
-d_dir_dd_fd='undef'
-d_dirfd='define'
-d_dirnamlen='undef'
-d_dladdr='define'
-d_dlerror='define'
-d_dlopen='define'
-d_dlsymun='undef'
-d_dosuid='undef'
-d_drand48_r='undef'
-d_drand48proto='define'
-d_dup2='define'
-d_eaccess='undef'
-d_endgrent='define'
-d_endgrent_r='undef'
-d_endhent='define'
-d_endhostent_r='undef'
-d_endnent='define'
-d_endnetent_r='undef'
-d_endpent='define'
-d_endprotoent_r='undef'
-d_endpwent='define'
-d_endpwent_r='undef'
-d_endsent='define'
-d_endservent_r='undef'
-d_eofnblk='define'
-d_erf='define'
-d_erfc='define'
-d_eunice='undef'
-d_exp2='define'
-d_expm1='define'
-d_faststdio='undef'
-d_fchdir='define'
-d_fchmod='define'
-d_fchown='define'
-d_fcntl='define'
-d_fcntl_can_lock='define'
-d_fd_macros='define'
-d_fd_set='define'
-d_fdim='define'
-d_fds_bits='undef'
-d_fegetround='undef'
-d_fgetpos='define'
-d_finite='define'
-d_finitel='undef'
-d_flexfnam='define'
-d_flock='define'
-d_flockproto='define'
-d_fma='define'
-d_fmax='define'
-d_fmin='define'
-d_fork='define'
-d_fp_class='undef'
-d_fp_classify='undef'
-d_fp_classl='undef'
-d_fpathconf='define'
-d_fpclass='undef'
-d_fpclassify='define'
-d_fpclassl='undef'
-d_fpgetround='undef'
-d_fpos64_t='undef'
-d_frexpl='undef'
-d_fs_data_s='undef'
-d_fseeko='define'
-d_fsetpos='define'
-d_fstatfs='define'
-d_fstatvfs='define'
-d_fsync='define'
-d_ftello='define'
-d_ftime='undef'
-d_futimes='undef'
-d_getcwd='define'
-d_getespwnam='undef'
-d_getfsstat='undef'
-d_getgrent='define'
-d_getgrent_r='undef'
-d_getgrgid_r='undef'
-d_getgrnam_r='undef'
-d_getgrps='define'
-d_gethbyaddr='define'
-d_gethbyname='define'
-d_gethent='define'
-d_gethname='define'
-d_gethostbyaddr_r='undef'
-d_gethostbyname_r='undef'
-d_gethostent_r='undef'
-d_gethostprotos='define'
-d_getitimer='define'
-d_getlogin='define'
-d_getlogin_r='undef'
-d_getmnt='undef'
-d_getmntent='define'
-d_getnbyaddr='define'
-d_getnbyname='define'
-d_getnent='define'
-d_getnetbyaddr_r='undef'
-d_getnetbyname_r='undef'
-d_getnetent_r='undef'
-d_getnetprotos='define'
-d_getpagsz='define'
-d_getpbyname='define'
-d_getpbynumber='define'
-d_getpent='define'
-d_getpgid='define'
-d_getpgrp2='undef'
-d_getpgrp='define'
-d_getppid='define'
-d_getprior='define'
-d_getprotobyname_r='undef'
-d_getprotobynumber_r='undef'
-d_getprotoent_r='undef'
-d_getprotoprotos='define'
-d_getprpwnam='undef'
-d_getpwent='define'
-d_getpwent_r='undef'
-d_getpwnam_r='undef'
-d_getpwuid_r='undef'
-d_getsbyname='define'
-d_getsbyport='define'
-d_getsent='define'
-d_getservbyname_r='undef'
-d_getservbyport_r='undef'
-d_getservent_r='undef'
-d_getservprotos='define'
-d_getspnam='define'
-d_getspnam_r='undef'
-d_gettimeod='define'
-d_gmtime_r='undef'
-d_gnulibc='undef'
-d_grpasswd='define'
-d_hasmntopt='define'
-d_htonl='define'
-d_hypot='define'
-d_ilogb='define'
-d_ilogbl='undef'
-d_inc_version_list='undef'
-d_index='undef'
-d_inetaton='define'
-d_int64_t='define'
-d_isascii='define'
-d_isfinite='define'
-d_isfinitel='undef'
-d_isinf='define'
-d_isinfl='define'
-d_isless='undef'
-d_isnan='define'
-d_isnanl='undef'
-d_isnormal='define'
-d_j0='undef'
-d_j0l='undef'
-d_killpg='define'
-d_lc_monetary_2008='define'
-d_lchown='define'
-d_ldbl_dig='define'
-d_ldexpl='define'
-d_lgamma='define'
-d_lgamma_r='define'
-d_libm_lib_version='define'
-d_link='define'
-d_llrint='define'
-d_llrintl='define'
-d_llround='define'
-d_llroundl='define'
-d_localtime_r='undef'
-d_localtime_r_needs_tzset='undef'
-d_locconv='define'
-d_lockf='define'
-d_log1p='define'
-d_log2='define'
-d_logb='define'
-d_longdbl='define'
-d_longlong='define'
-d_lrint='define'
-d_lrintl='define'
-d_lround='define'
-d_lroundl='define'
-d_lseekproto='define'
-d_lstat='define'
-d_madvise='define'
-d_malloc_good_size='undef'
-d_malloc_size='undef'
-d_mblen='define'
-d_mbstowcs='define'
-d_mbtowc='define'
-d_memchr='define'
-d_memcmp='define'
-d_memcpy='define'
-d_memmove='define'
-d_memset='define'
-d_mkdir='define'
-d_mkdtemp='define'
-d_mkfifo='define'
-d_mkstemp='define'
-d_mkstemps='undef'
-d_mktime='define'
-d_mmap='define'
-d_modfl='undef'
-d_modfl_pow32_bug='undef'
-d_modflproto='define'
-d_mprotect='define'
-d_msg='define'
-d_msg_ctrunc='define'
-d_msg_dontroute='define'
-d_msg_oob='define'
-d_msg_peek='define'
-d_msg_proxy='define'
-d_msgctl='define'
-d_msgget='define'
-d_msghdr_s='define'
-d_msgrcv='define'
-d_msgsnd='define'
-d_msync='define'
-d_munmap='define'
-d_mymalloc='undef'
-d_nan='define'
-d_nearbyint='define'
-d_nextafter='define'
-d_nexttoward='undef'
-d_nice='define'
-d_nl_langinfo='define'
-d_nv_preserves_uv='undef'
-d_nv_zero_is_allbits_zero='define'
-d_off64_t='undef'
-d_old_pthread_create_joinable='undef'
-d_oldpthreads='undef'
-d_oldsock='undef'
-d_open3='define'
-d_pathconf='define'
-d_pause='define'
-d_perl_otherlibdirs='undef'
-d_phostname='undef'
-d_pipe='define'
-d_poll='define'
-d_portable='define'
-d_printf_format_null='undef'
-d_procselfexe='define'
-d_pseudofork='undef'
-d_pthread_atfork='undef'
-d_pthread_attr_setscope='define'
-d_pthread_yield='undef'
-d_ptrdiff_t='define'
-d_pwage='undef'
-d_pwchange='undef'
-d_pwclass='undef'
-d_pwcomment='undef'
-d_pwexpire='undef'
-d_pwgecos='define'
-d_pwpasswd='define'
-d_pwquota='undef'
-d_qgcvt='undef'
-d_quad='define'
-d_random_r='undef'
-d_re_comp='undef'
-d_readdir64_r='undef'
-d_readdir='define'
-d_readdir_r='undef'
-d_readlink='define'
-d_readv='define'
-d_recvmsg='define'
-d_regcmp='undef'
-d_regcomp='define'
-d_remainder='define'
-d_remquo='define'
-d_rename='define'
-d_rewinddir='define'
-d_rint='define'
-d_rmdir='define'
-d_round='define'
-d_safebcpy='undef'
-d_safemcpy='undef'
-d_sanemcmp='define'
-d_sbrkproto='define'
-d_scalbn='define'
-d_scalbnl='undef'
-d_sched_yield='define'
-d_scm_rights='define'
-d_seekdir='define'
-d_select='define'
-d_sem='define'
-d_semctl='define'
-d_semctl_semid_ds='define'
-d_semctl_semun='define'
-d_semget='define'
-d_semop='define'
-d_sendmsg='define'
-d_setegid='define'
-d_seteuid='define'
-d_setgrent='define'
-d_setgrent_r='undef'
-d_setgrps='define'
-d_sethent='define'
-d_sethostent_r='undef'
-d_setitimer='define'
-d_setlinebuf='define'
-d_setlocale='define'
-d_setlocale_r='undef'
-d_setnent='define'
-d_setnetent_r='undef'
-d_setpent='define'
-d_setpgid='define'
-d_setpgrp2='undef'
-d_setpgrp='define'
-d_setprior='define'
-d_setproctitle='undef'
-d_setprotoent_r='undef'
-d_setpwent='define'
-d_setpwent_r='undef'
-d_setregid='define'
-d_setresgid='define'
-d_setresuid='define'
-d_setreuid='define'
-d_setrgid='undef'
-d_setruid='undef'
-d_setsent='define'
-d_setservent_r='undef'
-d_setsid='define'
-d_setvbuf='define'
-d_sfio='undef'
-d_shm='define'
-d_shmat='define'
-d_shmatprototype='define'
-d_shmctl='define'
-d_shmdt='define'
-d_shmget='define'
-d_sigaction='define'
-d_signbit='undef'
-d_sigprocmask='define'
-d_sigsetjmp='define'
-d_sitearch='define'
-d_snprintf='define'
-d_sockatmark='undef'
-d_sockatmarkproto='undef'
-d_socket='define'
-d_socklen_t='define'
-d_sockpair='define'
-d_socks5_init='undef'
-d_sprintf_returns_strlen='define'
-d_sqrtl='undef'
-d_srand48_r='undef'
-d_srandom_r='undef'
-d_sresgproto='undef'
-d_sresuproto='undef'
-d_stat='define'
-d_statblks='define'
-d_statfs_f_flags='undef'
-d_statfs_s='define'
-d_statvfs='define'
-d_stdio_cnt_lval='undef'
-d_stdio_ptr_lval='undef'
-d_stdio_ptr_lval_nochange_cnt='undef'
-d_stdio_ptr_lval_sets_cnt='undef'
-d_stdio_stream_array='undef'
-d_stdiobase='undef'
-d_stdstdio='undef'
-d_strchr='define'
-d_strcoll='define'
-d_strctcpy='define'
-d_strerrm='strerror(e)'
-d_strerror='define'
-d_strerror_r='undef'
-d_strftime='define'
-d_strlcat='define'
-d_strlcpy='define'
-d_strtod='define'
-d_strtol='define'
-d_strtold='define'
-d_strtoll='define'
-d_strtoq='define'
-d_strtoul='define'
-d_strtoull='define'
-d_strtouq='define'
-d_strxfrm='define'
-d_suidsafe='undef'
-d_symlink='define'
-d_syscall='define'
-d_syscallproto='define'
-d_sysconf='define'
-d_sysernlst=''
-d_syserrlst='undef'
-d_system='define'
-d_tcgetpgrp='define'
-d_tcsetpgrp='define'
-d_telldir='define'
-d_telldirproto='define'
-d_tgamma='define'
-d_time='define'
-d_times='define'
-d_tm_tm_gmtoff='define'
-d_tm_tm_zone='define'
-d_tmpnam_r='undef'
-d_trunc='define'
-d_truncate='define'
-d_truncl='define'
-d_ttyname_r='undef'
-d_tzname='define'
-d_u32align='define'
-d_ualarm='define'
-d_umask='define'
-d_uname='define'
-d_union_semun='undef'
-d_unordered='undef'
-d_unsetenv='define'
-d_usleep='define'
-d_usleepproto='define'
-d_ustat='define'
-d_vendorarch='undef'
-d_vendorbin='undef'
-d_vendorlib='undef'
-d_vendorscript='undef'
-d_vfork='undef'
-d_void_closedir='undef'
-d_voidsig='define'
-d_voidtty=''
-d_volatile='define'
-d_vprintf='define'
-d_vsnprintf='define'
-d_wait4='define'
-d_waitpid='define'
-d_wcscmp='define'
-d_wcstombs='define'
-d_wcsxfrm='define'
-d_wctomb='define'
-d_writev='define'
-d_xenix='undef'
-date='date'
-db_hashtype='u_int32_t'
-db_prefixtype='size_t'
-db_version_major=''
-db_version_minor=''
-db_version_patch=''
-defvoidused='15'
-direntrytype='struct dirent'
-dlext='so'
-dlsrc='dl_dlopen.xs'
-doublekind='3'
-doublesize='8'
-drand01='drand48()'
-drand48_r_proto='0'
-eagain='EAGAIN'
-ebcdic='undef'
-echo='echo'
-egrep='egrep'
-emacs=''
-endgrent_r_proto='0'
-endhostent_r_proto='0'
-endnetent_r_proto='0'
-endprotoent_r_proto='0'
-endpwent_r_proto='0'
-endservent_r_proto='0'
-eunicefix=':'
-exe_ext=''
-expr='expr'
-extras=''
-fflushNULL='define'
-fflushall='undef'
-find=''
-firstmakefile='makefile'
-flex=''
-fpossize='16'
-fpostype='fpos_t'
-freetype='void'
-from=':'
-full_ar='%%AR%%'
-full_csh='csh'
-full_sed='sed'
-gccansipedantic=''
-gccosandvers=''
-gccversion='3.4.3'
-getgrent_r_proto='0'
-getgrgid_r_proto='0'
-getgrnam_r_proto='0'
-gethostbyaddr_r_proto='0'
-gethostbyname_r_proto='0'
-gethostent_r_proto='0'
-getlogin_r_proto='0'
-getnetbyaddr_r_proto='0'
-getnetbyname_r_proto='0'
-getnetent_r_proto='0'
-getprotobyname_r_proto='0'
-getprotobynumber_r_proto='0'
-getprotoent_r_proto='0'
-getpwent_r_proto='0'
-getpwnam_r_proto='0'
-getpwuid_r_proto='0'
-getservbyname_r_proto='0'
-getservbyport_r_proto='0'
-getservent_r_proto='0'
-getspnam_r_proto='0'
-gidformat='"u"'
-gidsign='1'
-gidsize='4'
-gidtype='gid_t'
-glibpth='/usr/shlib  /lib /usr/lib /usr/lib/386 /lib/386 /usr/ccs/lib /usr/ucblib /usr/local/lib '
-gmake='gmake'
-gmtime_r_proto='0'
-gnulibc_version=''
-grep='grep'
-groupcat='cat /etc/group'
-groupstype='gid_t'
-gzip='gzip'
-h_fcntl='false'
-h_sysfile='true'
-hint='recommended'
-hostcat='cat /etc/hosts'
-html1dir=' '
-html1direxp=''
-html3dir=' '
-html3direxp=''
-i16size='2'
-i16type='short'
-i32size='4'
-i32type='int'
-i64size='8'
-i64type='long'
-i8size='1'
-i8type='signed char'
-i_arpainet='define'
-i_bsdioctl=''
-i_crypt='define'
-i_db='define'
-i_dbm='undef'
-i_dirent='define'
-i_dld='undef'
-i_dlfcn='define'
-i_execinfo='define'
-i_fcntl='undef'
-i_fenv='undef'
-i_float='define'
-i_fp='undef'
-i_fp_class='undef'
-i_gdbm='define'
-i_grp='define'
-i_ieeefp='undef'
-i_inttypes='define'
-i_langinfo='define'
-i_libutil='undef'
-i_limits='define'
-i_locale='define'
-i_machcthr='undef'
-i_malloc='define'
-i_math='define'
-i_memory='undef'
-i_mntent='define'
-i_ndbm='undef'
-i_netdb='define'
-i_neterrno='undef'
-i_netinettcp='define'
-i_niin='define'
-i_poll='define'
-i_prot='undef'
-i_pthread='define'
-i_pwd='define'
-i_quadmath='define'
-i_rpcsvcdbm='undef'
-i_sfio='undef'
-i_sgtty='undef'
-i_shadow='define'
-i_socks='undef'
-i_stdarg='define'
-i_stddef='define'
-i_stdint='define'
-i_stdlib='define'
-i_string='define'
-i_sunmath='undef'
-i_sysaccess='undef'
-i_sysdir='define'
-i_sysfile='define'
-i_sysfilio='undef'
-i_sysin='undef'
-i_sysioctl='define'
-i_syslog='define'
-i_sysmman='define'
-i_sysmode='undef'
-i_sysmount='define'
-i_sysndir='undef'
-i_sysparam='define'
-i_sysresrc='define'
-i_syssecrt='undef'
-i_sysselct='define'
-i_syssockio='undef'
-i_sysstat='define'
-i_sysstatfs='define'
-i_sysstatvfs='define'
-i_systime='define'
-i_systimek='undef'
-i_systimes='define'
-i_systypes='define'
-i_sysuio='define'
-i_sysun='define'
-i_sysutsname='define'
-i_sysvfs='define'
-i_syswait='define'
-i_termio='undef'
-i_termios='define'
-i_time='define'
-i_unistd='define'
-i_ustat='define'
-i_utime='define'
-i_values='define'
-i_varargs='undef'
-i_varhdr='stdarg.h'
-i_vfork='undef'
-ignore_versioned_solibs='y'
-inc_version_list=' '
-inc_version_list_init='0'
-incpath=''
-inews=''
-installbin='/usr/bin'
-initialinstalllocation='/usr/bin'
-installhtml1dir=''
-installhtml3dir=''
-installman1dir=''
-installman3dir=''
-installprefix='/usr'
-installprefixexp='/usr'
-installscript='/usr/bin'
-installsitebin='/usr/bin'
-installsitehtml1dir=''
-installsitehtml3dir=''
-installsiteman1dir=''
-installsiteman3dir=''
-installsitescript='/usr/bin'
-installstyle='lib/perl5'
-installusrbinperl='define'
-installvendorarch=''
-installvendorbin=''
-installvendorhtml1dir=''
-installvendorhtml3dir=''
-installvendorlib=''
-installvendorman1dir=''
-installvendorman3dir=''
-installvendorscript=''
-intsize='4'
-issymlink='test -h'
-ivdformat='"ld"'
-ivsize='8'
-ivtype='long'
-ksh=''
-ld='%%LD%%'
-lddlflags='-shared %%LDFLAGS%%'
-ldflags='%%EXTRA_PERLLIBDIRS%%'
-ldflags_uselargefiles=''
-ldlibpthname='LD_LIBRARY_PATH'
-less='less'
-lib_ext='.a'
-libc=''
-libperl='libperl.so'
-libpth='%%LIBDIRS%%'
-libs='-lgdbm -ldb -ldl -lm -lcrypt -lutil -lc'
-libsdirs='%%LIBDIRS%%'
-libsfiles=' libdl.so libm.so libcrypt.so libutil.so libc.so'
-#libsfound=' /usr/lib/libdl.so /usr/lib/libm.so /usr/lib/libcrypt.so /usr/lib/libutil.so /usr/lib/libc.so'
-libspath='%%LIBDIRS%%'
-libswanted='sfio socket inet nm ndbm gdbm dbm db malloc dl dld ld sun m crypt sec util c cposix posix ucb BSD'
-libswanted_uselargefiles=''
-line=''
-lint=''
-lkflags=''
-ln='ln'
-lns='/bin/ln -s'
-localtime_r_proto='0'
-locincpth=' '
-loclibpth=' '
-longdblkind='3'
-longdblsize='16'
-longlongsize='8'
-longsize='8'
-lp=''
-lpr=''
-ls='ls'
-lseeksize='8'
-lseektype='off_t'
-mail=''
-mailx=''
-make='make'
-make_set_make='#'
-mallocobj=''
-mallocsrc=''
-malloctype='void *'
-man1dir=' '
-man1direxp=''
-man1ext='0'
-man3dir=' '
-man3direxp=''
-man3ext='0'
-mips_type=''
-mistrustnm=''
-mkdir='mkdir'
-mmaptype='void *'
-modetype='mode_t'
-more='more'
-multiarch='undef'
-mv=''
-myarchname='x86_64-linux-uclibc'
-mydomain='.dev.null'
-myhostname='maia'
-myuname='linux maia 2.6.25 #2 sat apr 19 09:46:49 cest 2008 x86_64 unknown unknown gnulinux '
-n='-n'
-need_va_copy='define'
-netdb_hlen_type='size_t'
-netdb_host_type='char *'
-netdb_name_type='const char *'
-netdb_net_type='in_addr_t'
-nm='nm'
-nm_opt=''
-nm_so_opt='--dynamic'
-nroff='nroff'
-nvEUformat='"E"'
-nvFUformat='"F"'
-nvGUformat='"G"'
-nv_preserves_uv_bits='53'
-nveformat='"e"'
-nvfformat='"f"'
-nvgformat='"g"'
-nvsize='8'
-nvtype='double'
-o_nonblock='O_NONBLOCK'
-obj_ext='.o'
-old_pthread_create_joinable=''
-optimize='-O2'
-orderlib='false'
-osname='linux'
-osvers='2.6.25'
-otherlibdirs=' '
-package='perl5'
-pager='/usr/bin/less'
-passcat='cat /etc/passwd'
-path_sep=':'
-perl5=''
-perl=''
-perl_patchlevel=''
-perladmin='root@maia.dev.null'
-perllibs='-ldl -lm -lcrypt -lutil -lc %%EXTRA_PERLLIBS%%'
-perlpath='/usr/bin/perl'
-pg='pg'
-phostname='hostname'
-pidtype='pid_t'
-plibpth=''
-pmake=''
-pr=''
-prefix='/usr'
-prefixexp='/usr'
-procselfexe='"/proc/self/exe"'
-prototype='define'
-ptrsize='8'
-quadkind='2'
-quadtype='long'
-randbits='48'
-randfunc='drand48'
-random_r_proto='0'
-randseedtype='long'
-ranlib=':'
-rd_nodata='-1'
-readdir64_r_proto='0'
-readdir_r_proto='0'
-revision='5'
-rm='rm'
-rm_try='/bin/rm -f try try a.out .out try.[cho] try..o core core.try* try.core*'
-rmail=''
-run=''
-runnm='false'
-sPRIEUldbl='"LE"'
-sPRIFUldbl='"LF"'
-sPRIGUldbl='"LG"'
-sPRIXU64='"lX"'
-sPRId64='"ld"'
-sPRIeldbl='"Le"'
-sPRIfldbl='"Lf"'
-sPRIgldbl='"Lg"'
-sPRIi64='"li"'
-sPRIo64='"lo"'
-sPRIu64='"lu"'
-sPRIx64='"lx"'
-sSCNfldbl='"Lf"'
-sched_yield='sched_yield()'
-scriptdir='/usr/bin'
-scriptdirexp='/usr/bin'
-sed='sed'
-seedfunc='srand48'
-selectminbits='64'
-selecttype='fd_set *'
-sendmail=''
-setgrent_r_proto='0'
-sethostent_r_proto='0'
-setlocale_r_proto='0'
-setnetent_r_proto='0'
-setprotoent_r_proto='0'
-setpwent_r_proto='0'
-setservent_r_proto='0'
-sh='/bin/sh'
-shar=''
-sharpbang='#!'
-shmattype='void *'
-shortsize='2'
-shrpenv=''
-shsharp='true'
-sig_count='64'
-sig_name='ZERO HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS RTMIN NUM33 NUM34 NUM35 NUM36 NUM37 NUM38 NUM39 NUM40 NUM41 NUM42 NUM43 NUM44 NUM45 NUM46 NUM47 NUM48 NUM49 NUM50 NUM51 NUM52 NUM53 NUM54 NUM55 NUM56 NUM57 NUM58 NUM59 NUM60 NUM61 NUM62 RTMAX IOT CLD POLL UNUSED '
-sig_name_init='"ZERO", "HUP", "INT", "QUIT", "ILL", "TRAP", "ABRT", "BUS", "FPE", "KILL", "USR1", "SEGV", "USR2", "PIPE", "ALRM", "TERM", "STKFLT", "CHLD", "CONT", "STOP", "TSTP", "TTIN", "TTOU", "URG", "XCPU", "XFSZ", "VTALRM", "PROF", "WINCH", "IO", "PWR", "SYS", "RTMIN", "NUM33", "NUM34", "NUM35", "NUM36", "NUM37", "NUM38", "NUM39", "NUM40", "NUM41", "NUM42", "NUM43", "NUM44", "NUM45", "NUM46", "NUM47", "NUM48", "NUM49", "NUM50", "NUM51", "NUM52", "NUM53", "NUM54", "NUM55", "NUM56", "NUM57", "NUM58", "NUM59", "NUM60", "NUM61", "NUM62", "RTMAX", "IOT", "CLD", "POLL", "UNUSED", 0'
-sig_num='0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 6 17 29 31 '
-sig_num_init='0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 6, 17, 29, 31, 0'
-sig_size='68'
-signal_t='void'
-sitearch=''
-sitearchexp=''
-sitebin='/usr/bin'
-sitebinexp='/usr/bin'
-sitehtml1dir=''
-sitehtml1direxp=''
-sitehtml3dir=''
-sitehtml3direxp=''
-sitelib=''
-#sitelib_stem='/usr/lib/perl5/site_perl'
-sitelibexp=''
-siteman1dir=''
-siteman1direxp=''
-siteman3dir=''
-siteman3direxp=''
-siteprefix='/usr'
-siteprefixexp='/usr'
-sitescript='/usr/bin'
-sitescriptexp='/usr/bin'
-sizesize='8'
-sizetype='size_t'
-sleep=''
-smail=''
-so='so'
-sockethdr=''
-socketlib=''
-socksizetype='socklen_t'
-sort='sort'
-spackage='Perl5'
-spitshell='cat'
-srand48_r_proto='0'
-srandom_r_proto='0'
-src='.'
-ssizetype='ssize_t'
-startperl='#!/usr/bin/perl'
-startsh='#!/bin/sh'
-static_ext=' '
-stdchar='char'
-stdio_base='((fp)->_base)'
-stdio_bufsiz='((fp)->_cnt + (fp)->_ptr - (fp)->_base)'
-stdio_cnt='((fp)->_cnt)'
-stdio_filbuf=''
-stdio_ptr='((fp)->_ptr)'
-stdio_stream_array=''
-strerror_r_proto='0'
-#strings='/usr/include/string.h'
-submit=''
-sysman='/usr/share/man/man1'
-tail=''
-tar=''
-targetarch='x86_64-linux-uclibc'
-tbl=''
-tee=''
-test='test'
-#timeincl='/usr/include/sys/time.h /usr/include/time.h '
-timetype='time_t'
-tmpnam_r_proto='0'
-to=':'
-touch='touch'
-tr='tr'
-trnl='\n'
-troff=''
-ttyname_r_proto='0'
-u16size='2'
-u16type='unsigned short'
-u32size='4'
-u32type='unsigned int'
-u64size='8'
-u64type='unsigned long'
-u8size='1'
-u8type='unsigned char'
-uidformat='"u"'
-uidsign='1'
-uidsize='4'
-uidtype='uid_t'
-uname='uname'
-uniq='uniq'
-uquadtype='unsigned long'
-use5005threads='undef'
-use64bitall='define'
-use64bitint='define'
-usecbacktrace='undef'
-usecrosscompile='define'
-usedl='define'
-usefaststdio='undef'
-useithreads='undef'
-uselargefiles='define'
-uselongdouble='undef'
-usemallocwrap='define'
-usemorebits='undef'
-usemultiplicity='undef'
-usemymalloc='n'
-usenm='true'
-useopcode='true'
-useperlio='define'
-useposix='true'
-usequadmath='undef'
-usereentrant='undef'
-userelocatableinc='undef'
-usesfio='false'
-useshrplib='true'
-usesitecustomize='undef'
-usesocks='undef'
-usethreads='undef'
-usevendorprefix='undef'
-usevfork='false'
-usrinc='%%INCDIRS%%'
-uuname=''
-uvXUformat='"lX"'
-uvoformat='"lo"'
-uvsize='8'
-uvtype='unsigned long'
-uvuformat='"lu"'
-uvxformat='"lx"'
-vendorarch=''
-vendorarchexp=''
-vendorbin=''
-vendorbinexp=''
-vendorhtml1dir=' '
-vendorhtml1direxp=''
-vendorhtml3dir=' '
-vendorhtml3direxp=''
-vendorlib=''
-vendorlib_stem=''
-vendorlibexp=''
-vendorman1dir=' '
-vendorman1direxp=''
-vendorman3dir=' '
-vendorman3direxp=''
-vendorprefix=''
-vendorprefixexp=''
-vendorscript=''
-vendorscriptexp=''
-versiononly='undef'
-vi=''
-voidflags='15'
-xlibpth='/usr/lib/386 /lib/386'
-yacc='yacc'
-yaccflags=''
-zcat=''
-zip='zip'
-# Configure command line arguments.
-config_arg0='./Configure'
-config_args='-der'
-config_argc=1
-config_arg1='-der'
-PERL_REVISION=5
-PERL_API_REVISION=5
-PERL_API_SUBVERSION=0
-PERL_PATCHLEVEL=
-PERL_CONFIG_SH=true
-# Fix problem with HiRes timer.
-d_nanosleep='define'
-d_clock_gettime='define'
-d_clock_getres='define'
-d_clock_nanosleep='define'
-d_clock='define'
-
-# New symbols for perl 5.20.0
-bin_ELF='define'
-charbits='8'
-charsize='1'
-d_asctime64='undef'
-d_attribute_deprecated='define'
-d_ctime64='undef'
-d_difftime64='undef'
-d_gdbm_ndbm_h_uses_prototypes='undef'
-d_gdbmndbm_h_uses_prototypes='undef'
-d_getaddrinfo='define'
-d_getnameinfo='define'
-d_gmtime64='undef'
-d_inetntop='define'
-d_inetpton='define'
-d_ip_mreq='define'
-d_ip_mreq_source='define'
-d_ipv6_mreq='%%IPV6%%'
-d_ipv6_mreq_source='undef'
-d_isblank='define'
-d_libname_unique='undef'
-d_localtime64='undef'
-d_mktime64='undef'
-d_ndbm='undef'
-d_ndbm_h_uses_prototypes='undef'
-d_prctl='define'
-d_prctl_set_name='define'
-d_sin6_scope_id='%%IPV6%%'
-d_sockaddr_in6='%%IPV6%%'
-d_sockaddr_sa_len='undef'
-d_static_inline='define'
-d_timegm='define'
-dtrace=''
-extern_C='extern'
-hostosname=''
-i_assert='define'
-i_bfd='undef'
-i_gdbm_ndbm='undef'
-i_gdbmndbm='undef'
-i_mallocmalloc='undef'
-i_stdbool='define'
-i_syspoll='define'
-#incpth='/usr/lib/gcc/i486-slackware-linux/4.8.2/include /usr/local/include /usr/lib/gcc/i486-slackware-linux/4.8.2/include-fixed /usr/include'
-ld_can_script='define'
-#libsfound=' /usr/lib/libgdbm.so /usr/lib/libdb.so /usr/lib/libdl.so /usr/lib/libm.so /usr/lib/libcrypt.so /usr/lib/libutil.so /usr/lib/libc.so'
-nv_overflows_integers_at='256.0*256.0*256.0*256.0*256.0*256.0*2.0*2.0*2.0*2.0*2.0'
-perl_static_inline='static __inline__'
-sGMTIME_max='67768036191676799'
-sGMTIME_min='-62167219200'
-sLOCALTIME_max='67768036191673199'
-sLOCALTIME_min='-62167222408'
-#sitelib_stem='/usr/local/lib/perl5/site_perl'
-st_ino_sign='1'
-st_ino_size='8'
-#strings='/usr/include/string.h'
-sysroot=''
-targetdir=''
-targetenv=''
-targethost=''
-targetmkdir=''
-targetport=''
-targetsh='/bin/sh'
-#timeincl='/usr/include/sys/time.h /usr/include/time.h '
-usedevel='undef'
-usedtrace='undef'
-usekernprocpathname='undef'
-usensgetexecutablepath='undef'
-useversionedarchname='undef'
-vaproto='define'
-libdb_needs_pthread='N'
-
-# These symbols changed from perl 5.10.0 to 5.20.0 and probably will
-# change again for new versions, so they're included here for
-# future reference
-api_version='22'
-# Always set this to the base version, not the patched one!
-api_versionstring='5.22.0'
-dynamic_ext='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/DosGlob File/Glob Filter/Util/Call GDBM_File Hash/Util Hash/Util/FieldHash I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc Opcode POSIX PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Tie/Hash/NamedCapture Time/HiRes Time/Piece Unicode/Collate XS/APItest XS/Typemap arybase attributes mro re threads threads/shared'
-installarchlib='/usr/lib/perl5/5.22'
-installprivlib='/usr/lib/perl5/5.22'
-installsitearch='/usr/lib/perl5/5.22'
-installsitelib='/usr/lib/perl5/5.22'
-nonxs_ext='Archive/Tar Attribute/Handlers AutoLoader B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Config/Perl/V Devel/SelfStubber Digest Dumpvalue Env Errno Exporter ExtUtils/CBuilder ExtUtils/Command ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS File/Fetch File/Find File/Path File/Temp FileCache Filter/Simple Getopt/Long HTTP/Tiny I18N/Collate I18N/LangTags IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP Locale/Codes Locale/Maketext Locale/Maketext/Simple Math/BigInt Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NEXT Net/Ping Params/Check Parse/CPAN/Meta Perl/OSType PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage Safe Search/Dict SelfLoader Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Memoize Tie/RefHash Time/Local XSLoader autodie autouse base bignum constant encoding/warnings experimental if lib libnet parent perlfaq podlators Unicode/Normalize version'
-privlib='/usr/lib/perl5/5.22'
-privlibexp='/usr/lib/perl5/5.22'
-archlib='/usr/lib/perl5/5.22'
-archlibexp='/usr/lib/perl5/5.22'
-version='5.22.0'
-version_patchlevel_string='version 22 subversion 0'
-PERL_VERSION=22
-PERL_API_VERSION=22
-PERL_SUBVERSION=0
-patchlevel='22'
-ccdlflags='-fPIC -Wl,-rpath,/usr/lib/perl5/5.22/CORE'
-subversion='0'
-extensions='B Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call GDBM_File Hash/Util I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex Time/HiRes Time/Piece XS/APItest XS/Typemap attrs re threads threads/shared Hash/Util/FieldHash Compress/Zlib Errno IO_Compress_Base IO_Compress_Zlib Unicode/Normalize'
-known_extensions='B Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call GDBM_File Hash/Util I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc NDBM_File ODBM_File Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex Time/HiRes Time/Piece Unicode/Normalize Win32 Win32API/File Win32CORE XS/APItest XS/Typemap attrs re threads threads/shared Hash/Util/FieldHash'
-
-# Make perl use these tools instead of the target binaries during build
-hostgenerate='%%HOSTGENERATE%%'
-hostperl='%%HOSTMINIPERL%%'
diff --git a/lang/perl/files/i486.config b/lang/perl/files/i486.config
new file mode 100644 (file)
index 0000000..b44c64e
--- /dev/null
@@ -0,0 +1,28 @@
+owrt:arch=i486
+owrt:bits=32
+owrt:endian=little
+
+ccsymbols=''
+cppccsymbols=''
+cppsymbols='__ELF__=1 _FILE_OFFSET_BITS=64 __GLIBC__=2 __GLIBC_MINOR__=2 __GNUC__=3 __GNUC_MINOR__=4 __GNU_LIBRARY__=6 _LARGEFILE_SOURCE=1 _POSIX_C_SOURCE=199506L _POSIX_SOURCE=1 __STDC__=1 __USE_BSD=1 __USE_FILE_OFFSET64=1 __USE_LARGEFILE=1 __USE_MISC=1 __USE_POSIX=1 __USE_POSIX199309=1 __USE_POSIX199506=1 __USE_POSIX2=1 __USE_SVID=1 i386=1 __i386=1 __i386__=1 linux=1 __linux=1 __linux__=1 unix=1 __unix=1 __unix__=1'
+d_casti32='undef'
+d_modflproto='define'
+doublekind='3'
+fpossize='20'
+longdblkind='3'
+need_va_copy='undef'
+quadkind='3'
+
+sPRIEUldbl='"LE"'
+sPRIFUldbl='"LF"'
+sPRIGUldbl='"LG"'
+sPRIXU64='"LX"'
+sPRIeldbl='"Le"'
+sPRIfldbl='"Lf"'
+sPRIgldbl='"Lg"'
+sSCNfldbl='"Lf"'
+
+owrt:sig_count='64'
+owrt:sigs='ZERO HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS'
+owrt:sig_name_extra='IOT CLD POLL UNUSED'
+owrt:sig_num_extra='6 17 29 31'
diff --git a/lang/perl/files/libc.config b/lang/perl/files/libc.config
new file mode 100644 (file)
index 0000000..93d190c
--- /dev/null
@@ -0,0 +1,47 @@
+($owrt:libc eq 'glibc') {
+       perllibs="$perllibs -lbsd"
+       ldflags="$ldflags -L$owrt:staging_dir/lib"
+}
+
+# uclibc does not provide crypt_r().
+($owrt:libc eq 'uclibc') {
+       crypt_r_proto='0'
+       d_crypt_r='undef'
+}
+
+($owrt:libc eq 'musl') {
+       # musl does not provide a working setlocale(). It accepts arbitrary locales
+       # and makes them act as if they were C.UTF-8.
+       d_setlocale='undef'
+       
+       d_stdio_ptr_lval='undef'
+       d_stdio_ptr_lval_sets_cnt='undef'
+       d_stdiobase='undef'
+       d_stdstdio='undef'
+       
+       d_getnetbyname_r='undef'
+       
+       d_getprotobyname_r='undef'
+       d_getpwent_r='undef'
+       d_getservent_r='undef'
+       d_gethostent_r='undef'
+       d_getnetent_r='undef'
+       d_getnetbyaddr_r='undef'
+       d_getprotoent_r='undef'
+       d_getprotobynumber_r='undef'
+       d_getgrent_r='undef'
+       
+       getprotobyname_r='undef'
+       getpwent_r='undef'
+       getservent_r='undef'
+       gethostent_r='undef'
+       getnetent_r='undef'
+       getnetbyaddr_r='undef'
+       getprotoent_r='undef'
+       getprotobynumber_r='undef'
+       getgrent_r='undef'
+       
+       i_fcntl='define'
+       h_fcntl='true'
+       d_strerror_r='undef'
+}
diff --git a/lang/perl/files/mips.config b/lang/perl/files/mips.config
new file mode 100644 (file)
index 0000000..05e807b
--- /dev/null
@@ -0,0 +1,19 @@
+owrt:arch=mips
+owrt:bits=32
+owrt:endian=big
+
+ccsymbols=''
+cppccsymbols=''
+cppsymbols='__ELF__=1 _FILE_OFFSET_BITS=64 __GLIBC__=2 __GLIBC_MINOR__=2 __GNUC__=3 __GNUC_MINOR__=4 __GNU_LIBRARY__=6 LANGUAGE_C=1 _LANGUAGE_C=1 __LANGUAGE_C=1 __LANGUAGE_C__=1 _LARGEFILE_SOURCE=1 MIPSEL=1 _MIPSEL=1 __MIPSEL=1 __MIPSEL__=1 _MIPS_FPSET=16 _MIPS_ISA=_MIPS_ISA_MIPS1 _MIPS_SIM=1 _MIPS_SZINT=32 _MIPS_SZLONG=32 _MIPS_SZPTR=32 __PIC__=1 _POSIX_C_SOURCE=199506L _POSIX_SOURCE=1 R3000=1 _R3000=1 __R3000=1 __R3000__=1 __STDC__=1 __USE_BSD=1 __USE_FILE_OFFSET64=1 __USE_LARGEFILE=1 __USE_MISC=1 __USE_POSIX=1 __USE_POSIX199309=1 __USE_POSIX199506=1 __USE_POSIX2=1 __USE_SVID=1 linux=1 __linux=1 __linux__=1 mips=1 _mips=1 __mips=1 __mips__=1 __pic__=1 unix=1 __unix=1 __unix__=1'
+d_casti32='define'
+d_modflproto='undef'
+doublekind='4'
+fpossize='24'
+longdblkind='0'
+need_va_copy='undef'
+quadkind='3'
+
+owrt:sig_count=128
+owrt:sigs='ZERO HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM USR1 USR2 CHLD PWR WINCH URG IO STOP TSTP CONT TTIN TTOU VTALRM PROF XCPU XFSZ'
+owrt:sig_name_extra='IOT CLD POLL'
+owrt:sig_num_extra='6 18 22'
diff --git a/lang/perl/files/mips64.config b/lang/perl/files/mips64.config
new file mode 100644 (file)
index 0000000..89875f7
--- /dev/null
@@ -0,0 +1,19 @@
+owrt:arch=mips64
+owrt:bits=64
+owrt:endian=big
+
+ccsymbols=''
+cppccsymbols=''
+cppsymbols=''
+d_casti32='define'
+d_modflproto='undef'
+doublekind='4'
+fpossize='24'
+longdblkind='6'
+need_va_copy='define'
+quadkind='2'
+
+owrt:sig_count=128
+owrt:sigs='ZERO HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM USR1 USR2 CHLD PWR WINCH URG IO STOP TSTP CONT TTIN TTOU VTALRM PROF XCPU XFSZ'
+owrt:sig_name_extra='IOT CLD POLL'
+owrt:sig_num_extra='6 18 22'
diff --git a/lang/perl/files/mipsel.config b/lang/perl/files/mipsel.config
new file mode 100644 (file)
index 0000000..d209a0d
--- /dev/null
@@ -0,0 +1,19 @@
+owrt:arch=mipsel
+owrt:bits=32
+owrt:endian=little
+
+ccsymbols=''
+cppccsymbols=''
+cppsymbols='__ELF__=1 _FILE_OFFSET_BITS=64 __GLIBC__=2 __GLIBC_MINOR__=2 __GNUC__=3 __GNUC_MINOR__=4 __GNU_LIBRARY__=6 LANGUAGE_C=1 _LANGUAGE_C=1 __LANGUAGE_C=1 __LANGUAGE_C__=1 _LARGEFILE_SOURCE=1 MIPSEL=1 _MIPSEL=1 __MIPSEL=1 __MIPSEL__=1 _MIPS_FPSET=16 _MIPS_ISA=_MIPS_ISA_MIPS1 _MIPS_SIM=1 _MIPS_SZINT=32 _MIPS_SZLONG=32 _MIPS_SZPTR=32 __PIC__=1 _POSIX_C_SOURCE=199506L _POSIX_SOURCE=1 R3000=1 _R3000=1 __R3000=1 __R3000__=1 __STDC__=1 __USE_BSD=1 __USE_FILE_OFFSET64=1 __USE_LARGEFILE=1 __USE_MISC=1 __USE_POSIX=1 __USE_POSIX199309=1 __USE_POSIX199506=1 __USE_POSIX2=1 __USE_SVID=1 linux=1 __linux=1 __linux__=1 mips=1 _mips=1 __mips=1 __mips__=1 __pic__=1 unix=1 __unix=1 __unix__=1'
+d_casti32='define'
+d_modflproto='undef'
+doublekind='3'
+fpossize='24'
+longdblkind='0'
+need_va_copy='undef'
+quadkind='3'
+
+owrt:sig_count=128
+owrt:sigs='ZERO HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM USR1 USR2 CHLD PWR WINCH URG IO STOP TSTP CONT TTIN TTOU VTALRM PROF XCPU XFSZ'
+owrt:sig_name_extra='IOT CLD POLL'
+owrt:sig_num_extra='6 18 22'
diff --git a/lang/perl/files/misc.config b/lang/perl/files/misc.config
new file mode 100644 (file)
index 0000000..a1d93d3
--- /dev/null
@@ -0,0 +1,11 @@
+cf_email='naoir@gmx.net'
+osvers='3.18.19'
+gccversion='4.8.0'
+myhostname='OpenWrt'
+cf_time='Thu Jan 1 12:00:00 CEST 2015'
+
+perladmin="$cf_email"
+archname="$owrt:arch-linux-$owrt:libc"
+targetarch="$archname"
+myarchname="$archname"
+myuname="Linux $myhostname $osvers #1 SMP $cf_time @{[$owrt:arch =~ s/(el|eb)$//r]} GNU/Linux"
index 288191b43fdf00bb0000dae8e9c0c67b9a2ceb23..bf83c0a3d1de28504bbe0dec4c8854a26ba23b17 100755 (executable)
@@ -4,8 +4,52 @@ PERL_TESTSDIR="/usr/share/perl/perl-tests"
 PERL_LIBDIR="/usr/lib/perl5/%%PERL_VERSION%%/"
 PERL_DISABLEDTESTS="%%PERL_DISABLEDTESTS%%"
 
+no_run=""
+manual_run=""
+manual_run_no_base=""
+
+while [ ! -z "$1" ]; do
+       case $1 in
+               -n)
+                       no_run="yes"
+                       ;;
+               -m)
+                       manual_run="yes"
+                       ;;
+               -mb)
+                       manual_run="yes"
+                       manual_run_no_base="yes"
+                       ;;
+               --help)
+                       echo "run_tests.sh [-n|-m|-mb|--help]"
+                       echo ""
+                       echo "Options:"
+                       echo "  -n        Just prepare the environment. Don't actually run any tests"
+                       echo "  -m        Run tests manually according to MANIFEST, instead of whatever t/TEST chooses"
+                       echo "  -mb       Don't run base tests. Implies -m"
+                       echo "  --help    Print this help ;)"
+                       echo ""
+                       exit 0
+                       ;;
+               *)
+                       echo "Invalid argument: $1"
+                       ;;
+       esac
+       shift
+done
+
 if [ ! -f "$PERL_TESTSDIR/__prepared" ]; then
-       ln -s "$PERL_LIBDIR" "$PERL_TESTSDIR/lib"
+       # Many tests insist on having PERL5LIB in $PERL_TESTSDIR/lib. However,
+       # that directory may also contain tests. Some of them(FindBin.t in particular)
+       # also demand being located in a directory ending with "lib". So we can't do symlink
+       # trickery here.
+       # Our solution is to just copy PERL5LIB over.
+       if [ -d "$PERL_TESTSDIR/lib" ]; then
+               cp -a "$PERL_LIBDIR/"* "$PERL_TESTSDIR/lib/"
+       else
+               ln -s "$PERL_LIBDIR" "$PERL_TESTSDIR/lib"
+       fi
+
        ln -s /usr/bin/perl "$PERL_TESTSDIR/perl"
        ln -s /usr/bin/perl "$PERL_TESTSDIR/t/perl"
        touch "$PERL_TESTSDIR/__prepared"
@@ -20,5 +64,18 @@ if [ ! -f "$PERL_TESTSDIR/__prepared" ]; then
        mv $PERL_TESTSDIR/MANIFEST_NEW $PERL_TESTSDIR/MANIFEST
 fi
 
-cd "$PERL_TESTSDIR/t"
-./perl TEST
+if [ -z "$no_run" ]; then
+       cd "$PERL_TESTSDIR/t"
+       if [ ! -z "$manual_run" ]; then
+               for i in $(cat ../MANIFEST | sed 's/\t.*$//g' | grep '\.t$'); do
+                       if [ ! -z "$manual_run_no_base" ] && [ ! -z "$(echo $i | grep '^t/')" ]; then
+                               continue;
+                       fi
+                       echo "Running $i"
+                       ./TEST ../$i
+                       echo ""
+               done
+       else
+               ./perl TEST
+       fi
+fi
diff --git a/lang/perl/files/perlconfig.pl b/lang/perl/files/perlconfig.pl
new file mode 100644 (file)
index 0000000..17378cd
--- /dev/null
@@ -0,0 +1,313 @@
+#!/usr/bin/perl
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+# 
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+# 
+# Copyright 2015 Marcel Denia
+
+=head1 NAME
+
+perlconfig.pl
+
+=head1 SYNOPSIS
+
+B<perlconfig.pl> [B<-Dsymbol>=I<value>, ...] [B<-dsymbol>=I<value>, ...] I<[files]>
+
+Generate a configuration file suitable for (cross-)compiling perl 5.
+
+=head1 OPTIONS
+
+=over
+
+=item B<-Dsymbol=value>
+
+The symbol identified by I<name> will have the literal value I<value>.
+When generating the configuration file, it's value will be printed enclosed by
+single quotation marks(').
+
+=item B<-dsymbol=value>
+
+The symbol identified by I<name> will have the literal value I<value>.
+
+=back
+
+=head1 DESCRIPTION
+
+B<perlconfig.pl> is a program to compile and generate configuration files ready
+to be used as a "config.sh" file for compiling perl 5. It does so by processing
+specially-made configuration files(usually called *.config), typically augmented
+by command-line definitions.
+
+B<perlconfig.pl>'s intent is to be used in place of perl 5's own Configure
+script in situations where it can not be run, like cross-compiling.
+
+=head2 File syntax
+
+B<perlconfig.pl>'s configuration files a consist of symbol definitions in
+different variations, each one assigning a specific symbol identified by a name
+some value, as well as conditional blocks in order to allow for some
+flexibility.
+
+=head3 Symbol names
+
+A symbol name has to consist entirely of alphanumeric characters as well as
+the underscore(_) character. In addition, symbol names may be prefixed with an
+all-lowercase string, seperated by a colon(:):
+
+  my:name=value
+
+Having a zero-length prefix string is also valid:
+
+  :name=value
+
+Symbols prefixed that way are called private symbols. They act exactly like
+regular symbols, with the only difference being that they will B<not> be written
+to the final configuration file.
+
+=head3 Symbol definitions
+
+A symbol definition is in the form of a simple name/value pair, seperated by
+an equals sign(=):
+
+  name=value
+
+I<value> can be anything really. However, there are 3 notations, with
+differences in quoting and interpolation:
+
+=over
+
+=item name=foo
+
+The symbol identified by I<name> will have the literal value I<foo>.
+
+=item name='foo'
+
+The symbol identified by I<name> will have the literal value I<foo>.
+When generating the configuration file, it's value will be printed enclosed by
+single quotation marks(').
+
+=item name="foo"
+
+The symbol identified by I<name> will have the value of I<foo>
+S<B<after interpolation>>(as described in L</Interpolation>).
+When generating the configuration file, it's value will be printed enclosed by
+single quotation marks(').
+
+=back
+
+=head3 Conditional blocks
+
+A conditional block is of the form
+
+  (condition) {
+      ...
+  }
+
+B<perlconfig.pl> will execute everything enclosed in the curly braces({ and }),
+or inside the BLOCK in Perl 5 terms, if I<condition> evaluates to any true
+value. I<condition> will go through interpolation as described in
+L</Interpolation>. It may contain any valid Perl 5 expression. Some common
+examples are:
+
+=over
+
+=item $name eq 'foo'
+
+Evaluates to true if configuration symbol I<name> is literally equal to I<foo>.
+
+=item $name ne 'foo'
+
+Evaluates to true if configuration symbol I<name> is B<not> literally equal to
+I<foo>.
+
+=item defined($name)
+
+Evaluates to true if configuration symbol I<name> is defined(has any usable
+value, see L<perlfunc/defined>).
+
+=back
+
+Conditional blocks may be nested inside conditional blocks. Note that the
+opening curl brace({) has to be on the same line as your condition.
+
+=head3 Comments
+
+All lines starting with nothing or any number of whitespaces, followed by a
+hash sign(#), are considered comments and will be completely ignored by
+B<perlconfig.pl>.
+
+=head3 Interpolation
+
+In certain situations(see above), B<perlconfig.pl> will interpolate strings or
+constructs in order to allow you to refer to configuration symbols or embed
+code.
+
+Interpolated strings are subject to the following rules:
+
+=over
+
+=item You may not include any single(') or double(") quotation marks.
+
+You can use \qq in order to include double quotation marks(") in your string.
+
+=item $name and ${name} reference configuration symbols
+
+You can easily refer to existing configuration symbols using the commmon $name
+or ${name} syntax. In case you want to refer to the perl variable named $name,
+write \$name. This is useful for embedding code.
+
+=item Perl 5 interpolation rules apply
+
+Aside from the above, you may include anything that is also valid for an
+interpolated(qq//) string in Perl 5. For instance, it's perfectly valid to
+execute code using the @{[]} construct.
+
+=back
+
+=head1 EXAMPLES
+
+As a simple example, consider the following configuration file, named
+"example.config":
+
+  recommendation='The Perl you want is'
+  ($:maturity eq 'stable') {
+      recommendation="$recommendation Perl 5"
+  }
+  ($:maturity eq 'experimental') {
+      recommendation="$recommendation Perl 6(try Rakudo!)"
+  }
+
+Executing it using these command-lines will yield the following results:
+
+=over
+
+=item $ perlconfig.pl -D:maturity=stable example.config
+
+  recommendation='The Perl you want is Perl 5'
+
+=item $ perlconfig.pl -D:maturity=experimental example.config
+
+  recommendation='The Perl you want is Perl 6(try Rakudo!)'
+
+=back
+
+=head1 AUTHOR
+
+Marcel Denia <naoir@gmx.net>
+
+=head1 COPYRIGHT AND LICENSE
+
+Copyright 2015 Marcel Denia
+
+This program is free software: you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation, either version 3 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+=cut
+
+use strict;
+use warnings;
+use List::Util qw/all/;
+my $symbol_name_prefix_regex = '(?:[a-z]*:)';
+my $symbol_name_regex = "($symbol_name_prefix_regex?(?:[a-zA-Z0-9_]+))";
+
+my %config;
+
+sub interpolate {
+       my $string = shift;
+       my %options = @_;
+       
+       # First, convert $foo into ${foo}
+       $string =~ s/(?<!\\)\$$symbol_name_regex/\${$1}/gs;
+       
+       # Make ${foo} into $config{'foo'}->{value}
+       $string =~ s/\$\{$symbol_name_regex\}/\$config{\'$1\'}->{value}/g;
+       
+       # Un-escape \$foo
+       $string =~ s/\\\$/\$/g;
+       
+       # Turn \qq into "
+       $string =~ s/\\qq/\\"/g;
+       
+       return $string;
+}
+
+# Parse command-line symbol definitions
+while ($ARGV[0]) {
+       if ($ARGV[0] =~ /^-([D|d])$symbol_name_regex=(.*)$/) {
+               $config{$2} = { value => $3, quoted => $1 eq 'D' };
+               shift(@ARGV);
+       }
+       else {
+               last;
+       }
+}
+
+# Process configuration files
+my @condition_stack = ( 1 );
+for my $file (@ARGV) {
+       open(my $fh, '<', $file) or die "Can't open $file: $!\n";
+       while (my $line = <$fh>) {
+               chomp($line);
+               
+               if ($line =~ /^\s*$symbol_name_regex=(.*)$/) { # A symbol definition
+                       if (all {$_ == 1} @condition_stack) {
+                               my $symbol = $1;
+                               (my $quote_begin, my $value, my $quote_end) = $2 =~ /^(['|"])?([^'"]*)(['|"])?$/;
+                               
+                               $quote_begin = '' unless defined $quote_begin;
+                               $quote_end = '' unless defined $quote_end;
+                               die "$file:$.: Unmatched quotes in \"$line\"\n" unless $quote_begin eq $quote_end;
+                               
+                               if ($quote_begin eq '"') {
+                                       $config{$symbol} = { value => eval('"' . interpolate($2) . '"'), quoted => 1 };
+                               }
+                               else {
+                                       $config{$symbol} = { value => $2, quoted => $quote_begin eq '\'' };
+                               }
+                       }
+               }
+               elsif ($line =~ /^\s*\((.*)\)\s?{$/) { # A conditional block
+                       if (eval(interpolate($1))) {
+                               push(@condition_stack, 1);
+                       }
+                       else {
+                               push(@condition_stack, 0);
+                       }
+               }
+               elsif ($line =~ /^\s*}$/) { # Closing a conditional block
+                       pop(@condition_stack);
+                       die "$file:$.: Closing non-existent block\n" unless @condition_stack;
+               }
+               elsif ($line =~ (/^\s*$/) || ($line =~ /^\s*#/)) { # An empty line or comment
+               }
+               else {
+                       die "$file:$.: Malformed line: \"$line\"\n";
+               }
+       }
+}
+
+# Output
+for (sort(keys(%config))) {
+       my $quote = $config{$_}->{quoted} ? '\'' : '';
+       print("$_=$quote$config{$_}->{value}$quote\n") unless $_ =~ /^$symbol_name_prefix_regex/;
+}
\ No newline at end of file
diff --git a/lang/perl/files/powerpc.config b/lang/perl/files/powerpc.config
new file mode 100644 (file)
index 0000000..33af767
--- /dev/null
@@ -0,0 +1,19 @@
+owrt:arch=powerpc
+owrt:bits=32
+owrt:endian=big
+
+ccsymbols='__gnu_linux__=1 __linux=1 __linux__=1 __unix=1 __unix__=1 system=linux system=posix system=unix'
+cppccsymbols='linux=1 unix=1'
+cppsymbols='_BIG_ENDIAN=1 __BIG_ENDIAN__=1 __ELF__=1 _FILE_OFFSET_BITS=64 __GLIBC__=2 __GLIBC_MINOR__=2 __GNUC__=3 __GNUC_MINOR__=4 __GNU_LIBRARY__=6 _LARGEFILE_SOURCE=1 _POSIX_C_SOURCE=199506L _POSIX_SOURCE=1 __STDC__=1 __USE_BSD=1 __USE_FILE_OFFSET64=1 __USE_LARGEFILE=1 __USE_MISC=1 __USE_POSIX=1 __USE_POSIX199309=1 __USE_POSIX199506=1 __USE_POSIX2=1 __USE_SVID=1 __linux=1 __linux__=1 __unix=1 __unix__=1'
+d_casti32='undef'
+d_modflproto='undef'
+doublekind='4'
+fpossize='24'
+longdblkind='0'
+need_va_copy='define'
+quadkind='3'
+
+owrt:sig_count='64'
+owrt:sigs='ZERO HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS'
+owrt:sig_name_extra='IOT CLD POLL UNUSED'
+owrt:sig_num_extra='6 17 29 31'
diff --git a/lang/perl/files/signal.config b/lang/perl/files/signal.config
new file mode 100644 (file)
index 0000000..183d3b9
--- /dev/null
@@ -0,0 +1,18 @@
+# Signal table helper
+
+(defined($owrt:sigs)) {
+       sig_name="$owrt:sigs"
+       (($owrt:libc eq 'glibc') || ($owrt:libc eq 'uclibc')) {
+               sig_name="$sig_name NUM32 NUM33 RTMIN NUM35 NUM36"
+       }
+       ($owrt:libc eq 'musl') {
+               sig_name="$sig_name NUM32 NUM33 NUM34 RTMIN NUM36"
+       }
+       
+       sig_name="$sig_name @{[map({qq/NUM\$_/} 37..$owrt:sig_count - 2)]} RTMAX $owrt:sig_name_extra"
+       sig_num="@{[0..$owrt:sig_count - 1]} $owrt:sig_num_extra "
+       sig_count="$owrt:sig_count"
+       sig_size="@{[scalar(split(q/ /, $sig_name))]}"
+       sig_name_init="@{[join(q/, /, map({qq/\qq\$_\qq/} split(q/ /, $sig_name)))]}, 0"
+       sig_num_init="@{[join(q/, /, split(q/ /, $sig_num))]}, 0"
+}
diff --git a/lang/perl/files/threads.config b/lang/perl/files/threads.config
new file mode 100644 (file)
index 0000000..e0a2f82
--- /dev/null
@@ -0,0 +1,197 @@
+($owrt:threads eq 'yes') {
+       # Configure arguments
+       config_args="$config_args -Dusethreads"
+       config_arg2='-Dusethreads'
+       config_argc=2
+       
+       # Options
+       useithreads='define'
+       usemultiplicity='define'
+       usethreads='define'
+       
+       # Flags and related
+       ccflags="-D_REENTRANT -D_GNU_SOURCE $ccflags"
+       cppflags="-D_REENTRANT -D_GNU_SOURCE $cppflags"
+       perllibs="-lpthread $perllibs"
+       libs="-lpthread $libs"
+       libsfiles="libpthread.so $libsfiles"
+       libswanted="pthread $libswanted"
+       
+       
+       crypt_r_proto='REENTRANT_PROTO_B_CCS'
+       i_crypt='define'
+       d_crypt='define'
+       d_crypt_r='define'
+       
+       # Prototypes
+       asctime_r_proto='REENTRANT_PROTO_B_SB'
+       ctime_r_proto='REENTRANT_PROTO_B_SB'
+       drand48_r_proto='REENTRANT_PROTO_I_ST'
+       getgrent_r_proto='REENTRANT_PROTO_I_SBWR'
+       getgrgid_r_proto='REENTRANT_PROTO_I_TSBWR'
+       getgrnam_r_proto='REENTRANT_PROTO_I_CSBWR'
+       gethostbyaddr_r_proto='REENTRANT_PROTO_I_TsISBWRE'
+       gethostbyname_r_proto='REENTRANT_PROTO_I_CSBWRE'
+       gethostent_r_proto='REENTRANT_PROTO_I_SBWRE'
+       getlogin_r_proto='REENTRANT_PROTO_I_BW'
+       getnetbyaddr_r_proto='REENTRANT_PROTO_I_uISBWRE'
+       getnetbyname_r_proto='REENTRANT_PROTO_I_CSBWRE'
+       getnetent_r_proto='REENTRANT_PROTO_I_SBWRE'
+       getprotobyname_r_proto='REENTRANT_PROTO_I_CSBWR'
+       getprotobynumber_r_proto='REENTRANT_PROTO_I_ISBWR'
+       getprotoent_r_proto='REENTRANT_PROTO_I_SBWR'
+       getpwent_r_proto='REENTRANT_PROTO_I_SBWR'
+       getpwnam_r_proto='REENTRANT_PROTO_I_CSBWR'
+       getpwuid_r_proto='REENTRANT_PROTO_I_TSBWR'
+       getservbyname_r_proto='REENTRANT_PROTO_I_CCSBWR'
+       getservbyport_r_proto='REENTRANT_PROTO_I_ICSBWR'
+       getservent_r_proto='REENTRANT_PROTO_I_SBWR'
+       getspnam_r_proto='REENTRANT_PROTO_I_CSBWR'
+       gmtime_r_proto='REENTRANT_PROTO_S_TS'
+       localtime_r_proto='REENTRANT_PROTO_S_TS'
+       random_r_proto='REENTRANT_PROTO_I_St'
+       readdir64_r_proto='REENTRANT_PROTO_I_TSR'
+       readdir_r_proto='REENTRANT_PROTO_I_TSR'
+       srand48_r_proto='REENTRANT_PROTO_I_LS'
+       srandom_r_proto='REENTRANT_PROTO_I_TS'
+       strerror_r_proto='REENTRANT_PROTO_B_IBW'
+       tmpnam_r_proto='REENTRANT_PROTO_B_B'
+       ttyname_r_proto='REENTRANT_PROTO_I_IBW'
+       
+       # Defines
+       d_asctime_r='define'
+       d_ctime_r='define'
+       d_drand48_r='define'
+       d_fds_bits='define'
+       d_fegetround='undef'
+       d_getgrent_r='define'
+       d_getgrgid_r='define'
+       d_getgrnam_r='define'
+       d_gethostbyaddr_r='define'
+       d_gethostbyname_r='define'
+       d_gethostent_r='define'
+       d_getlogin_r='define'
+       d_getnetbyaddr_r='define'
+       d_getnetbyname_r='define'
+       d_getnetent_r='define'
+       d_getprotobyname_r='define'
+       d_getprotobynumber_r='define'
+       d_getprotoent_r='define'
+       d_getpwent_r='define'
+       d_getpwnam_r='define'
+       d_getpwuid_r='define'
+       d_getservbyname_r='define'
+       d_getservbyport_r='define'
+       d_getservent_r='define'
+       d_getspnam_r='define'
+       d_gmtime_r='define'
+       d_j0='undef'
+       d_j0l='undef'
+       d_localtime_r='define'
+       d_localtime_r_needs_tzset='define'
+       d_nexttoward='undef'
+       d_off64_t='define'
+       d_pthread_atfork='define'
+       d_pthread_yield='define'
+       d_random_r='define'
+       d_readdir64_r='define'
+       d_readdir_r='define'
+       d_srand48_r='define'
+       d_srandom_r='define'
+       d_sresgproto='define'
+       d_sresuproto='define'
+       d_strerror_r='define'
+       d_tmpnam_r='define'
+       d_ttyname_r='define'
+}
+($owrt:threads eq 'no') {
+       # Options
+       useithreads='undef'
+       usemultiplicity='undef'
+       usethreads='undef'
+       
+       # Prototyypes
+       asctime_r_proto='0'
+       crypt_r_proto='0'
+       ctime_r_proto='0'
+       drand48_r_proto='0'
+       getgrent_r_proto='0'
+       getgrgid_r_proto='0'
+       getgrnam_r_proto='0'
+       gethostbyaddr_r_proto='0'
+       gethostbyname_r_proto='0'
+       gethostent_r_proto='0'
+       getlogin_r_proto='0'
+       getnetbyaddr_r_proto='0'
+       getnetbyname_r_proto='0'
+       getnetent_r_proto='0'
+       getprotobyname_r_proto='0'
+       getprotobynumber_r_proto='0'
+       getprotoent_r_proto='0'
+       getpwent_r_proto='0'
+       getpwnam_r_proto='0'
+       getpwuid_r_proto='0'
+       getservbyname_r_proto='0'
+       getservbyport_r_proto='0'
+       getservent_r_proto='0'
+       getspnam_r_proto='0'
+       gmtime_r_proto='0'
+       
+       # Defines
+       d_asctime_r='undef'
+       d_crypt='define'
+       d_crypt_r='undef'
+       d_ctime_r='undef'
+       d_drand48_r='undef'
+       d_fds_bits='undef'
+       d_fegetround='define'
+       d_getgrent_r='undef'
+       d_getgrgid_r='undef'
+       d_getgrnam_r='undef'
+       d_gethostbyaddr_r='undef'
+       d_gethostbyname_r='undef'
+       d_gethostent_r='undef'
+       d_getlogin_r='undef'
+       d_getnetbyaddr_r='undef'
+       d_getnetbyname_r='undef'
+       d_getnetent_r='undef'
+       d_getprotobyname_r='undef'
+       d_getprotobynumber_r='undef'
+       d_getprotoent_r='undef'
+       d_getpwent_r='undef'
+       d_getpwnam_r='undef'
+       d_getpwuid_r='undef'
+       d_getservbyname_r='undef'
+       d_getservbyport_r='undef'
+       d_getservent_r='undef'
+       d_getspnam_r='undef'
+       d_gmtime_r='undef'
+       d_j0='define'
+       d_j0l='define'
+       d_localtime_r='undef'
+       d_localtime_r_needs_tzset='undef'
+       d_nexttoward='define'
+       d_off64_t='undef'
+       d_pthread_atfork='undef'
+       d_pthread_yield='undef'
+       d_random_r='undef'
+       d_readdir64_r='undef'
+       d_readdir_r='undef'
+       d_srand48_r='undef'
+       d_srandom_r='undef'
+       d_sresgproto='undef'
+       d_sresuproto='undef'
+       d_strerror_r='undef'
+       d_tmpnam_r='undef'
+       d_ttyname_r='undef'
+       i_crypt='define'
+       localtime_r_proto='0'
+       random_r_proto='0'
+       readdir64_r_proto='0'
+       readdir_r_proto='0'
+       srand48_r_proto='0'
+       srandom_r_proto='0'
+       strerror_r_proto='0'
+       tmpnam_r_proto='0'
+       ttyname_r_proto='0'
+}
diff --git a/lang/perl/files/version.config b/lang/perl/files/version.config
new file mode 100644 (file)
index 0000000..7ffe904
--- /dev/null
@@ -0,0 +1,38 @@
+# Set the version here
+PERL_REVISION=5
+PERL_VERSION=22
+PERL_SUBVERSION=0
+
+# (api_revison, api_version, api_subversion) = (revision, version, 0) usually
+PERL_API_REVISION=5
+PERL_API_VERSION=22
+PERL_API_SUBVERSION=0
+
+known_extensions='B Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/DProf Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/Glob Filter/Util/Call GDBM_File Hash/Util I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc NDBM_File ODBM_File Opcode POSIX PerlIO/encoding PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Text/Soundex Time/HiRes Time/Piece Unicode/Normalize Win32 Win32API/File Win32CORE XS/APItest XS/Typemap attrs re threads threads/shared Hash/Util/FieldHash'
+extensions='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/DosGlob File/Glob Filter/Util/Call GDBM_File Hash/Util Hash/Util/FieldHash I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc Opcode POSIX PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Tie/Hash/NamedCapture Time/HiRes Time/Piece Unicode/Collate XS/APItest XS/Typemap arybase attributes mro re threads threads/shared Archive/Tar Attribute/Handlers AutoLoader B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Config/Perl/V Devel/SelfStubber Digest Dumpvalue Env Errno Exporter ExtUtils/CBuilder ExtUtils/Command ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS File/Fetch File/Find File/Path File/Temp FileCache Filter/Simple Getopt/Long HTTP/Tiny I18N/Collate I18N/LangTags IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP Locale/Codes Locale/Maketext Locale/Maketext/Simple Math/BigInt Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NEXT Net/Ping Params/Check Parse/CPAN/Meta Perl/OSType PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage Safe Search/Dict SelfLoader Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Memoize Tie/RefHash Time/Local XSLoader autodie autouse base bignum constant encoding/warnings experimental if lib libnet parent perlfaq podlators Unicode/Normalize version'
+nonxs_ext='Archive/Tar Attribute/Handlers AutoLoader B/Debug CPAN CPAN/Meta CPAN/Meta/Requirements CPAN/Meta/YAML Carp Config/Perl/V Devel/SelfStubber Digest Dumpvalue Env Errno Exporter ExtUtils/CBuilder ExtUtils/Command ExtUtils/Constant ExtUtils/Install ExtUtils/MakeMaker ExtUtils/Manifest ExtUtils/Miniperl ExtUtils/ParseXS File/Fetch File/Find File/Path File/Temp FileCache Filter/Simple Getopt/Long HTTP/Tiny I18N/Collate I18N/LangTags IO/Compress IO/Socket/IP IO/Zlib IPC/Cmd IPC/Open3 JSON/PP Locale/Codes Locale/Maketext Locale/Maketext/Simple Math/BigInt Math/BigRat Math/Complex Memoize Module/CoreList Module/Load Module/Load/Conditional Module/Loaded Module/Metadata NEXT Net/Ping Params/Check Parse/CPAN/Meta Perl/OSType PerlIO/via/QuotedPrint Pod/Checker Pod/Escapes Pod/Functions Pod/Html Pod/Parser Pod/Perldoc Pod/Simple Pod/Usage Safe Search/Dict SelfLoader Term/ANSIColor Term/Cap Term/Complete Term/ReadLine Test Test/Harness Test/Simple Text/Abbrev Text/Balanced Text/ParseWords Text/Tabs Thread/Queue Thread/Semaphore Tie/File Tie/Memoize Tie/RefHash Time/Local XSLoader autodie autouse base bignum constant encoding/warnings experimental if lib libnet parent perlfaq podlators Unicode/Normalize version'
+dynamic_ext='B Compress/Raw/Bzip2 Compress/Raw/Zlib Cwd DB_File Data/Dumper Devel/PPPort Devel/Peek Digest/MD5 Digest/SHA Encode Fcntl File/DosGlob File/Glob Filter/Util/Call GDBM_File Hash/Util Hash/Util/FieldHash I18N/Langinfo IO IPC/SysV List/Util MIME/Base64 Math/BigInt/FastCalc Opcode POSIX PerlIO/encoding PerlIO/mmap PerlIO/scalar PerlIO/via SDBM_File Socket Storable Sys/Hostname Sys/Syslog Tie/Hash/NamedCapture Time/HiRes Time/Piece Unicode/Collate XS/APItest XS/Typemap arybase attributes mro re threads threads/shared'
+
+# No need to change anything from here on
+owrt:perllibpath="/usr/lib/perl5/$PERL_REVISION.$PERL_VERSION"
+
+revision="$PERL_REVISION"
+patchlevel="$PERL_VERSION"
+subversion="$PERL_SUBVERSION"
+version_patchlevel_string="version $PERL_VERSION subversion $PERL_SUBVERSION"
+version="$PERL_REVISION.$PERL_VERSION.$PERL_SUBVERSION"
+
+api_revision="$PERL_API_REVISION"
+api_version="$PERL_API_VERSION"
+api_subversion="$PERL_API_SUBVERSION"
+api_versionstring="$PERL_API_REVISION.$PERL_API_VERSION.$PERL_API_SUBVERSION"
+
+privlib="$owrt:perllibpath"
+privlibexp="$privlib"
+archlib="$owrt:perllibpath"
+archlibexp="$archlib"
+
+installarchlib="$owrt:perllibpath"
+installprivlib="$owrt:perllibpath"
+installsitearch="$owrt:perllibpath"
+installsitelib="$owrt:perllibpath"
diff --git a/lang/perl/files/x86_64.config b/lang/perl/files/x86_64.config
new file mode 100644 (file)
index 0000000..a9cb581
--- /dev/null
@@ -0,0 +1,28 @@
+owrt:arch=x86_64
+owrt:bits=64
+owrt:endian=little
+
+ccsymbols=''
+cppccsymbols=''
+cppsymbols='__ELF__=1 _LP64=1 __FLT_EVAL_METHOD__=0 __FXSR__=1 __GCC_ATOMIC_LLONG_LOCK_FREE=2 __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8=1 __INT64_MAX__=9223372036854775807L __INT64_TYPE__=long\ int __INTMAX_MAX__=9223372036854775807L __INTMAX_TYPE__=long\ int __INTPTR_MAX__=9223372036854775807L __INTPTR_TYPE__=long\ int __INT_FAST16_MAX__=9223372036854775807L __INT_FAST16_TYPE__=long\ int __INT_FAST32_MAX__=9223372036854775807L __INT_FAST32_TYPE__=long\ int __INT_FAST64_MAX__=9223372036854775807L __INT_FAST64_TYPE__=long\ int __INT_LEAST64_MAX__=9223372036854775807L __INT_LEAST64_TYPE__=long\ int __LONG_MAX__=9223372036854775807L __LP64__=1 __MMX__=1 __PTRDIFF_MAX__=9223372036854775807L __PTRDIFF_TYPE__=long\ int __SIZEOF_INT128__=16 __SIZEOF_LONG_DOUBLE__=16 __SIZEOF_LONG__=8 __SIZEOF_POINTER__=8 __SIZEOF_PTRDIFF_T__=8 __SIZEOF_SIZE_T__=8 __SIZE_MAX__=18446744073709551615UL __SIZE_TYPE__=long\ unsigned\ int __SSE2_MATH__=1 __SSE2__=1 __SSE_MATH__=1 __SSE__=1 __UINT64_MAX__=18446744073709551615UL __UINT64_TYPE__=long\ unsigned\ int __UINTMAX_MAX__=18446744073709551615UL __UINTMAX_TYPE__=long\ unsigned\ int __UINTPTR_MAX__=18446744073709551615UL __UINTPTR_TYPE__=long\ unsigned\ int __UINT_FAST16_MAX__=18446744073709551615UL __UINT_FAST16_TYPE__=long\ unsigned\ int __UINT_FAST32_MAX__=18446744073709551615UL __UINT_FAST32_TYPE__=long\ unsigned\ int __UINT_FAST64_MAX__=18446744073709551615UL __UINT_FAST64_TYPE__=long\ unsigned\ int __UINT_LEAST64_MAX__=18446744073709551615UL __UINT_LEAST64_TYPE__=long\ unsigned\ int __WCHAR_MAX__=2147483647 __WCHAR_MIN__=(-2147483647\ -\ 1) __WCHAR_TYPE__=int __amd64=1 __amd64__=1 __code_model_small__=1 __k8=1 __k8__=1 __x86_64=1 __x86_64__=1 _FILE_OFFSET_BITS=64 __GLIBC__=2 __GLIBC_MINOR__=2 __GNUC__=3 __GNUC_MINOR__=4 __GNU_LIBRARY__=6 _LARGEFILE_SOURCE=1 _POSIX_C_SOURCE=199506L _POSIX_SOURCE=1 __STDC__=1 __USE_BSD=1 __USE_FILE_OFFSET64=1 __USE_LARGEFILE=1 __USE_MISC=1 __USE_POSIX=1 __USE_POSIX199309=1 __USE_POSIX199506=1 __USE_POSIX2=1 __USE_SVID=1 linux=1 __linux=1 __linux__=1 unix=1 __unix=1 __unix__=1'
+d_casti32='undef'
+d_modflproto='define'
+doublekind='3'
+fpossize='16'
+longdblkind='3'
+need_va_copy='define'
+quadkind='2'
+
+sPRIEUldbl='"LE"'
+sPRIFUldbl='"LF"'
+sPRIGUldbl='"LG"'
+sPRIXU64='"lX"'
+sPRIeldbl='"Le"'
+sPRIfldbl='"Lf"'
+sPRIgldbl='"Lg"'
+sSCNfldbl='"Lf"'
+
+owrt:sig_count='64'
+owrt:sigs='ZERO HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS'
+owrt:sig_name_extra='IOT CLD POLL UNUSED'
+owrt:sig_num_extra='6 17 29 31'
diff --git a/lang/perl/patches/010-musl-compat.patch b/lang/perl/patches/010-musl-compat.patch
new file mode 100644 (file)
index 0000000..8dbad78
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/pp.c
++++ b/pp.c
+@@ -43,7 +43,7 @@ extern Pid_t getpid (void);
+  * Some BSDs and Cygwin default to POSIX math instead of IEEE.
+  * This switches them over to IEEE.
+  */
+-#if defined(LIBM_LIB_VERSION)
++#if defined(LIBM_LIB_VERSION) && (defined(__GLIBC__) || defined(__UCLIBC__))
+     _LIB_VERSION_TYPE _LIB_VERSION = _IEEE_;
+ #endif
diff --git a/lang/perl/patches/020-host-libc-dir-moved-debian+derivatives.patch b/lang/perl/patches/020-host-libc-dir-moved-debian+derivatives.patch
new file mode 100644 (file)
index 0000000..761f8b9
--- /dev/null
@@ -0,0 +1,27 @@
+--- a/hints/linux.sh
++++ b/hints/linux.sh
+@@ -204,6 +204,24 @@ case "$libc" in
+     ;;
+ esac
++# Ubuntu 11.04 (and later, presumably) doesn't keep most libraries
++# (such as -lm) in /lib or /usr/lib.  So we have to ask gcc to tell us
++# where to look.  We don't want gcc's own libraries, however, so we
++# filter those out.
++# This could be conditional on Unbuntu, but other distributions may
++# follow suit, and this scheme seems to work even on rather old gcc's.
++# This unconditionally uses gcc because even if the user is using another
++# compiler, we still need to find the math library and friends, and I don't
++# know how other compilers will cope with that situation.
++# Still, as an escape hatch, allow Configure command line overrides to
++# plibpth to bypass this check.
++case "$plibpth" in
++'') plibpth=`gcc -print-search-dirs | grep libraries |
++      cut -f2- -d= | tr ':' $trnl | grep -v 'gcc'`
++    plibpth="$plibpth"  # Collapse all entries on one line
++    ;;
++esac
++
+ # Are we using ELF?  Thanks to Kenneth Albanowski <kjahds@kjahds.com>
+ # for this test.
+ cat >try.c <<'EOM'
diff --git a/lang/perl/patches/100-fix-cross-compile-endianness-detection.patch b/lang/perl/patches/100-fix-cross-compile-endianness-detection.patch
new file mode 100644 (file)
index 0000000..e187941
--- /dev/null
@@ -0,0 +1,22 @@
+--- a/config_h.SH
++++ b/config_h.SH
+@@ -52,6 +52,19 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#und
+ #ifndef _config_h_
+ #define _config_h_
++#if defined(USE_CROSS_COMPILE) && !defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__)
++#  include <endian.h>
++#  if defined(__BYTE_ORDER) && defined(__LITTLE_ENDIAN) && defined(__BIG_ENDIAN)
++#    if (__BYTE_ORDER == __LITTLE_ENDIAN)
++#      define __LITTLE_ENDIAN__
++#    elif (__BYTE_ORDER == __BIG_ENDIAN)
++#      define __BIG_ENDIAN__
++#    else
++#      error Unknown endianness
++#    endif
++#  endif
++#endif
++
+ /* LOC_SED:
+  *    This symbol holds the complete pathname to the sed program.
+  */
diff --git a/lang/perl/patches/100-musl-compat.patch b/lang/perl/patches/100-musl-compat.patch
deleted file mode 100644 (file)
index 8dbad78..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/pp.c
-+++ b/pp.c
-@@ -43,7 +43,7 @@ extern Pid_t getpid (void);
-  * Some BSDs and Cygwin default to POSIX math instead of IEEE.
-  * This switches them over to IEEE.
-  */
--#if defined(LIBM_LIB_VERSION)
-+#if defined(LIBM_LIB_VERSION) && (defined(__GLIBC__) || defined(__UCLIBC__))
-     _LIB_VERSION_TYPE _LIB_VERSION = _IEEE_;
- #endif
diff --git a/lang/perl/patches/101-fix-cross-compile-endianness-detection.patch b/lang/perl/patches/101-fix-cross-compile-endianness-detection.patch
deleted file mode 100644 (file)
index e187941..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
---- a/config_h.SH
-+++ b/config_h.SH
-@@ -52,6 +52,19 @@ sed <<!GROK!THIS! >$CONFIG_H -e 's!^#und
- #ifndef _config_h_
- #define _config_h_
-+#if defined(USE_CROSS_COMPILE) && !defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__)
-+#  include <endian.h>
-+#  if defined(__BYTE_ORDER) && defined(__LITTLE_ENDIAN) && defined(__BIG_ENDIAN)
-+#    if (__BYTE_ORDER == __LITTLE_ENDIAN)
-+#      define __LITTLE_ENDIAN__
-+#    elif (__BYTE_ORDER == __BIG_ENDIAN)
-+#      define __BIG_ENDIAN__
-+#    else
-+#      error Unknown endianness
-+#    endif
-+#  endif
-+#endif
-+
- /* LOC_SED:
-  *    This symbol holds the complete pathname to the sed program.
-  */
diff --git a/lang/perl/patches/110-always_use_miniperl.patch b/lang/perl/patches/110-always_use_miniperl.patch
new file mode 100644 (file)
index 0000000..f8f8a65
--- /dev/null
@@ -0,0 +1,27 @@
+--- a/Makefile.SH
++++ b/Makefile.SH
+@@ -315,22 +315,11 @@ MINIPERL = \$(LDLIBPTH) ./miniperl\$(EXE
+ !GROK!THIS!
+-case "$usecrosscompile$perl" in
+-define?*)
+-      $spitshell >>$Makefile <<!GROK!THIS!
+-# Macros to invoke a copy of our fully operational perl during the build.
+-PERL_EXE = perl\$(EXE_EXT)
+-RUN_PERL = \$(LDLIBPTH) \$(RUN) $perl\$(EXE_EXT)
+-!GROK!THIS!
+-      ;;
+-*)
+-      $spitshell >>$Makefile <<!GROK!THIS!
++$spitshell >>$Makefile <<!GROK!THIS!
+ # Macros to invoke a copy of our fully operational perl during the build.
+ PERL_EXE = perl\$(EXE_EXT)
+-RUN_PERL = \$(LDLIBPTH) \$(RUN) ./perl\$(EXE_EXT) -Ilib
++RUN_PERL = \$(LDLIBPTH) \$(RUN) ./miniperl\$(EXE_EXT) -Ilib
+ !GROK!THIS!
+-      ;;
+-esac
+ $spitshell >>$Makefile <<!GROK!THIS!
+ # Macros to run our tests
diff --git a/lang/perl/patches/200-host-libc-dir-moved-debian+derivatives.patch b/lang/perl/patches/200-host-libc-dir-moved-debian+derivatives.patch
deleted file mode 100644 (file)
index 761f8b9..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
---- a/hints/linux.sh
-+++ b/hints/linux.sh
-@@ -204,6 +204,24 @@ case "$libc" in
-     ;;
- esac
-+# Ubuntu 11.04 (and later, presumably) doesn't keep most libraries
-+# (such as -lm) in /lib or /usr/lib.  So we have to ask gcc to tell us
-+# where to look.  We don't want gcc's own libraries, however, so we
-+# filter those out.
-+# This could be conditional on Unbuntu, but other distributions may
-+# follow suit, and this scheme seems to work even on rather old gcc's.
-+# This unconditionally uses gcc because even if the user is using another
-+# compiler, we still need to find the math library and friends, and I don't
-+# know how other compilers will cope with that situation.
-+# Still, as an escape hatch, allow Configure command line overrides to
-+# plibpth to bypass this check.
-+case "$plibpth" in
-+'') plibpth=`gcc -print-search-dirs | grep libraries |
-+      cut -f2- -d= | tr ':' $trnl | grep -v 'gcc'`
-+    plibpth="$plibpth"  # Collapse all entries on one line
-+    ;;
-+esac
-+
- # Are we using ELF?  Thanks to Kenneth Albanowski <kjahds@kjahds.com>
- # for this test.
- cat >try.c <<'EOM'
diff --git a/lang/perl/patches/300-add-relink-hack.patch b/lang/perl/patches/300-add-relink-hack.patch
new file mode 100644 (file)
index 0000000..fd3d386
--- /dev/null
@@ -0,0 +1,6 @@
+--- /dev/null
++++ b/relink/Makefile.PL
+@@ -0,0 +1,3 @@
++use ExtUtils::MakeMaker;
++
++WriteMakefile(NAME => "relink");
diff --git a/lang/perl/patches/300-always_use_miniperl.patch b/lang/perl/patches/300-always_use_miniperl.patch
deleted file mode 100644 (file)
index f8f8a65..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
---- a/Makefile.SH
-+++ b/Makefile.SH
-@@ -315,22 +315,11 @@ MINIPERL = \$(LDLIBPTH) ./miniperl\$(EXE
- !GROK!THIS!
--case "$usecrosscompile$perl" in
--define?*)
--      $spitshell >>$Makefile <<!GROK!THIS!
--# Macros to invoke a copy of our fully operational perl during the build.
--PERL_EXE = perl\$(EXE_EXT)
--RUN_PERL = \$(LDLIBPTH) \$(RUN) $perl\$(EXE_EXT)
--!GROK!THIS!
--      ;;
--*)
--      $spitshell >>$Makefile <<!GROK!THIS!
-+$spitshell >>$Makefile <<!GROK!THIS!
- # Macros to invoke a copy of our fully operational perl during the build.
- PERL_EXE = perl\$(EXE_EXT)
--RUN_PERL = \$(LDLIBPTH) \$(RUN) ./perl\$(EXE_EXT) -Ilib
-+RUN_PERL = \$(LDLIBPTH) \$(RUN) ./miniperl\$(EXE_EXT) -Ilib
- !GROK!THIS!
--      ;;
--esac
- $spitshell >>$Makefile <<!GROK!THIS!
- # Macros to run our tests
diff --git a/lang/perl/patches/400-add_microperl_caretx_dependency.patch b/lang/perl/patches/400-add_microperl_caretx_dependency.patch
deleted file mode 100644 (file)
index 1c25fea..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
---- a/Makefile.micro
-+++ b/Makefile.micro
-@@ -22,7 +22,8 @@ O = uav$(_O) udeb$(_O) udoio$(_O) udoop$
-       uregcomp$(_O) uregexec$(_O) urun$(_O) \
-       uscope$(_O) usv$(_O) utaint$(_O) utoke$(_O) \
-       unumeric$(_O) ulocale$(_O) umathoms$(_O) \
--      uuniversal$(_O) uutf8$(_O) uutil$(_O) uperlapi$(_O) ukeywords$(_O)
-+      uuniversal$(_O) uutf8$(_O) uutil$(_O) uperlapi$(_O) ukeywords$(_O) \
-+      ucaretx$(_O)
- microperl:    $(O)
-       $(LD) -o $@ $(O) $(LDFLAGS) $(LIBS)
-@@ -178,6 +179,9 @@ uutil$(_O):        $(HE) util.c
- uperlapi$(_O):        $(HE) perlapi.c perlapi.h
-       $(CC) $(CCFLAGS) -o $@ $(CFLAGS) perlapi.c
-+ucaretx$(_O): $(HE) caretx.c
-+      $(CC) $(CCFLAGS) -o $@ $(CFLAGS) caretx.c
-+
- uuudmap.h umg_data.h: ubitcount.h
- ubitcount.h: ugenerate_uudmap$(_X)
diff --git a/lang/perl/patches/500-add-relink-hack.patch b/lang/perl/patches/500-add-relink-hack.patch
deleted file mode 100644 (file)
index fd3d386..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
---- /dev/null
-+++ b/relink/Makefile.PL
-@@ -0,0 +1,3 @@
-+use ExtUtils::MakeMaker;
-+
-+WriteMakefile(NAME => "relink");
diff --git a/lang/perl/patches/700-tie_fetch_count_t-handle_missing_crypt.patch b/lang/perl/patches/700-tie_fetch_count_t-handle_missing_crypt.patch
new file mode 100644 (file)
index 0000000..32914dd
--- /dev/null
@@ -0,0 +1,28 @@
+Index: perl-5.22.0/t/op/tie_fetch_count.t
+===================================================================
+--- perl-5.22.0.orig/t/op/tie_fetch_count.t
++++ perl-5.22.0/t/op/tie_fetch_count.t
+@@ -250,12 +250,17 @@ for ([chdir=>''],[chmod=>'0,'],[chown=>'
+     check_count "$op $args\\\$tied_glob$postargs";
+ }
+-$dummy  =   crypt $var,0; check_count 'crypt $tied, ...';
+-$dummy  =   crypt 0,$var; check_count 'crypt ..., $tied';
+-$var = substr(chr 256,0,0);
+-$dummy  =   crypt $var,0; check_count 'crypt $tied_utf8, ...';
+-$var = substr(chr 256,0,0);
+-$dummy  =   crypt 0,$var; check_count 'crypt ..., $tied_utf8';
++SKIP: {
++    use Config;
++    skip "crypt() is unavailable", 4, unless defined $Config{'d_crypt'};
++
++    $dummy  =   crypt $var,0; check_count 'crypt $tied, ...';
++    $dummy  =   crypt 0,$var; check_count 'crypt ..., $tied';
++    $var = substr(chr 256,0,0);
++    $dummy  =   crypt $var,0; check_count 'crypt $tied_utf8, ...';
++    $var = substr(chr 256,0,0);
++    $dummy  =   crypt 0,$var; check_count 'crypt ..., $tied_utf8';
++}
+ SKIP:
+ {
diff --git a/lang/perl/patches/710-threads_join-skip_ps_on_busybox.patch b/lang/perl/patches/710-threads_join-skip_ps_on_busybox.patch
new file mode 100644 (file)
index 0000000..27ee757
--- /dev/null
@@ -0,0 +1,83 @@
+perl: Skip $0 test on busybox
+
+This test requires a ps which provides the -f option, as well as suitable output.
+We can't provide either with busybox. Just skip it for now.
+
+Signed-off-by: Marcel Denia <naoir@gmx.net>
+
+Index: perl-5.22.0/dist/threads/t/join.t
+===================================================================
+--- perl-5.22.0.orig/dist/threads/t/join.t
++++ perl-5.22.0/dist/threads/t/join.t
+@@ -110,36 +110,41 @@ sub skip {
+ # We parse ps output so this is OS-dependent.
+ if ($^O eq 'linux') {
+-    # First modify $0 in a subthread.
+-    #print "# mainthread: \$0 = $0\n";
+-    threads->create(sub{ #print "# subthread: \$0 = $0\n";
+-                        $0 = "foobar";
+-                        #print "# subthread: \$0 = $0\n"
+-                 })->join;
+-    #print "# mainthread: \$0 = $0\n";
+-    #print "# pid = $$\n";
+-    if (open PS, "ps -f |") { # Note: must work in (all) systems.
+-        my ($sawpid, $sawexe);
+-        while (<PS>) {
+-            chomp;
+-            #print "# [$_]\n";
+-            if (/^\s*\S+\s+$$\s/) {
+-                $sawpid++;
+-                if (/\sfoobar\s*$/) { # Linux 2.2 leaves extra trailing spaces.
+-                    $sawexe++;
+-                }
+-                last;
+-            }
+-        }
+-        close PS or die;
+-        if ($sawpid) {
+-            ok($sawpid && $sawexe, 'altering $0 is effective');
+-        } else {
+-            skip("\$0 check: did not see pid $$ in 'ps -f |'");
+-        }
+-    } else {
+-        skip("\$0 check: opening 'ps -f |' failed: $!");
+-    }
++      if (readlink('/bin/ps') ne 'busybox') {
++              # First modify $0 in a subthread.
++              #print "# mainthread: \$0 = $0\n";
++              threads->create(sub{ #print "# subthread: \$0 = $0\n";
++                                                      $0 = "foobar";
++                                                      #print "# subthread: \$0 = $0\n"
++                                      })->join;
++              #print "# mainthread: \$0 = $0\n";
++              #print "# pid = $$\n";
++              if (open PS, "ps -f |") { # Note: must work in (all) systems.
++                      my ($sawpid, $sawexe);
++                      while (<PS>) {
++                              chomp;
++                              #print "# [$_]\n";
++                              if (/^\s*\S+\s+$$\s/) {
++                                      $sawpid++;
++                                      if (/\sfoobar\s*$/) { # Linux 2.2 leaves extra trailing spaces.
++                                              $sawexe++;
++                                      }
++                                      last;
++                              }
++                      }
++                      close PS or die;
++                      if ($sawpid) {
++                              ok($sawpid && $sawexe, 'altering $0 is effective');
++                      } else {
++                              skip("\$0 check: did not see pid $$ in 'ps -f |'");
++                      }
++              } else {
++                      skip("\$0 check: opening 'ps -f |' failed: $!");
++              }
++      }
++      else {
++              skip("\$0 check: incompatible with busybox");
++      }
+ } else {
+     skip("\$0 check: only on Linux");
+ }
index 68cd7bb7b5dca45fc509d9c4fa926bd04798f54f..41af50a1c0153aeae1e8e4406af1274427fea426 100644 (file)
@@ -14,6 +14,7 @@ endef
 
 define Package/perlbase-anydbm-file/install
 $(call perlmod/Install,$(1),AnyDBM_File.pm,)
+$(call perlmod/InstallBaseTests,$(1),lib/AnyDBM_File.t)
 endef
 
 $(eval $(call BuildPackage,perlbase-anydbm-file))
@@ -40,7 +41,11 @@ endef
 
 define Package/perlbase-archive/install
 $(call perlmod/Install,$(1),Archive,)
-$(call perlmod/InstallBaseTests,$(1),cpan/Archive-Tar/t)
+$(call perlmod/InstallBaseTests,$(1),cpan/Archive-Tar/bin cpan/Archive-Tar/t)
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(CP) $(PKG_INSTALL_DIR)/usr/bin/ptar $(1)/usr/bin/
+       $(CP) $(PKG_INSTALL_DIR)/usr/bin/ptardiff $(1)/usr/bin/
+       $(CP) $(PKG_INSTALL_DIR)/usr/bin/ptargrep $(1)/usr/bin/
 endef
 
 $(eval $(call BuildPackage,perlbase-archive))
@@ -149,7 +154,7 @@ endef
 
 define Package/perlbase-b/install
 $(call perlmod/Install,$(1),B B.pm auto/B,)
-$(call perlmod/InstallBaseTests,$(1),cpan/B-Debug/t ext/B/t)
+$(call perlmod/InstallBaseTests,$(1),cpan/B-Debug/t ext/B/t lib/B/Deparse-core.t lib/B/Deparse-subclass.t lib/B/Deparse.t)
 endef
 
 $(eval $(call BuildPackage,perlbase-b))
@@ -177,6 +182,7 @@ endef
 
 define Package/perlbase-benchmark/install
 $(call perlmod/Install,$(1),Benchmark.pm,)
+$(call perlmod/InstallBaseTests,$(1),lib/Benchmark.t)
 endef
 
 $(eval $(call BuildPackage,perlbase-benchmark))
@@ -217,6 +223,7 @@ endef
 
 define Package/perlbase-blib/install
 $(call perlmod/Install,$(1),blib.pm,)
+$(call perlmod/InstallBaseTests,$(1),lib/blib.t)
 endef
 
 $(eval $(call BuildPackage,perlbase-blib))
@@ -229,6 +236,7 @@ endef
 
 define Package/perlbase-bytes/install
 $(call perlmod/Install,$(1),bytes.pm bytes_heavy.pl,)
+$(call perlmod/InstallBaseTests,$(1),lib/bytes.t)
 endef
 
 $(eval $(call BuildPackage,perlbase-bytes))
@@ -242,6 +250,7 @@ endef
 
 define Package/perlbase-charnames/install
 $(call perlmod/Install,$(1),_charnames.pm charnames.pm,)
+$(call perlmod/InstallBaseTests,$(1),lib/charnames.t)
 endef
 
 $(eval $(call BuildPackage,perlbase-charnames))
@@ -255,6 +264,7 @@ endef
 
 define Package/perlbase-class/install
 $(call perlmod/Install,$(1),Class,)
+$(call perlmod/InstallBaseTests,$(1),lib/Class/Struct.t)
 endef
 
 $(eval $(call BuildPackage,perlbase-class))
@@ -277,12 +287,11 @@ $(eval $(call BuildPackage,perlbase-compress))
 define Package/perlbase-config
 $(call Package/perlbase-template)
 TITLE:=Config perl module
-DEPENDS+=+perlbase-essential
 endef
 
 define Package/perlbase-config/install
 $(call perlmod/Install,$(1),Config Config.pm Config_git.pl Config_heavy.pl,)
-$(call perlmod/InstallBaseTests,$(1),cpan/Config-Perl-V/t)
+$(call perlmod/InstallBaseTests,$(1),cpan/Config-Perl-V/t lib/Config.t lib/Config/Extensions.t)
 endef
 
 $(eval $(call BuildPackage,perlbase-config))
@@ -319,7 +328,7 @@ $(eval $(call BuildPackage,perlbase-cwd))
 define Package/perlbase-data
 $(call Package/perlbase-template)
 TITLE:=Data perl module
-DEPENDS+=+perlbase-essential
+DEPENDS+=+perlbase-bytes +perlbase-essential
 endef
 
 define Package/perlbase-data/install
@@ -333,11 +342,12 @@ $(eval $(call BuildPackage,perlbase-data))
 define Package/perlbase-db
 $(call Package/perlbase-template)
 TITLE:=DB perl module
-DEPENDS+=+libdb47 +perlbase-essential
+DEPENDS+=+libdb47 +perlbase-essential +perlbase-meta-notation
 endef
 
 define Package/perlbase-db/install
 $(call perlmod/Install,$(1),DB.pm,)
+$(call perlmod/InstallBaseTests,$(1),lib/DB.t)
 endef
 
 $(eval $(call BuildPackage,perlbase-db))
@@ -365,6 +375,7 @@ endef
 
 define Package/perlbase-dbm-filter/install
 $(call perlmod/Install,$(1),DBM_Filter DBM_Filter.pm,)
+$(call perlmod/InstallBaseTests,$(1),lib/DBM_Filter/t lib/dbm_filter_util.pl)
 endef
 
 $(eval $(call BuildPackage,perlbase-dbm-filter))
@@ -393,6 +404,7 @@ endef
 
 define Package/perlbase-diagnostics/install
 $(call perlmod/Install,$(1),diagnostics.pm,)
+$(call perlmod/InstallBaseTests,$(1),lib/diagnostics.t pod/perldiag.pod)
 endef
 
 $(eval $(call BuildPackage,perlbase-diagnostics))
@@ -421,6 +433,7 @@ endef
 
 define Package/perlbase-dirhandle/install
 $(call perlmod/Install,$(1),DirHandle.pm,)
+$(call perlmod/InstallBaseTests,$(1),lib/DirHandle.t)
 endef
 
 $(eval $(call BuildPackage,perlbase-dirhandle))
@@ -447,6 +460,7 @@ endef
 
 define Package/perlbase-dumpvar/install
 $(call perlmod/Install,$(1),dumpvar.pl,)
+$(call perlmod/InstallBaseTests,$(1),lib/dumpvar.t)
 endef
 
 $(eval $(call BuildPackage,perlbase-dumpvar))
@@ -502,6 +516,7 @@ endef
 
 define Package/perlbase-english/install
 $(call perlmod/Install,$(1),English.pm,)
+$(call perlmod/InstallBaseTests,$(1),lib/English.t)
 endef
 
 $(eval $(call BuildPackage,perlbase-english))
@@ -538,11 +553,13 @@ $(eval $(call BuildPackage,perlbase-errno))
 define Package/perlbase-essential
 $(call Package/perlbase-template)
 TITLE:=essential perl module
+DEPENDS+=+perlbase-config
 endef
 
 define Package/perlbase-essential/install
 $(call perlmod/Install,$(1),Carp Carp.pm Exporter Exporter.pm constant.pm deprecate.pm lib.pm locale.pm overload.pm overloading.pm parent.pm strict.pm subs.pm vars.pm warnings warnings.pm,)
-$(call perlmod/InstallBaseTests,$(1),cpan/parent/t dist/Carp/t dist/Exporter/t dist/constant/t dist/lib/t)
+$(call perlmod/Install/NoStrip,$(1),overload/numbers.pm,)
+$(call perlmod/InstallBaseTests,$(1),cpan/parent/t dist/Carp/t dist/Exporter/t dist/constant/t dist/lib/t lib/locale.t lib/overload.t lib/overload64.t lib/overloading.t lib/strict.t lib/subs.t lib/vars.t lib/vars_carp.t lib/warnings.t)
 endef
 
 $(eval $(call BuildPackage,perlbase-essential))
@@ -571,7 +588,7 @@ endef
 define Package/perlbase-extutils/install
 $(call perlmod/Install,$(1),ExtUtils,ExtUtils/MakeMaker/FAQ.pod ExtUtils/MakeMaker/Tutorial.pod ExtUtils/ParseXS.pm ExtUtils/ParseXS/Utilities.pm)
 $(call perlmod/Install/NoStrip,$(1),ExtUtils/ParseXS.pm ExtUtils/ParseXS/Utilities.pm,)
-$(call perlmod/InstallBaseTests,$(1),cpan/ExtUtils-Command/t cpan/ExtUtils-Constant/t cpan/ExtUtils-Install/t cpan/ExtUtils-MakeMaker/t cpan/ExtUtils-Manifest/t dist/ExtUtils-CBuilder/t dist/ExtUtils-ParseXS/t)
+$(call perlmod/InstallBaseTests,$(1),cpan/ExtUtils-Command/t cpan/ExtUtils-Constant/t cpan/ExtUtils-Install/t cpan/ExtUtils-MakeMaker/t cpan/ExtUtils-Manifest/t dist/ExtUtils-CBuilder/t dist/ExtUtils-ParseXS/t lib/ExtUtils/t lib/h2ph.t lib/h2xs.t utils/h2ph utils/h2xs)
 endef
 
 $(eval $(call BuildPackage,perlbase-extutils))
@@ -611,6 +628,7 @@ endef
 
 define Package/perlbase-feature/install
 $(call perlmod/Install,$(1),feature.pm,)
+$(call perlmod/InstallBaseTests,$(1),lib/feature.t lib/feature/unicode_strings.t)
 endef
 
 $(eval $(call BuildPackage,perlbase-feature))
@@ -638,7 +656,7 @@ endef
 define Package/perlbase-file/install
 $(call perlmod/Install,$(1),File auto/File,File/Find.pm)
 $(call perlmod/Install/NoStrip,$(1),File/Find.pm,)
-$(call perlmod/InstallBaseTests,$(1),cpan/File-Fetch/t cpan/File-Path/t cpan/File-Temp/t dist/PathTools/t ext/File-DosGlob/t ext/File-Find/t ext/File-Glob/t)
+$(call perlmod/InstallBaseTests,$(1),cpan/File-Fetch/t cpan/File-Path/t cpan/File-Temp/t dist/PathTools/t ext/File-DosGlob/t ext/File-Find/t ext/File-Glob/t lib/File/Basename.t lib/File/Compare.t lib/File/Copy.t lib/File/stat-7896.t lib/File/stat.t)
 endef
 
 $(eval $(call BuildPackage,perlbase-file))
@@ -666,6 +684,7 @@ endef
 
 define Package/perlbase-filehandle/install
 $(call perlmod/Install,$(1),FileHandle.pm,)
+$(call perlmod/InstallBaseTests,$(1),lib/FileHandle.t)
 endef
 
 $(eval $(call BuildPackage,perlbase-filehandle))
@@ -678,6 +697,7 @@ endef
 
 define Package/perlbase-filetest/install
 $(call perlmod/Install,$(1),filetest.pm,)
+$(call perlmod/InstallBaseTests,$(1),lib/filetest.t)
 endef
 
 $(eval $(call BuildPackage,perlbase-filetest))
@@ -705,6 +725,7 @@ endef
 
 define Package/perlbase-findbin/install
 $(call perlmod/Install,$(1),FindBin.pm,)
+$(call perlmod/InstallBaseTests,$(1),lib/FindBin.t)
 endef
 
 $(eval $(call BuildPackage,perlbase-findbin))
@@ -732,7 +753,7 @@ endef
 
 define Package/perlbase-getopt/install
 $(call perlmod/Install,$(1),Getopt,)
-$(call perlmod/InstallBaseTests,$(1),cpan/Getopt-Long/t)
+$(call perlmod/InstallBaseTests,$(1),cpan/Getopt-Long/t lib/Getopt/Std.t)
 endef
 
 $(eval $(call BuildPackage,perlbase-getopt))
@@ -760,7 +781,7 @@ endef
 
 define Package/perlbase-http-tiny/install
 $(call perlmod/Install,$(1),HTTP/Tiny.pm,)
-$(call perlmod/InstallBaseTests,$(1),cpan/HTTP-Tiny/t)
+$(call perlmod/InstallBaseTests,$(1),cpan/HTTP-Tiny/corpus cpan/HTTP-Tiny/t)
 endef
 
 $(eval $(call BuildPackage,perlbase-http-tiny))
@@ -801,6 +822,7 @@ endef
 
 define Package/perlbase-integer/install
 $(call perlmod/Install,$(1),integer.pm,)
+$(call perlmod/InstallBaseTests,$(1),lib/integer.t)
 endef
 
 $(eval $(call BuildPackage,perlbase-integer))
@@ -856,6 +878,7 @@ endef
 
 define Package/perlbase-less/install
 $(call perlmod/Install,$(1),less.pm,)
+$(call perlmod/InstallBaseTests,$(1),lib/less.t)
 endef
 
 $(eval $(call BuildPackage,perlbase-less))
@@ -916,6 +939,20 @@ endef
 $(eval $(call BuildPackage,perlbase-memoize))
 
 
+define Package/perlbase-meta-notation
+$(call Package/perlbase-template)
+TITLE:=meta_notation module
+DEPENDS+=+perlbase-essential
+endef
+
+define Package/perlbase-meta-notation/install
+$(call perlmod/Install,$(1),meta_notation.pm,)
+$(call perlmod/InstallBaseTests,$(1),lib/meta_notation.t)
+endef
+
+$(eval $(call BuildPackage,perlbase-meta-notation))
+
+
 define Package/perlbase-mime
 $(call Package/perlbase-template)
 TITLE:=MIME perl module
@@ -938,7 +975,7 @@ endef
 
 define Package/perlbase-module/install
 $(call perlmod/Install,$(1),Module,)
-$(call perlmod/InstallBaseTests,$(1),cpan/Module-Load-Conditional/t cpan/Module-Load/t cpan/Module-Loaded/t cpan/Module-Metadata/lib cpan/Module-Metadata/t dist/Module-CoreList/t)
+$(call perlmod/InstallBaseTests,$(1),cpan/Module-Load-Conditional/t cpan/Module-Load/t cpan/Module-Loaded/t cpan/Module-Metadata/corpus cpan/Module-Metadata/lib cpan/Module-Metadata/t dist/Module-CoreList/t)
 endef
 
 $(eval $(call BuildPackage,perlbase-module))
@@ -965,7 +1002,7 @@ endef
 
 define Package/perlbase-net/install
 $(call perlmod/Install,$(1),Net,Net/libnetFAQ.pod)
-$(call perlmod/InstallBaseTests,$(1),cpan/libnet/t dist/Net-Ping/t)
+$(call perlmod/InstallBaseTests,$(1),cpan/libnet/t dist/Net-Ping/t lib/Net/hostent.t lib/Net/netent.t lib/Net/protoent.t lib/Net/servent.t)
 endef
 
 $(eval $(call BuildPackage,perlbase-net))
@@ -1021,6 +1058,7 @@ endef
 
 define Package/perlbase-open/install
 $(call perlmod/Install,$(1),open.pm,)
+$(call perlmod/InstallBaseTests,$(1),lib/open.t)
 endef
 
 $(eval $(call BuildPackage,perlbase-open))
@@ -1075,6 +1113,7 @@ endef
 
 define Package/perlbase-perl5db/install
 $(call perlmod/Install,$(1),perl5db.pl,)
+$(call perlmod/InstallBaseTests,$(1),lib/perl5db.t lib/perl5db/t)
 endef
 
 $(eval $(call BuildPackage,perlbase-perl5db))
@@ -1103,7 +1142,7 @@ endef
 define Package/perlbase-pod/install
 $(call perlmod/Install,$(1),Pod,Pod/Usage.pm)
 $(call perlmod/Install/NoStrip,$(1),Pod/Usage.pm,)
-$(call perlmod/InstallBaseTests,$(1),cpan/Pod-Checker/t cpan/Pod-Escapes/t cpan/Pod-Parser/lib cpan/Pod-Parser/scripts cpan/Pod-Parser/t cpan/Pod-Perldoc/t cpan/Pod-Simple/t cpan/Pod-Usage/scripts cpan/Pod-Usage/t cpan/podlators/t ext/Pod-Functions/Functions.pm ext/Pod-Functions/t ext/Pod-Html/t)
+$(call perlmod/InstallBaseTests,$(1),cpan/Pod-Checker/t cpan/Pod-Escapes/t cpan/Pod-Parser/lib cpan/Pod-Parser/scripts cpan/Pod-Parser/t cpan/Pod-Perldoc/t cpan/Pod-Simple/t cpan/Pod-Usage/scripts cpan/Pod-Usage/t cpan/podlators/t ext/Pod-Functions/Functions.pm ext/Pod-Functions/t ext/Pod-Html/t lib/Pod/t)
        $(INSTALL_DIR) $(1)/usr/bin
        $(CP) $(PKG_INSTALL_DIR)/usr/bin/pod2man $(1)/usr/bin/
        $(CP) $(PKG_INSTALL_DIR)/usr/bin/pod2text $(1)/usr/bin/
@@ -1161,7 +1200,7 @@ DEPENDS+=+perlbase-essential +perlbase-list
 endef
 
 define Package/perlbase-scalar/install
-$(call perlmod/Install,$(1),Scalar,)
+$(call perlmod/Install,$(1),Scalar Sub,)
 $(call perlmod/InstallBaseTests,$(1),cpan/Scalar-List-Utils/t)
        $(INSTALL_DIR) $(1)/$(PERL_TESTSDIR)/cpan/Scalar-List-Utils/blib
 endef
@@ -1205,6 +1244,7 @@ endef
 
 define Package/perlbase-selectsaver/install
 $(call perlmod/Install,$(1),SelectSaver.pm,)
+$(call perlmod/InstallBaseTests,$(1),lib/SelectSaver.t)
 endef
 
 $(eval $(call BuildPackage,perlbase-selectsaver))
@@ -1227,11 +1267,12 @@ $(eval $(call BuildPackage,perlbase-selfloader))
 define Package/perlbase-sigtrap
 $(call Package/perlbase-template)
 TITLE:=sigtrap perl module
-DEPENDS+=+perlbase-essential
+DEPENDS+=+perlbase-essential +perlbase-meta-notation
 endef
 
 define Package/perlbase-sigtrap/install
 $(call perlmod/Install,$(1),sigtrap.pm,)
+$(call perlmod/InstallBaseTests,$(1),lib/sigtrap.t)
 endef
 
 $(eval $(call BuildPackage,perlbase-sigtrap))
@@ -1259,6 +1300,7 @@ endef
 
 define Package/perlbase-sort/install
 $(call perlmod/Install,$(1),sort.pm,)
+$(call perlmod/InstallBaseTests,$(1),lib/sort.t)
 endef
 
 $(eval $(call BuildPackage,perlbase-sort))
@@ -1286,6 +1328,7 @@ endef
 
 define Package/perlbase-symbol/install
 $(call perlmod/Install,$(1),Symbol.pm,)
+$(call perlmod/InstallBaseTests,$(1),lib/Symbol.t)
 endef
 
 $(eval $(call BuildPackage,perlbase-symbol))
@@ -1339,7 +1382,7 @@ DEPENDS+=+perlbase-base +perlbase-config +perlbase-essential +perlbase-io +perlb
 endef
 
 define Package/perlbase-test/install
-$(call perlmod/Install,$(1),Test Test.pm,Test/Builder.pm Test/Harness/TAP.pod Test/More.pm Test/Tutorial.pod)
+$(call perlmod/Install,$(1),Test Test.pm ok.pm,Test/Builder.pm Test/Harness/TAP.pod Test/More.pm Test/Tutorial.pod)
 $(call perlmod/Install/NoStrip,$(1),Test/Builder.pm Test/More.pm,)
 $(call perlmod/InstallBaseTests,$(1),cpan/Test-Harness/t cpan/Test-Simple/t cpan/Test/t)
        $(INSTALL_DIR) $(1)/usr/bin
@@ -1371,7 +1414,7 @@ endef
 
 define Package/perlbase-thread/install
 $(call perlmod/Install,$(1),Thread Thread.pm,)
-$(call perlmod/InstallBaseTests,$(1),dist/Thread-Queue/t dist/Thread-Semaphore/t)
+$(call perlmod/InstallBaseTests,$(1),dist/Thread-Queue/t dist/Thread-Semaphore/t lib/Thread.t)
 endef
 
 $(eval $(call BuildPackage,perlbase-thread))
@@ -1399,7 +1442,7 @@ endef
 
 define Package/perlbase-tie/install
 $(call perlmod/Install,$(1),Tie auto/Tie,)
-$(call perlmod/InstallBaseTests,$(1),cpan/Tie-RefHash/t dist/Tie-File/t ext/Tie-Hash-NamedCapture/t ext/Tie-Memoize/lib/Tie/Memoize.pm ext/Tie-Memoize/t)
+$(call perlmod/InstallBaseTests,$(1),cpan/Tie-RefHash/t dist/Tie-File/t ext/Tie-Hash-NamedCapture/t ext/Tie-Memoize/lib/Tie/Memoize.pm ext/Tie-Memoize/t lib/Tie/Array/push.t lib/Tie/Array/splice.t lib/Tie/Array/std.t lib/Tie/Array/stdpush.t lib/Tie/ExtraHash.t lib/Tie/Handle/stdhandle.t lib/Tie/Handle/stdhandle_from_handle.t lib/Tie/Hash.t lib/Tie/Scalar.t lib/Tie/SubstrHash.t)
 endef
 
 $(eval $(call BuildPackage,perlbase-tie))
@@ -1413,7 +1456,7 @@ endef
 
 define Package/perlbase-time/install
 $(call perlmod/Install,$(1),Time auto/Time,)
-$(call perlmod/InstallBaseTests,$(1),cpan/Time-HiRes/t cpan/Time-Local/t cpan/Time-Piece/t)
+$(call perlmod/InstallBaseTests,$(1),cpan/Time-HiRes/t cpan/Time-Local/t cpan/Time-Piece/t lib/Time/gmtime.t lib/Time/localtime.t)
 endef
 
 $(eval $(call BuildPackage,perlbase-time))
@@ -1427,7 +1470,7 @@ endef
 
 define Package/perlbase-unicode/install
 $(call perlmod/Install,$(1),Unicode auto/Unicode,)
-$(call perlmod/InstallBaseTests,$(1),cpan/Unicode-Collate/t cpan/Unicode-Normalize/t)
+$(call perlmod/InstallBaseTests,$(1),cpan/Unicode-Collate/t cpan/Unicode-Normalize/t lib/Unicode/UCD.t)
 endef
 
 $(eval $(call BuildPackage,perlbase-unicode))
@@ -1440,6 +1483,7 @@ endef
 
 define Package/perlbase-unicore/install
 $(call perlmod/Install,$(1),unicore,)
+$(call perlmod/InstallBaseTests,$(1),lib/unicore/NameAliases.txt lib/unicore/PropValueAliases.txt lib/unicore/PropertyAliases.txt lib/unicore/UnicodeData.txt)
 endef
 
 $(eval $(call BuildPackage,perlbase-unicore))
@@ -1465,6 +1509,7 @@ endef
 
 define Package/perlbase-user/install
 $(call perlmod/Install,$(1),User,)
+$(call perlmod/InstallBaseTests,$(1),lib/User/grent.t lib/User/pwent.t)
 endef
 
 $(eval $(call BuildPackage,perlbase-user))
@@ -1478,6 +1523,7 @@ endef
 
 define Package/perlbase-utf8/install
 $(call perlmod/Install,$(1),utf8.pm utf8_heavy.pl,)
+$(call perlmod/InstallBaseTests,$(1),lib/utf8.t)
 endef
 
 $(eval $(call BuildPackage,perlbase-utf8))
@@ -1510,4 +1556,4 @@ endef
 $(eval $(call BuildPackage,perlbase-xsloader))
 
 
-# Generated Mon Jun 15 15:00:59 2015
+# Generated Fri Sep 25 07:47:59 2015
index df5de2a724d11359330fbaf016c0cd7771c491a0..a6f4eaaf933eb9ef18b7ff09e54e7791b61d00c0 100644 (file)
@@ -104,7 +104,7 @@ define perlmod/Configure
                LINKTYPE=dynamic \
                DESTDIR=$(PKG_INSTALL_DIR) \
        );
-       sed 's!^PERL_INC = .*!PERL_INC = $(STAGING_DIR)/usr/lib/perl5/$(PERL_VERSION)/CORE/!' -i $(PKG_BUILD_DIR)/Makefile
+       sed 's!^PERL_INC = .*!PERL_INC = $(STAGING_DIR)/usr/lib/perl5/$(PERL_VERSION)/CORE/!' -i $(if $(3),$(3),$(PKG_BUILD_DIR))/Makefile
 endef
 
 define perlmod/Compile
index 0be18c68442fdc7f5949b3a39df576676e9b3359..cc31822fbeb350c742300e5f7f92ab95c8a04e2b 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=php
-PKG_VERSION:=5.6.12
+PKG_VERSION:=5.6.15
 PKG_RELEASE:=1
 
 PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org>, Michael Heimpold <mhei@heimpold.de>
@@ -18,7 +18,7 @@ PKG_LICENSE_FILES:=LICENSE
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=http://www.php.net/distributions/
-PKG_MD5SUM:=4578dee9d979114610a444bee263ed9b
+PKG_MD5SUM:=bdfa8fb1b895a25e1cc05c162f9ae5fc
 
 PKG_FIXUP:=libtool autoreconf
 PKG_BUILD_PARALLEL:=1
index 4b5ff5b6244798466e7f80ae04e0c927246d14d2..bfbed435c70baae758268081f8fb5ba018c2587c 100644 (file)
@@ -18,9 +18,8 @@ r3: fix a crash if /usr/share/zoneinfo doesn't exist (Raphael Geissert)
 r2: add filesystem trawl to set up name alias index
 r1: initial revision
 
-diff -Naur php-5.6.9.orig/ext/date/lib/parse_tz.c php-5.6.9/ext/date/lib/parse_tz.c
---- php-5.6.9.orig/ext/date/lib/parse_tz.c     2015-05-14 01:13:33.000000000 +0200
-+++ php-5.6.9/ext/date/lib/parse_tz.c  2015-05-18 22:40:55.000000000 +0200
+--- a/ext/date/lib/parse_tz.c
++++ b/ext/date/lib/parse_tz.c
 @@ -18,8 +18,22 @@
  
  /* $Id$ */
@@ -44,12 +43,12 @@ diff -Naur php-5.6.9.orig/ext/date/lib/parse_tz.c php-5.6.9/ext/date/lib/parse_t
  #include <stdio.h>
  
  #ifdef HAVE_LOCALE_H
-@@ -31,7 +45,12 @@
- #else
+@@ -32,8 +46,12 @@
  #include <strings.h>
  #endif
-+
 +#ifndef HAVE_SYSTEM_TZDATA
+ #define TIMELIB_SUPPORTS_V2DATA
  #include "timezonedb.h"
 +#endif
 +
@@ -57,7 +56,7 @@ diff -Naur php-5.6.9.orig/ext/date/lib/parse_tz.c php-5.6.9/ext/date/lib/parse_t
  
  #if (defined(__APPLE__) || defined(__APPLE_CC__)) && (defined(__BIG_ENDIAN__) || defined(__LITTLE_ENDIAN__))
  # if defined(__LITTLE_ENDIAN__)
-@@ -53,6 +72,11 @@
+@@ -55,6 +73,11 @@ static int read_preamble(const unsigned
  {
        uint32_t version;
  
@@ -69,7 +68,7 @@ diff -Naur php-5.6.9.orig/ext/date/lib/parse_tz.c php-5.6.9/ext/date/lib/parse_t
        /* read ID */
        version = (*tzf)[3] - '0';
        *tzf += 4;
-@@ -296,7 +320,406 @@
+@@ -298,7 +321,406 @@ void timelib_dump_tzinfo(timelib_tzinfo
        }
  }
  
@@ -477,7 +476,7 @@ diff -Naur php-5.6.9.orig/ext/date/lib/parse_tz.c php-5.6.9/ext/date/lib/parse_t
  {
        int left = 0, right = tzdb->index_size - 1;
  #ifdef HAVE_SETLOCALE
-@@ -335,21 +758,90 @@
+@@ -337,21 +759,90 @@ static int seek_to_tz_position(const uns
        return 0;
  }
  
@@ -569,7 +568,7 @@ diff -Naur php-5.6.9.orig/ext/date/lib/parse_tz.c php-5.6.9/ext/date/lib/parse_t
  }
  
  static void skip_64bit_preamble(const unsigned char **tzf, timelib_tzinfo *tz)
-@@ -374,10 +866,12 @@
+@@ -376,10 +867,12 @@ static void read_64bit_header(const unsi
  timelib_tzinfo *timelib_parse_tzfile(char *timezone, const timelib_tzdb *tzdb)
  {
        const unsigned char *tzf;
@@ -583,7 +582,7 @@ diff -Naur php-5.6.9.orig/ext/date/lib/parse_tz.c php-5.6.9/ext/date/lib/parse_t
                tmp = timelib_tzinfo_ctor(timezone);
  
                version = read_preamble(&tzf, tmp);
-@@ -391,7 +885,34 @@
+@@ -393,7 +886,34 @@ timelib_tzinfo *timelib_parse_tzfile(cha
                        skip_64bit_types(&tzf, tmp);
                        skip_posix_string(&tzf, tmp);
                }
@@ -619,10 +618,9 @@ diff -Naur php-5.6.9.orig/ext/date/lib/parse_tz.c php-5.6.9/ext/date/lib/parse_t
        } else {
                tmp = NULL;
        }
-diff -Naur php-5.6.9.orig/ext/date/lib/timelib.m4 php-5.6.9/ext/date/lib/timelib.m4
---- php-5.6.9.orig/ext/date/lib/timelib.m4     2015-05-14 01:13:33.000000000 +0200
-+++ php-5.6.9/ext/date/lib/timelib.m4  2015-05-18 22:31:36.000000000 +0200
-@@ -78,3 +78,17 @@
+--- a/ext/date/lib/timelib.m4
++++ b/ext/date/lib/timelib.m4
+@@ -78,3 +78,17 @@ stdlib.h
  
  dnl Check for strtoll, atoll
  AC_CHECK_FUNCS(strtoll atoll strftime)
diff --git a/lang/python-cffi/Makefile b/lang/python-cffi/Makefile
new file mode 100644 (file)
index 0000000..68368d3
--- /dev/null
@@ -0,0 +1,45 @@
+#
+# Copyright (C) 2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=cffi
+PKG_VERSION:=1.3.0
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://pypi.python.org/packages/source/c/cffi
+PKG_MD5SUM:=a40ed8c8ac653c8fc7d5603711b06eaf
+
+PKG_BUILD_DEPENDS:=python python-setuptools
+
+PKG_LICENSE:=MIT
+PKG_LICENSE_FILES:=LICENSE
+PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
+
+include $(INCLUDE_DIR)/package.mk
+$(call include_mk, python-package.mk)
+
+define Package/python-cffi
+       SECTION:=lang
+       CATEGORY:=Languages
+       SUBMENU:=Python
+       TITLE:=python-cffi
+       URL:=http://cffi.readthedocs.org/
+       DEPENDS:=+libffi +python-light +python-pycparser
+endef
+
+define Package/python-cffi/description
+Foreign Function Interface for Python calling C code.
+endef
+
+define Build/Compile
+       $(call Build/Compile/PyMod,,install --prefix=/usr --root=$(PKG_INSTALL_DIR))
+endef
+
+$(eval $(call PyPackage,python-cffi))
+$(eval $(call BuildPackage,python-cffi))
diff --git a/lang/python-crypto/Makefile b/lang/python-crypto/Makefile
new file mode 100644 (file)
index 0000000..e0a3b7b
--- /dev/null
@@ -0,0 +1,54 @@
+#
+# Copyright (C) 2009-2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=pycrypto
+PKG_VERSION:=2.6.1
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://ftp.dlitz.net/pub/dlitz/crypto/pycrypto/
+PKG_MD5SUM:=55a61a054aa66812daf5161a0d5d7eda
+
+PKG_LICENSE:=Public Domain
+PKG_LICENSE_FILES:=COPYRIGHT
+PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
+
+include $(INCLUDE_DIR)/package.mk
+$(call include_mk, python-package.mk)
+
+define Package/python-crypto
+       SECTION:=lang-python
+       CATEGORY:=Languages
+       SUBMENU:=Python
+       TITLE:=python-crypto
+       URL:=http://www.pycrypto.org/
+       DEPENDS:=+python +libgmp
+endef
+
+define Package/python-crypto/description
+A collection of both secure hash functions (such as MD5 and SHA),
+and various encryption algorithms (AES, DES, IDEA, RSA, ElGamal, etc.).
+endef
+
+define Build/Compile
+       $(call Build/Compile/PyMod,,\
+               install --prefix=/usr --root=$(PKG_INSTALL_DIR),\
+               CONFIG_BIG_ENDIAN="$(CONFIG_BIG_ENDIAN)" \
+       )
+endef
+
+define Package/python-crypto/install
+       $(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)/
+       $(CP) \
+               $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
+               $(1)$(PYTHON_PKG_DIR)/
+endef
+
+$(eval $(call PyPackage,python-crypto))
+$(eval $(call BuildPackage,python-crypto))
diff --git a/lang/python-crypto/patches/001-no-host-paths.patch b/lang/python-crypto/patches/001-no-host-paths.patch
new file mode 100644 (file)
index 0000000..d481627
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/setup.py
++++ b/setup.py
+@@ -370,7 +370,7 @@ kw = {'name':"pycrypto",
+       'ext_modules': plat_ext + [
+             # _fastmath (uses GNU mp library)
+             Extension("Crypto.PublicKey._fastmath",
+-                      include_dirs=['src/','/usr/include/'],
++                      include_dirs=['src/'],
+                       libraries=['gmp'],
+                       sources=["src/_fastmath.c"]),
diff --git a/lang/python-crypto/patches/002-fix-endianness-detect.patch b/lang/python-crypto/patches/002-fix-endianness-detect.patch
new file mode 100644 (file)
index 0000000..baed012
--- /dev/null
@@ -0,0 +1,13 @@
+--- a/setup.py
++++ b/setup.py
+@@ -100,6 +100,10 @@
+         w(kwd.get("end", "\n"))
+ def endianness_macro():
++    if os.environ["CONFIG_BIG_ENDIAN"] == "y":
++        return ('PCT_BIG_ENDIAN', 1)
++    else:
++        return ('PCT_LITTLE_ENDIAN', 1)
+     s = struct.pack("@I", 0x33221100)
+     if s == "\x00\x11\x22\x33".encode():     # little endian
+         return ('PCT_LITTLE_ENDIAN', 1)
diff --git a/lang/python-enum34/Makefile b/lang/python-enum34/Makefile
new file mode 100644 (file)
index 0000000..5decd7c
--- /dev/null
@@ -0,0 +1,44 @@
+#
+# Copyright (C) 2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=enum34
+PKG_VERSION:=1.0.4
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://pypi.python.org/packages/source/e/enum34
+PKG_MD5SUM:=ac80f432ac9373e7d162834b264034b6
+
+PKG_LICENSE:=BSD-3-Clause
+PKG_LICENSE_FILES:=enum/LICENSE
+PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
+
+include $(INCLUDE_DIR)/package.mk
+$(call include_mk, python-package.mk)
+
+define Package/python-enum34
+       SECTION:=lang
+       CATEGORY:=Languages
+       SUBMENU:=Python
+       TITLE:=python-enum34
+       URL:=https://pypi.python.org/pypi/enum34/
+       DEPENDS:=+python-light
+endef
+
+define Package/python-enum34/description
+enum34 is the new Python stdlib enum module available in Python 3.4
+backported for previous versions of Python from 2.4 to 3.3.
+endef
+
+define Build/Compile
+       $(call Build/Compile/PyMod,,install --prefix=/usr --root=$(PKG_INSTALL_DIR))
+endef
+
+$(eval $(call PyPackage,python-enum34))
+$(eval $(call BuildPackage,python-enum34))
diff --git a/lang/python-idna/Makefile b/lang/python-idna/Makefile
new file mode 100644 (file)
index 0000000..af0b860
--- /dev/null
@@ -0,0 +1,48 @@
+#
+# Copyright (C) 2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=idna
+PKG_VERSION:=2.0
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://pypi.python.org/packages/source/i/idna
+PKG_MD5SUM:=bd17a9d15e755375f48a62c13b25b801
+
+PKG_BUILD_DEPENDS:=python python-setuptools
+
+PKG_LICENSE:=BSD-3-Clause
+PKG_LICENSE_FILES:=LICENSE.rst
+PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
+
+include $(INCLUDE_DIR)/package.mk
+$(call include_mk, python-package.mk)
+
+define Package/python-idna
+       SECTION:=lang
+       CATEGORY:=Languages
+       SUBMENU:=Python
+       TITLE:=python-idna
+       URL:=https://github.com/kjd/idna
+       DEPENDS:=+python-light
+endef
+
+define Package/python-idna/description
+A library to support the Internationalised Domain Names in Applications
+(IDNA) protocol as specified in RFC 5891. This version of the protocol
+is often referred to as "IDNA2008" and can produce different results
+from the earlier standard from 2003.
+endef
+
+define Build/Compile
+       $(call Build/Compile/PyMod,,install --prefix=/usr --root=$(PKG_INSTALL_DIR))
+endef
+
+$(eval $(call PyPackage,python-idna))
+$(eval $(call BuildPackage,python-idna))
diff --git a/lang/python-ipaddress/Makefile b/lang/python-ipaddress/Makefile
new file mode 100644 (file)
index 0000000..65b4a05
--- /dev/null
@@ -0,0 +1,44 @@
+#
+# Copyright (C) 2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=ipaddress
+PKG_VERSION:=1.0.15
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://pypi.python.org/packages/source/i/ipaddress
+PKG_MD5SUM:=12915e923b738107e47827478d553ba1
+
+PKG_BUILD_DEPENDS:=python python-setuptools
+
+PKG_LICENSE:=Python-2.0
+PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
+
+include $(INCLUDE_DIR)/package.mk
+$(call include_mk, python-package.mk)
+
+define Package/python-ipaddress
+       SECTION:=lang
+       CATEGORY:=Languages
+       SUBMENU:=Python
+       TITLE:=python-ipaddress
+       URL:=https://github.com/phihag/ipaddress
+       DEPENDS:=+python-light
+endef
+
+define Package/python-ipaddress/description
+Python 3.3+'s ipaddress for Python 2.6, 2.7, 3.2.
+endef
+
+define Build/Compile
+       $(call Build/Compile/PyMod,,install --prefix=/usr --root=$(PKG_INSTALL_DIR))
+endef
+
+$(eval $(call PyPackage,python-ipaddress))
+$(eval $(call BuildPackage,python-ipaddress))
diff --git a/lang/python-ply/Makefile b/lang/python-ply/Makefile
new file mode 100644 (file)
index 0000000..ed3fb83
--- /dev/null
@@ -0,0 +1,53 @@
+#
+# Copyright (C) 2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=ply
+PKG_VERSION:=3.8
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://www.dabeaz.com/ply
+PKG_MD5SUM:=94726411496c52c87c2b9429b12d5c50
+
+PKG_BUILD_DEPENDS:=python python-setuptools
+
+PKG_LICENSE:=BSD-3-Clause
+PKG_LICENSE_FILES:=README.md
+PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
+
+include $(INCLUDE_DIR)/package.mk
+$(call include_mk, python-package.mk)
+
+define Package/python-ply
+       SECTION:=lang
+       CATEGORY:=Languages
+       SUBMENU:=Python
+       TITLE:=python-ply
+       URL:=http://www.dabeaz.com/ply/
+       DEPENDS:=+python-light
+endef
+
+define Package/python-ply/description
+PLY is a 100% Python implementation of the common parsing tools lex
+and yacc.
+endef
+
+define Build/Compile
+       $(call Build/Compile/PyMod,,install --prefix=/usr --root=$(PKG_INSTALL_DIR))
+endef
+
+define Build/InstallDev
+       $(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)
+       $(CP) \
+               $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
+               $(1)$(PYTHON_PKG_DIR)
+endef
+
+$(eval $(call PyPackage,python-ply))
+$(eval $(call BuildPackage,python-ply))
diff --git a/lang/python-pyasn1/Makefile b/lang/python-pyasn1/Makefile
new file mode 100644 (file)
index 0000000..07549db
--- /dev/null
@@ -0,0 +1,48 @@
+#
+# Copyright (C) 2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=pyasn1
+PKG_VERSION:=0.1.9
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://pypi.python.org/packages/source/p/pyasn1
+PKG_MD5SUM:=f00a02a631d4016818659d1cc38d229a
+
+PKG_BUILD_DEPENDS:=python python-setuptools
+
+PKG_LICENSE:=BSD-2-Clause
+PKG_LICENSE_FILES:=LICENSE.txt
+PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
+
+include $(INCLUDE_DIR)/package.mk
+$(call include_mk, python-package.mk)
+
+define Package/python-pyasn1
+       SECTION:=lang
+       CATEGORY:=Languages
+       SUBMENU:=Python
+       TITLE:=python-pyasn1
+       URL:=http://pyasn1.sourceforge.net/
+       DEPENDS:=+python-light
+endef
+
+define Package/python-pyasn1/description
+This is an implementation of ASN.1 types and codecs in Python programming
+language. It has been first written to support particular protocol (SNMP)
+but then generalized to be suitable for a wide range of protocols
+based on ASN.1 specification.
+endef
+
+define Build/Compile
+       $(call Build/Compile/PyMod,,install --prefix=/usr --root=$(PKG_INSTALL_DIR))
+endef
+
+$(eval $(call PyPackage,python-pyasn1))
+$(eval $(call BuildPackage,python-pyasn1))
diff --git a/lang/python-pycparser/Makefile b/lang/python-pycparser/Makefile
new file mode 100644 (file)
index 0000000..68dc35a
--- /dev/null
@@ -0,0 +1,52 @@
+#
+# Copyright (C) 2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=pycparser
+PKG_VERSION:=2.14
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://pypi.python.org/packages/source/p/pycparser
+PKG_MD5SUM:=a2bc8d28c923b4fe2b2c3b4b51a4f935
+
+PKG_BUILD_DEPENDS:=python python-setuptools
+
+PKG_LICENSE:=BSD-3-Clause
+PKG_LICENSE_FILES:=LICENSE
+PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
+
+include $(INCLUDE_DIR)/package.mk
+$(call include_mk, python-package.mk)
+
+define Package/python-pycparser
+       SECTION:=lang
+       CATEGORY:=Languages
+       SUBMENU:=Python
+       TITLE:=python-pycparser
+       URL:=https://github.com/eliben/pycparser
+       DEPENDS:=+python-light +python-ply
+endef
+
+define Package/python-pycparser/description
+pycparser is a parser for the C language, written in pure Python. It is a
+module designed to be easily integrated into applications that need to parse
+C source code.
+endef
+
+define PyPackage/python-pycparser/filespec
++|$(PYTHON_PKG_DIR)
+-|$(PYTHON_PKG_DIR)/pycparser/ply
+endef
+
+define Build/Compile
+       $(call Build/Compile/PyMod,,install --prefix=/usr --root=$(PKG_INSTALL_DIR))
+endef
+
+$(eval $(call PyPackage,python-pycparser))
+$(eval $(call BuildPackage,python-pycparser))
diff --git a/lang/python-pycparser/patches/001-use-external-ply.patch b/lang/python-pycparser/patches/001-use-external-ply.patch
new file mode 100644 (file)
index 0000000..96b1d03
--- /dev/null
@@ -0,0 +1,41 @@
+diff --git a/pycparser/c_lexer.py b/pycparser/c_lexer.py
+index cbb9d26..cbd7742 100644
+--- a/pycparser/c_lexer.py
++++ b/pycparser/c_lexer.py
+@@ -9,8 +9,8 @@
+ import re
+ import sys
+-from .ply import lex
+-from .ply.lex import TOKEN
++from ply import lex
++from ply.lex import TOKEN
+ class CLexer(object):
+diff --git a/pycparser/c_parser.py b/pycparser/c_parser.py
+index f4f7453..5c0ca88 100644
+--- a/pycparser/c_parser.py
++++ b/pycparser/c_parser.py
+@@ -8,7 +8,7 @@
+ #------------------------------------------------------------------------------
+ import re
+-from .ply import yacc
++from ply import yacc
+ from . import c_ast
+ from .c_lexer import CLexer
+diff --git a/setup.py b/setup.py
+index fdccbb3..036a10b 100644
+--- a/setup.py
++++ b/setup.py
+@@ -49,7 +49,7 @@ setup(
+     classifiers = [
+         'Programming Language :: Python :: 2',
+         'Programming Language :: Python :: 3',],
+-    packages=['pycparser', 'pycparser.ply'],
++    packages=['pycparser'],
+     package_data={'pycparser': ['*.cfg']},
+     cmdclass={'install': install, 'sdist': sdist},
+ )
index 95e5d7ffa52b647447a7aa3f3d8cd754653a6a4e..c22024b21e9c0720ed872d32920dda44328ee1d0 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=python-setuptools
-PKG_VERSION:=18.2
+PKG_VERSION:=18.5
 PKG_RELEASE:=1
 
 PKG_SOURCE:=setuptools-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://pypi.python.org/packages/source/s/setuptools/
-PKG_MD5SUM:=52b4e48939ef311d7204f8fe940764f4
+PKG_MD5SUM:=533c868f01169a3085177dffe5e768bb
 
 PKG_BUILD_DIR:=$(BUILD_DIR)/setuptools-$(PKG_VERSION)
 
diff --git a/lang/python-setuptools/patches/0002-fix-pyvenv-environment-get.patch b/lang/python-setuptools/patches/0002-fix-pyvenv-environment-get.patch
new file mode 100644 (file)
index 0000000..c46a5f3
--- /dev/null
@@ -0,0 +1,13 @@
+diff --git a/setuptools/command/easy_install.py b/setuptools/command/easy_install.py
+index df1655b..24c34e5 100755
+--- a/setuptools/command/easy_install.py
++++ b/setuptools/command/easy_install.py
+@@ -1885,7 +1885,7 @@ class CommandSpec(list):
+             return param
+         if isinstance(param, list):
+             return cls(param)
+-        if param is None:
++        if param is None or os.environ.get('__PYVENV_LAUNCHER__'):
+             return cls.from_environment()
+         # otherwise, assume it's a string.
+         return cls.from_string(param)
diff --git a/lang/python-six/Makefile b/lang/python-six/Makefile
new file mode 100644 (file)
index 0000000..9f07049
--- /dev/null
@@ -0,0 +1,48 @@
+#
+# Copyright (C) 2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=six
+PKG_VERSION:=1.10.0
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://pypi.python.org/packages/source/s/six
+PKG_MD5SUM:=34eed507548117b2ab523ab14b2f8b55
+
+PKG_BUILD_DEPENDS:=python python-setuptools
+
+PKG_LICENSE:=MIT
+PKG_LICENSE_FILES:=LICENSE
+PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
+
+include $(INCLUDE_DIR)/package.mk
+$(call include_mk, python-package.mk)
+
+define Package/python-six
+       SECTION:=lang
+       CATEGORY:=Languages
+       SUBMENU:=Python
+       TITLE:=python-six
+       URL:=https://pypi.python.org/pypi/six
+       DEPENDS:=+python-light
+endef
+
+define Package/python-six/description
+Six is a Python 2 and 3 compatibility library.  It provides utility functions
+for smoothing over the differences between the Python versions with the goal of
+writing Python code that is compatible on both Python versions.  See the
+documentation for more information on what is provided.
+endef
+
+define Build/Compile
+       $(call Build/Compile/PyMod,,install --prefix=/usr --root=$(PKG_INSTALL_DIR))
+endef
+
+$(eval $(call PyPackage,python-six))
+$(eval $(call BuildPackage,python-six))
index 8cd41af02e905910a2bd9f33e8b848d5233cfd01..698f4bee6d5736aa22f417db7c4879f26e1f2b3e 100644 (file)
@@ -28,7 +28,8 @@ HOST_BUILD_PARALLEL:=1
 PKG_BUILD_DIR:=$(BUILD_DIR)/Python-$(PKG_VERSION)
 HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/Python-$(PKG_VERSION)
 
-PKG_BUILD_DEPENDS:=libbz2/host python/host
+PKG_BUILD_DEPENDS:=python/host
+HOST_BUILD_DEPENDS:=bzip2/host
 
 include $(INCLUDE_DIR)/host-build.mk
 include $(INCLUDE_DIR)/package.mk
index 5ab35195dd6c2ec6ce4a3c66fbab19cb196db0b6..b4be3a8ee98569b86656561c098a752ee7feb3af 100644 (file)
@@ -103,6 +103,7 @@ define Build/Compile/PyMod
                cd $(PKG_BUILD_DIR)/$(strip $(1)); \
                CC="$(TARGET_CC)" \
                CCSHARED="$(TARGET_CC) $(FPIC)" \
+               CXX="$(TARGET_CXX)" \
                LD="$(TARGET_CC)" \
                LDSHARED="$(TARGET_CC) -shared" \
                CFLAGS="$(TARGET_CFLAGS)" \
index e68f415fbf1480c1c932caf843af7753a28ddbcb..fa3d6e62e861b7d891b06098acc4874fca69288d 100644 (file)
@@ -14,12 +14,12 @@ PYTHON_VERSION:=$(PYTHON3_VERSION)
 PYTHON_VERSION_MICRO:=$(PYTHON3_VERSION_MICRO)
 
 PKG_NAME:=python3
-PKG_RELEASE:=3
+PKG_RELEASE:=1
 PKG_VERSION:=$(PYTHON_VERSION).$(PYTHON_VERSION_MICRO)
 
 PKG_SOURCE:=Python-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=http://www.python.org/ftp/python/$(PKG_VERSION)
-PKG_MD5SUM:=7d092d1bba6e17f0d9bd21b49e441dd5
+PKG_MD5SUM:=d149d2812f10cbe04c042232e7964171
 
 PKG_LICENSE:=PSF
 PKG_LICENSE_FILES:=LICENSE Modules/_ctypes/libffi_msvc/LICENSE Modules/_ctypes/darwin/LICENSE Modules/_ctypes/libffi/LICENSE Modules/_ctypes/libffi_osx/LICENSE Tools/pybench/LICENSE
@@ -31,7 +31,7 @@ HOST_BUILD_PARALLEL:=1
 PKG_BUILD_DIR:=$(BUILD_DIR)/Python-$(PKG_VERSION)
 HOST_BUILD_DIR:=$(BUILD_DIR_HOST)/Python-$(PKG_VERSION)
 
-PKG_BUILD_DEPENDS:=python3/host
+PKG_BUILD_DEPENDS:=libbz2/host expat/host python3/host
 
 include $(INCLUDE_DIR)/host-build.mk
 include $(INCLUDE_DIR)/package.mk
@@ -77,15 +77,9 @@ define Package/python3-light/description
   into separate packages.
 endef
 
-# Define newline here, since it's not defined in OpenWRT
-define newline
-
-
-endef
-
 PYTHON3_LIB_FILES_DEL:=
 PYTHON3_PACKAGES:=
-PYTHON3_SO_SUFFIX:=cpython-34.so
+PYTHON3_SO_SUFFIX:=cpython-$(PYTHON3_VERSION_MAJOR)$(PYTHON3_VERSION_MINOR).so
 define Py3BasePackage
   PYTHON3_PACKAGES+=$(1)
   PYTHON3_LIB_FILES_DEL+=$(2)
@@ -109,6 +103,7 @@ endef
 MAKE_FLAGS+=\
        CROSS_COMPILE=yes \
        LD="$(TARGET_CC)" \
+       FREEZE_IMPORTLIB=_freeze_importlib \
        PGEN=pgen3
 
 ifeq ($(ARCH),i386)
@@ -224,6 +219,7 @@ HOST_CONFIGURE_ARGS+= \
        --without-pymalloc \
        --with-threads \
        --prefix=$(STAGING_DIR_HOST) \
+       --with-system-expat=$(STAGING_DIR_HOST) \
        --with-ensurepip=upgrade \
        CONFIG_SITE= \
        CFLAGS="$(HOST_CFLAGS)"
@@ -237,6 +233,7 @@ define Host/Install
        $(INSTALL_DIR) $(STAGING_DIR_HOST)/bin/
        $(MAKE) -C $(HOST_BUILD_DIR) install
        $(INSTALL_BIN) $(HOST_BUILD_DIR)/Parser/pgen $(STAGING_DIR_HOST)/bin/pgen3
+       $(INSTALL_BIN) $(HOST_BUILD_DIR)/Programs/_freeze_importlib $(STAGING_DIR_HOST)/bin/_freeze_importlib
 endef
 
 $(eval $(call HostBuild))
index e76dc0bc81ba3b26d3c4d78ce445db77d365e032..37a023eb00213c599e64f39cce009584caf3db33 100644 (file)
@@ -5,8 +5,11 @@
 # See /LICENSE for more information.
 #
 
-PYTHON3_VERSION:=3.4
-PYTHON3_VERSION_MICRO:=3
+PYTHON3_VERSION_MAJOR:=3
+PYTHON3_VERSION_MINOR:=5
+PYTHON3_VERSION_MICRO:=0
+
+PYTHON3_VERSION:=$(PYTHON3_VERSION_MAJOR).$(PYTHON3_VERSION_MINOR)
 
 PYTHON3_DIR:=$(STAGING_DIR)/usr
 PYTHON3_BIN_DIR:=$(PYTHON3_DIR)/bin
index 0291eb198c7c0e9b3b94559c423141f9e873f23a..77c089f5f79f8e46557d7303645755b4c67996d0 100644 (file)
@@ -1,8 +1,8 @@
 diff --git a/Makefile.pre.in b/Makefile.pre.in
-index f36c11d..f2b6c71 100644
+index ce2c0aa..b0c8322 100644
 --- a/Makefile.pre.in
 +++ b/Makefile.pre.in
-@@ -1217,32 +1217,6 @@ libinstall:     build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
+@@ -1256,41 +1256,6 @@ libinstall:     build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
                done; \
        done
        $(INSTALL_DATA) $(srcdir)/LICENSE $(DESTDIR)$(LIBDEST)/LICENSE.txt
@@ -20,7 +20,12 @@ index f36c11d..f2b6c71 100644
 -              -d $(LIBDEST) -f \
 -              -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
 -              $(DESTDIR)$(LIBDEST)
--      -PYTHONPATH=$(DESTDIR)$(LIBDEST)  $(RUNSHARED) \
+-      -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
+-              $(PYTHON_FOR_BUILD) -Wi -OO $(DESTDIR)$(LIBDEST)/compileall.py \
+-              -d $(LIBDEST) -f \
+-              -x 'bad_coding|badsyntax|site-packages|lib2to3/tests/data' \
+-              $(DESTDIR)$(LIBDEST)
+-      -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
 -              $(PYTHON_FOR_BUILD) -Wi $(DESTDIR)$(LIBDEST)/compileall.py \
 -              -d $(LIBDEST)/site-packages -f \
 -              -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
@@ -29,6 +34,10 @@ index f36c11d..f2b6c71 100644
 -              -d $(LIBDEST)/site-packages -f \
 -              -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
 -      -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
+-              $(PYTHON_FOR_BUILD) -Wi -OO $(DESTDIR)$(LIBDEST)/compileall.py \
+-              -d $(LIBDEST)/site-packages -f \
+-              -x badsyntax $(DESTDIR)$(LIBDEST)/site-packages
+-      -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
 -              $(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/Grammar.txt
 -      -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
 -              $(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/PatternGrammar.txt
index f624d58626f8d21c06f416d2f66c8c4e93bb83b8..1da7b8be862af7534c85da526156f745ff9fa909 100644 (file)
@@ -1,17 +1,17 @@
-diff --git a/Python/pythonrun.c b/Python/pythonrun.c
-index 0327830..df41cda 100644
---- a/Python/pythonrun.c
-+++ b/Python/pythonrun.c
-@@ -124,7 +124,7 @@ int Py_InteractiveFlag; /* Needed by Py_FdIsInteractive() below */
- int Py_InspectFlag; /* Needed to determine whether to exit at SystemExit */
- int Py_NoSiteFlag; /* Suppress 'import site' */
- int Py_BytesWarningFlag; /* Warn on str(bytes) and str(buffer) */
--int Py_DontWriteBytecodeFlag; /* Suppress writing bytecode files (*.py[co]) */
-+int Py_DontWriteBytecodeFlag = 1; /* Suppress writing bytecode files (*.py[co]) */
+diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c
+index a17adf7..415b3f6 100644
+--- a/Python/pylifecycle.c
++++ b/Python/pylifecycle.c
+@@ -86,7 +86,7 @@ int Py_BytesWarningFlag; /* Warn on str(bytes) and str(buffer) */
  int Py_UseClassExceptionsFlag = 1; /* Needed by bltinmodule.c: deprecated */
  int Py_FrozenFlag; /* Needed by getpath.c */
  int Py_IgnoreEnvironmentFlag; /* e.g. PYTHONPATH, PYTHONHOME */
-@@ -350,7 +350,7 @@ _Py_InitializeEx_Private(int install_sigs, int install_importlib)
+-int Py_DontWriteBytecodeFlag; /* Suppress writing bytecode files (*.py[co]) */
++int Py_DontWriteBytecodeFlag = 1; /* Suppress writing bytecode files (*.py[co]) */
+ int Py_NoUserSiteDirectory = 0; /* for -s and site.py */
+ int Py_UnbufferedStdioFlag = 0; /* Unbuffered binary std{in,out,err} */
+ int Py_HashRandomizationFlag = 0; /* for -R and PYTHONHASHSEED */
+@@ -309,7 +309,7 @@ _Py_InitializeEx_Private(int install_sigs, int install_importlib)
      if ((p = Py_GETENV("PYTHONOPTIMIZE")) && *p != '\0')
          Py_OptimizeFlag = add_flag(Py_OptimizeFlag, p);
      if ((p = Py_GETENV("PYTHONDONTWRITEBYTECODE")) && *p != '\0')
diff --git a/lang/python3/patches/013-make-freeze-import-lib-into-an-override-able-var.patch b/lang/python3/patches/013-make-freeze-import-lib-into-an-override-able-var.patch
new file mode 100644 (file)
index 0000000..be17d34
--- /dev/null
@@ -0,0 +1,26 @@
+diff --git a/Makefile.pre.in b/Makefile.pre.in
+index ce2c0aa..7df56bf 100644
+--- a/Makefile.pre.in
++++ b/Makefile.pre.in
+@@ -691,17 +691,19 @@ Programs/_testembed: Programs/_testembed.o $(LIBRARY) $(LDLIBRARY) $(PY3LIBRARY)
+ ############################################################################
+ # Importlib
++FREEZE_IMPORTLIB ?= ./Programs/_freeze_importlib
++
+ Programs/_freeze_importlib.o: Programs/_freeze_importlib.c Makefile
+ Programs/_freeze_importlib: Programs/_freeze_importlib.o $(LIBRARY_OBJS_OMIT_FROZEN)
+       $(LINKCC) $(PY_LDFLAGS) -o $@ Programs/_freeze_importlib.o $(LIBRARY_OBJS_OMIT_FROZEN) $(LIBS) $(MODLIBS) $(SYSLIBS) $(LDLAST)
+ Python/importlib_external.h: $(srcdir)/Lib/importlib/_bootstrap_external.py Programs/_freeze_importlib
+-      ./Programs/_freeze_importlib \
++      $(FREEZE_IMPORTLIB) \
+               $(srcdir)/Lib/importlib/_bootstrap_external.py Python/importlib_external.h
+ Python/importlib.h: $(srcdir)/Lib/importlib/_bootstrap.py Programs/_freeze_importlib
+-      ./Programs/_freeze_importlib \
++      $(FREEZE_IMPORTLIB) \
+               $(srcdir)/Lib/importlib/_bootstrap.py Python/importlib.h
diff --git a/lang/python3/patches/014-remove-platform-so-suffix.patch b/lang/python3/patches/014-remove-platform-so-suffix.patch
new file mode 100644 (file)
index 0000000..cbc32d5
--- /dev/null
@@ -0,0 +1,26 @@
+diff --git a/configure b/configure
+index e823a08..84c525f 100755
+--- a/configure
++++ b/configure
+@@ -14365,7 +14365,7 @@ $as_echo_n "checking ABIFLAGS... " >&6; }
+ $as_echo "$ABIFLAGS" >&6; }
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking SOABI" >&5
+ $as_echo_n "checking SOABI... " >&6; }
+-SOABI='cpython-'`echo $VERSION | tr -d .`${ABIFLAGS}${PLATFORM_TRIPLET:+-$PLATFORM_TRIPLET}
++SOABI='cpython-'`echo $VERSION | tr -d .`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SOABI" >&5
+ $as_echo "$SOABI" >&6; }
+diff --git a/configure.ac b/configure.ac
+index 56a73df..1855af5 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -4314,7 +4314,7 @@ AC_SUBST(SOABI)
+ AC_MSG_CHECKING(ABIFLAGS)
+ AC_MSG_RESULT($ABIFLAGS)
+ AC_MSG_CHECKING(SOABI)
+-SOABI='cpython-'`echo $VERSION | tr -d .`${ABIFLAGS}${PLATFORM_TRIPLET:+-$PLATFORM_TRIPLET}
++SOABI='cpython-'`echo $VERSION | tr -d .`
+ AC_MSG_RESULT($SOABI)
+ AC_SUBST(EXT_SUFFIX)
diff --git a/lang/python3/patches/015-abort-on-failed-modules.patch b/lang/python3/patches/015-abort-on-failed-modules.patch
new file mode 100644 (file)
index 0000000..eec488f
--- /dev/null
@@ -0,0 +1,12 @@
+diff --git a/setup.py b/setup.py
+index da67731..928e0de 100644
+--- a/setup.py
++++ b/setup.py
+@@ -293,6 +293,7 @@ class PyBuildExt(build_ext):
+             print("Failed to build these modules:")
+             print_three_column(failed)
+             print()
++            if cross_compiling: sys.exit(1)
+         if self.failed_on_import:
+             failed = self.failed_on_import[:]
diff --git a/lang/tcl/Makefile b/lang/tcl/Makefile
new file mode 100644 (file)
index 0000000..8ed5e0b
--- /dev/null
@@ -0,0 +1,73 @@
+#
+# Copyright (C) 2006-2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=tcl
+PKG_VERSION:=8.6.4
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)$(PKG_VERSION)-src.tar.gz
+PKG_SOURCE_URL:=@SF/$(PKG_NAME)
+PKG_MD5SUM:=d7cbb91f1ded1919370a30edd1534304
+
+PKG_LICENSE:=TCL
+PKG_LICENSE_FILES:=license.terms
+PKG_MAINTAINER:=Joe Mistachkin <joe@mistachkin.com>
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)$(PKG_VERSION)
+
+PKG_FIXUP:=autoreconf
+PKG_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/tcl
+  SUBMENU:=Tcl
+  SECTION:=lang
+  CATEGORY:=Languages
+  DEPENDS:=+libpthread
+  TITLE:=The Tcl language
+  URL:=http://www.tcl.tk/
+endef
+
+define Package/tcl/description
+  Tcl, or Tool Command Language, is a an elegant, versatile, feature-rich,
+  simple-to-learn yet very powerful industrial-strength open-source
+  programming language and development platform. It is renowned for its
+  stability and utility, and its emphasis on providing a cross-platform
+  programming API makes it an ideal choice for an enormous variety of
+  programming jobs.
+endef
+
+CONFIGURE_PATH := unix
+
+CONFIGURE_VARS += \
+       tcl_cv_strtod_unbroken=ok
+
+CONFIGURE_ARGS += \
+       --enable-threads
+
+MAKE_PATH := unix
+
+define Build/InstallDev
+       $(INSTALL_DIR) $(1)/usr/include
+       $(CP) $(PKG_INSTALL_DIR)/usr/include/*.h $(1)/usr/include/
+
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libtcl*.{a,so*} $(1)/usr/lib/
+endef
+
+define Package/tcl/install
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/*.so $(1)/usr/lib
+
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(CP) $(PKG_INSTALL_DIR)/usr/bin/* $(1)/usr/bin
+endef
+
+$(eval $(call BuildPackage,tcl))
diff --git a/lang/tcl/patches/100-disable_tzdata_and_msgs_install.patch b/lang/tcl/patches/100-disable_tzdata_and_msgs_install.patch
new file mode 100644 (file)
index 0000000..1db8f07
--- /dev/null
@@ -0,0 +1,22 @@
+--- a/unix/Makefile.in
++++ b/unix/Makefile.in
+@@ -817,15 +817,15 @@ install-tzdata: tclsh
+       @echo "Installing time zone data"
+       @@LD_LIBRARY_PATH_VAR@="`pwd`:$${@LD_LIBRARY_PATH_VAR@}"; export @LD_LIBRARY_PATH_VAR@; \
+       TCL_LIBRARY="${TCL_BUILDTIME_LIBRARY}"; export TCL_LIBRARY; \
+-      ./tclsh $(TOOL_DIR)/installData.tcl \
+-          $(TOP_DIR)/library/tzdata "$(SCRIPT_INSTALL_DIR)"/tzdata
++      #./tclsh $(TOOL_DIR)/installData.tcl \
++      #    $(TOP_DIR)/library/tzdata "$(SCRIPT_INSTALL_DIR)"/tzdata
+ install-msgs: tclsh
+       @echo "Installing message catalogs"
+       @@LD_LIBRARY_PATH_VAR@="`pwd`:$${@LD_LIBRARY_PATH_VAR@}"; export @LD_LIBRARY_PATH_VAR@; \
+       TCL_LIBRARY="${TCL_BUILDTIME_LIBRARY}"; export TCL_LIBRARY; \
+-      ./tclsh $(TOOL_DIR)/installData.tcl \
+-          $(TOP_DIR)/library/msgs "$(SCRIPT_INSTALL_DIR)"/msgs
++      #./tclsh $(TOOL_DIR)/installData.tcl \
++      #    $(TOP_DIR)/library/msgs "$(SCRIPT_INSTALL_DIR)"/msgs
+ install-doc: doc
+       @for i in "$(MAN_INSTALL_DIR)" "$(MAN1_INSTALL_DIR)" "$(MAN3_INSTALL_DIR)" "$(MANN_INSTALL_DIR)" ; \
diff --git a/lang/tcl/patches/200-fix_mips_build.patch b/lang/tcl/patches/200-fix_mips_build.patch
new file mode 100644 (file)
index 0000000..48485ca
--- /dev/null
@@ -0,0 +1,20 @@
+--- a/generic/tclStrToD.c
++++ b/generic/tclStrToD.c
+@@ -73,7 +73,7 @@ typedef unsigned int fpu_control_t __att
+  * MIPS floating-point units need special settings in control registers
+  * to use gradual underflow as we expect.
+  */
+-#if defined(__mips)
++#if defined(__sgi) && defined(_COMPILER_VERSION)
+ #include <sys/fpu.h>
+ #endif
+ /*
+@@ -2166,7 +2166,7 @@ TclInitDoubleConversion(void)
+     } bitwhack;
+ #endif
+-#if defined(__mips)
++#if defined(__sgi) && defined(_COMPILER_VERSION)
+     union fpc_csr mipsCR;
+     mipsCR.fc_word = get_fpc_csr();
index c8b9c1b585e0b7cbf149a91a15bbef0fd7f6856e..0dc64b7d6a016984588b44d8852b4fffa4157bb0 100644 (file)
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=vala
-PKG_VERSION:=0.28.0
+PKG_VERSION:=0.29.3
 PKG_RELEASE:=1
 PKG_LICENSE:=LGPL-2.1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_SOURCE_URL:=@GNOME/vala/0.28/
-PKG_MD5SUM:=8d4ceac3451a0d5497e7be38e5e4c2ad
+PKG_SOURCE_URL:=@GNOME/vala/0.29/
+PKG_MD5SUM:=939a2a9c20974db9badbc3f910fcae63
 
 PKG_BUILD_DEPENDS:=glib2 glib2/host vala/host
 HOST_BUILD_DEPENDS:=glib2/host
@@ -47,21 +47,21 @@ endef
 
 define Build/InstallDev
        $(INSTALL_DIR) \
-               $(1)/usr/share/vala-0.28/vapi \
+               $(1)/usr/share/vala-0.30/vapi \
                $(1)/usr/lib \
                $(1)/usr/share/pkgconfig \
                $(1)/usr/bin
 
        $(INSTALL_DATA) \
-               $(PKG_INSTALL_DIR)/usr/share/vala-0.28/vapi/* \
-               $(1)/usr/share/vala-0.28/vapi
+               $(PKG_INSTALL_DIR)/usr/share/vala-0.30/vapi/* \
+               $(1)/usr/share/vala-0.30/vapi
 
        $(INSTALL_DATA) \
-               $(PKG_INSTALL_DIR)/usr/lib/libvala-0.28.{so*,la} \
+               $(PKG_INSTALL_DIR)/usr/lib/libvala-0.30.{so*,la} \
                $(1)/usr/lib
 
        $(INSTALL_BIN) \
-               $(PKG_INSTALL_DIR)/usr/bin/{vala,vala-0.28,valac,valac-0.28,vapicheck,vapicheck-0.28,vapigen,vapigen-0.28,vala-gen-introspect,vala-gen-introspect-0.28} \
+               $(PKG_INSTALL_DIR)/usr/bin/{vala,vala-0.30,valac,valac-0.30,vapicheck,vapicheck-0.30,vapigen,vapigen-0.30,vala-gen-introspect,vala-gen-introspect-0.30} \
                $(1)/usr/bin
 
        $(INSTALL_DATA) \
diff --git a/lang/zope-interface/Makefile b/lang/zope-interface/Makefile
new file mode 100644 (file)
index 0000000..3a12229
--- /dev/null
@@ -0,0 +1,56 @@
+#
+# Copyright (C) 2006-2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=zope.interface
+PKG_VERSION:=4.1.3
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://pypi.python.org/packages/source/z/zope.interface
+PKG_MD5SUM:=9ae3d24c0c7415deb249dd1a132f0f79
+
+PKG_BUILD_DEPENDS:=python python-setuptools
+
+PKG_LICENSE:=ZPL-2.1
+PKG_LICENSE_FILES:=LICENSE.txt
+PKG_MAINTAINER:=Jeffery To <jeffery.to@gmail.com>
+
+include $(INCLUDE_DIR)/package.mk
+$(call include_mk, python-package.mk)
+
+define Package/zope-interface
+  SECTION:=lang
+  CATEGORY:=Languages
+  SUBMENU:=Python
+  TITLE:=Zope interface
+  URL:=https://github.com/zopefoundation/zope.interface
+  DEPENDS:=+python-light
+endef
+
+define Package/zope-interface/description
+This package provides an implementation of "object interfaces" for
+Python. Interfaces are a mechanism for labeling objects as conforming to
+a given API or contract. So, this package can be considered as
+implementation of the Design By Contract methodology support in Python.
+endef
+
+define PyPackage/zope-interface/filespec
++|$(PYTHON_PKG_DIR)
+-|$(PYTHON_PKG_DIR)/zope/interface/common/tests
+-|$(PYTHON_PKG_DIR)/zope/interface/tests
+endef
+
+define Build/Compile
+       $(call Build/Compile/PyMod,, \
+               install --prefix="/usr" --root="$(PKG_INSTALL_DIR)" --no-compile, \
+       )
+endef
+
+$(eval $(call PyPackage,zope-interface))
+$(eval $(call BuildPackage,zope-interface))
index 92fb68b1bba5202c9b6a1d69a7e891057136b6d0..646636c3a5a9ed42e06982a179bf52ba07e174db 100644 (file)
@@ -17,7 +17,7 @@ include $(INCLUDE_DIR)/target.mk
 
 PKG_NAME:=boost
 PKG_VERSION:=1_59_0
-PKG_RELEASE:=2
+PKG_RELEASE:=4
 
 PKG_SOURCE:=$(PKG_NAME)_$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@SF/boost
@@ -34,17 +34,22 @@ PKG_USE_MIPS16:=0
 include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/host-build.mk
 
-# For now, the combination TARGET_mpc85xx&&USE_UCLIBC disables boost due to incompatibility
+
 define Package/boost/Default
   SECTION:=libs
   CATEGORY:=Libraries
   TITLE:=Boost C++ source library
   URL:=http://www.boost.org
-  DEPENDS:=@(!(TARGET_mpc85xx&&USE_UCLIBC)) +libstdcpp +libpthread +librt
+  DEPENDS:=+libstdcpp +libpthread +librt
 endef
 
 define Package/boost/description/Default
-  Boost provides free peer-reviewed portable C++ source libraries
+  true
+endef
+
+define Package/boost/description
+This package provides the Boost v1.59 libraries.
+Boost is a set of free, peer-reviewed, portable C++ source libraries.
 endef
 
 BOOST_LIBS =
@@ -72,34 +77,53 @@ define Package/boost/install
   true
 endef
 
-# For now, the combination TARGET_mpc85xx&&USE_UCLIBC disables boost due to incompatibility
+
 define Package/boost
   $(call Package/boost/Default)
   TITLE+= packages
-  DEPENDS:=@(!(TARGET_mpc85xx&&USE_UCLIBC)) +ALL:boost-libs +ALL:boost-test
+  DEPENDS:=+ALL:boost-libs +ALL:boost-test
 endef
 
 define Package/boost/config
-    menu "Select Boost libraries"
+    menu "Select Boost Options"
       depends on PACKAGE_boost
+       comment "Boost compilation options."
+           config boost-static-libs
+               bool "Static Libraries Only"            
+               help 
+                       Static compile of all selected boost libraries.
+               default n
+           
+           config boost-runtime-static
+               bool "Use static version of C and C++ runtimes."                
+               help 
+                       Determines if shared or static version of C and C++ runtimes should be used.
+               default n
+               select boost-static-libs
+
+           config boost-multi-threading
+               bool "Multithread Support"              
+               help 
+                       Compile Boost libraries with multithread support.
+               default y
+    endmenu
 
-    config boost-libs-all
-      bool "Include all Boost libraries"
-      select PACKAGE_boost-libs
-
-   config boost-test-pkg
-     bool "Boost test package"
-     select PACKAGE_boost-test
-
-    comment "Libraries"
-
-    $(foreach lib,$(BOOST_LIBS), \
-        config PACKAGE_boost-$(lib)
-           prompt "Boost $(lib) library"
-
-   )
-
-  endmenu
+    menu "Select Boost libraries"
+      depends on PACKAGE_boost
+               comment "Libraries"
+           config boost-libs-all
+               bool "Include all Boost libraries"
+               select PACKAGE_boost-libs               
+
+               config boost-test-pkg
+               bool "Boost test package"
+               select PACKAGE_boost-test
+           
+       $(foreach lib,$(BOOST_LIBS), \
+               config PACKAGE_boost-$(lib)
+               prompt "Boost $(lib) library"
+               )
+       endmenu
 
 endef
 
@@ -153,18 +177,15 @@ $(eval $(call DefineBoostLibrary,iostreams,,+zlib))
 $(eval $(call DefineBoostLibrary,locale,system,$(ICONV_DEPENDS) +@BUILD_NLS))
 $(eval $(call DefineBoostLibrary,log,system chrono date_time thread filesystem regex,))
 $(eval $(call DefineBoostLibrary,math,,))
-#$(eval $(call DefineBoostLibrary,mpi,,))
+#$(eval $(call DefineBoostLibrary,mpi,,)) # OpenMPI does no exist in OpenWRT at this time.
 $(eval $(call DefineBoostLibrary,program_options,,))
 $(eval $(call DefineBoostLibrary,random,system,))
-
-# We need a beter way to provide this package, information regarding the Python packages
-#  such as Python version and directories locations. 
-# Python 2.7 version is for now hard-coded. Python 3 is (until this date) broken in the trunk tree.
 $(eval $(call DefineBoostLibrary,python,,+PACKAGE_boost-python:python))
+$(eval $(call DefineBoostLibrary,python3,,+PACKAGE_boost-python3:python3))
 $(eval $(call DefineBoostLibrary,regex,,))
 $(eval $(call DefineBoostLibrary,serialization,,))
 $(eval $(call DefineBoostLibrary,signals,,))
-$(eval $(call DefineBoostLibrary,system,,))
+$(eval $(call DefineBoostLibrary,system,,+@boost-multi-threading))
 $(eval $(call DefineBoostLibrary,thread,system chrono atomic,))
 $(eval $(call DefineBoostLibrary,timer,chrono))
 $(eval $(call DefineBoostLibrary,wave,date_time thread filesystem,))
@@ -177,7 +198,7 @@ endef
 CONFIGURE_PREFIX:=$(PKG_INSTALL_DIR)
 TARGET_LDFLAGS += -pthread -lrt
 
-TARGET_CFLAGS += $(if $(CONFIG_SOFT_FLOAT),-DBOOST_NO_FENV_H)
+TARGET_CFLAGS += $(if $(CONFIG_SOFT_FLOAT),-DBOOST_NO_FENV_H) -fPIC
 
 ifneq ($(findstring mips,$(ARCH)),)
     BOOST_ABI = o32
@@ -197,21 +218,29 @@ define Build/Compile
        $(info Selected Boost API $(BOOST_ABI) for architecture $(ARCH) and cpu $(CPU_TYPE) $(CPU_SUBTYPE))
        ( cd $(PKG_BUILD_DIR) ; \
                echo "using gcc : $(ARCH) : $(GNU_TARGET_NAME)-gcc : <compileflags>\"$(TARGET_CFLAGS)\" <cxxflags>\"$(TARGET_CXXFLAGS)\" <linkflags>\"$(TARGET_LDFLAGS)\" ;" > tools/build/src/user-config.jam ; \
+               $(if $(CONFIG_PACKAGE_boost-python3), \
+                       echo "using python : 3.5 : $(STAGING_DIR_ROOT)/usr/bin/python3 : $(STAGING_DIR)/usr/include/python3.5/ ;" >> \
+                               tools/build/src/user-config.jam; \
+               ) \
                $(if $(CONFIG_PACKAGE_boost-python), \
-                       echo "using python : : $(STAGING_DIR_ROOT)/usr/bin/python :     $(STAGING_DIR)/usr/include/python2.7/ ;" >> \
+                       echo "using python : 2.7 : $(STAGING_DIR_ROOT)/usr/bin/python2 :        $(STAGING_DIR)/usr/include/python2.7/ ;" >> \
                                tools/build/src/user-config.jam; \
                ) \
                bjam \
                        '-sBUILD=release <optimization>space <inlining>on <debug-symbols>off' \
+                       --ignore-site-config \
                        --toolset=gcc-$(ARCH) --build-type=minimal --layout=system abi=$(BOOST_ABI) \
                        --disable-long-double \
+                       $(if $(CONFIG_boost-static-libs),link=static,link=shared) \
+                       $(if $(CONFIG_boost-runtime-static),runtime-link=static,runtime-link=shared) \
+                       $(if $(CONFIG_boost-multi-threading),threading=multi,threading=single) \
                        $(CONFIGURE_ARGS) \
                        --without-mpi \
                        $(if $(CONFIG_PACKAGE_boost-test),,--without-test) \
                        $(foreach lib,$(BOOST_LIBS), \
                                $(if $(CONFIG_PACKAGE_boost-$(lib)),,--without-$(lib)) \
                        ) \
-                       $(if $(CONFIG_PACKAGE_boost-locale),boost.locale.iconv=on -sICONV_PATH=$(ICONV_PREFIX) boost.locale.posix=$(if $(USE_UCLIBC),on,off), \
+                       $(if $(CONFIG_PACKAGE_boost-locale),boost.locale.iconv=on -sICONV_PATH=$(ICONV_PREFIX) boost.locale.posix=$(if $(USE_MUSL),on,off), \
                                boost.locale.iconv=off) \
                        \
                        $(if $(CONFIG_PACKAGE_boost-iostreams),-sNO_BZIP2=1 -sZLIB_INCLUDE=$(STAGING_DIR)/usr/include \
@@ -230,8 +259,8 @@ define Build/InstallDev
                # copies _all_ header files - independent of <--with-library>-argument above
 
        $(INSTALL_DIR) $(1)/usr/lib
-       -$(CP) $(PKG_INSTALL_DIR)/lib/*.a $(1)/usr/lib/
-       -$(CP) $(PKG_INSTALL_DIR)/lib/*.so* $(1)/usr/lib/
+       $(CP) -v $(PKG_INSTALL_DIR)/lib/*.a $(1)/usr/lib/ # copies all compiled archive files   
+       $(FIND) $(PKG_INSTALL_DIR)/lib/ -name '*.so*' -exec $(CP) {} $(1)/usr/lib/ \; # copies all the shared objects files
 endef
 
 define Host/Install
@@ -247,22 +276,19 @@ define Package/boost/Default/install
        $(INSTALL_DIR) \
                $(1)/usr/lib
 
-       $(CP) \
-               $(PKG_INSTALL_DIR)/lib/libboost_$(2)*.so* \
-               $(1)/usr/lib/
+       $(FIND) \
+               $(PKG_INSTALL_DIR)/lib/ -name 'libboost_$(2)*.so*' -exec $(CP) {} $(1)/usr/lib/ \;
 endef
 
-define Package/boost-test/install
-       $(INSTALL_DIR) \
-               $(1)/usr/lib
+define Package/boost-test/install      
+               $(INSTALL_DIR) \
+                       $(1)/usr/lib
 
-       $(CP) \
-               $(PKG_INSTALL_DIR)/lib/libboost_unit_test_framework*.so* \
-               $(1)/usr/lib/
-
-       $(CP) \
-               $(PKG_INSTALL_DIR)/lib/libboost_prg_exec_monitor*.so* \
-               $(1)/usr/lib/
+               $(FIND) \
+                       $(PKG_INSTALL_DIR)/lib/ -name 'libboost_unit_test_framework*.so*' -exec $(CP) {} $(1)/usr/lib/ \;
+               
+               $(FIND) \
+                       $(PKG_INSTALL_DIR)/lib/ -name 'libboost_prg_exec_monitor*.so*' -exec $(CP) {} $(1)/usr/lib/ \;  
 endef
 
 define BuildBoostLibrary
index 39bf0bdd7dfc8fb46c044ceb9245b18bfd585e01..90ab6f4cc60b319aa9c62440dd799fd19aae14b2 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=file
-PKG_VERSION:=5.20
+PKG_VERSION:=5.25
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=ftp://ftp.astron.com/pub/file/
-PKG_MD5SUM:=5d5e13eb3e0e13839da869a31790faf2
+PKG_MD5SUM:=e6a972d4e10d9e76407a432f4a63cd4c
 
 PKG_LICENSE:=BSD-2c
 PKG_LICENSE_FILES:=COPYING
@@ -83,6 +83,9 @@ define Package/file/install
        $(SED) "/^#/d" $(PKG_INSTALL_DIR)/usr/share/file/magic
        $(SED) "/^$$$$/d" $(PKG_INSTALL_DIR)/usr/share/file/magic
        $(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/file/magic $(1)/usr/share/misc/
+
+       # For some reason both "magic" and "magic.mgc" MUST exist
+       ln -sf magic $(1)/usr/share/misc/magic.mgc
 endef
 
 define Package/libmagic/install
index 80b9768bb737e542a5980b8bce49c1606869cc1f..d8500e6382d2a63ef27b5be47b5b48ef53879b8d 100644 (file)
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=glib2
-PKG_VERSION:=2.43.4
+PKG_VERSION:=2.44.1
 PKG_RELEASE:=1
 
 PKG_SOURCE:=glib-$(PKG_VERSION).tar.xz
 PKG_BUILD_DIR:=$(BUILD_DIR)/glib-$(PKG_VERSION)
-PKG_SOURCE_URL:=@GNOME/glib/2.43
-PKG_MD5SUM:=2f28879252c660a65aa3139ec499776b
+PKG_SOURCE_URL:=@GNOME/glib/2.44
+PKG_MD5SUM:=83efba4722a9674b97437d1d99af79db
 
 PKG_BUILD_PARALLEL:=1
 HOST_BUILD_PARALLEL:=1
index 8f8ce37abd26b5c710d59ca5516a0ba25f249bcd..602d3f15c51450484dc723108284088e128bc245 100644 (file)
@@ -1,6 +1,6 @@
 --- a/gtk-doc.make
 +++ b/gtk-doc.make
-@@ -267,7 +267,7 @@ uninstall-local:
+@@ -271,7 +271,7 @@ uninstall-local:
  #
  # Require gtk-doc when making dist
  #
index b88859b1f2f736556da5be29d2e95f44470ba860..3ce57fcfc534cd582a619c6d72ae536dc4e8478e 100644 (file)
@@ -1,6 +1,6 @@
 --- a/gio/Makefile.am
 +++ b/gio/Makefile.am
-@@ -700,6 +700,7 @@ bin_PROGRAMS = gio-querymodules glib-com
+@@ -707,6 +707,7 @@ bin_PROGRAMS = gio-querymodules glib-com
  
  glib_compile_resources_LDADD = libgio-2.0.la          \
        $(top_builddir)/gobject/libgobject-2.0.la       \
index f851b9b115206ecea4cdae031cbe8fce3f21bf0d..8dbf7217c0c5ed333ad901b9c83b0a62a5d23e78 100644 (file)
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=gnutls
-PKG_VERSION:=3.4.4.1
+PKG_VERSION:=3.4.6
 PKG_RELEASE:=1
 PKG_USE_MIPS16:=0
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=ftp://ftp.gnutls.org/gcrypt/gnutls/v3.4
-PKG_MD5SUM:=474efaba6fd6c6c6c0ebac2a3f431946
+PKG_MD5SUM:=4f2c4b4483da65de7edfeb050911fafb
 #PKG_FIXUP:=autoreconf gettext-version
 PKG_MAINTAINER:=Nikos Mavrogiannopoulos <nmav@gnutls.org>
 PKG_LICENSE:=LGPLv2.1+
diff --git a/libs/libcanfestival/Makefile b/libs/libcanfestival/Makefile
new file mode 100644 (file)
index 0000000..6d9ce49
--- /dev/null
@@ -0,0 +1,68 @@
+#
+# Copyright (C) 2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=libcanfestival
+PKG_RELEASE:=1
+
+PKG_SOURCE_PROTO:=hg
+PKG_SOURCE_URL:=http://dev.automforge.net/CanFestival-3
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)
+PKG_SOURCE_VERSION:=8bfe0ac00cdb
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.bz2
+
+PKG_MAINTAINER:=Anton Glukhov <anton.a.glukhov@gmail.com>
+PKG_LICENSE:=LGPL-2.1+
+PKG_LICENSE_FILE:=LICENCE
+
+PKG_FIXUP:=autoreconf
+PKG_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/libcanfestival
+  SECTION:=libs
+  CATEGORY:=Libraries
+  TITLE:=Free software CANopen library
+  URL:=http://canfestival.org
+  DEPENDS:=+libpthread +librt
+endef
+
+define Package/libcanfestival/description
+  CanFestival library
+endef
+
+TARGET_CFLAGS += $(FPIC)
+
+CONFIGURE_ARGS := \
+       --cc=$(TARGET_CC) \
+       --cxx=$(TARGET_CXX) \
+       --ld=$(TARGET_CC) \
+       --arch=$(ARCH) \
+       --os=Linux \
+       --kerneldir=$(LINUX_DIR) \
+       --prefix=/usr \
+       --target=unix \
+       --can=socket \
+       --timers=unix \
+       --debug=ERR \
+
+define Build/InstallDev
+       $(INSTALL_DIR) $(1)/usr/include
+       $(CP) $(PKG_INSTALL_DIR)/usr/include/* $(1)/usr/include/
+
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/* $(1)/usr/lib/
+endef
+
+define Package/libcanfestival/install
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libcanfestival_can_socket.so $(1)/usr/lib/
+endef
+
+$(eval $(call BuildPackage,libcanfestival))
diff --git a/libs/libcanfestival/patches/001-sigval-ref-fix.patch b/libs/libcanfestival/patches/001-sigval-ref-fix.patch
new file mode 100644 (file)
index 0000000..7e15ff1
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/drivers/timers_unix/timers_unix.c
++++ b/drivers/timers_unix/timers_unix.c
+@@ -33,7 +33,7 @@
+       }
+ }
+-void timer_notify(sigval_t val)
++void timer_notify(void)
+ {
+       if(gettimeofday(&last_sig,NULL)) {
+               perror("gettimeofday()");
diff --git a/libs/libcanfestival/patches/002-makefile-gcc-linker.patch b/libs/libcanfestival/patches/002-makefile-gcc-linker.patch
new file mode 100644 (file)
index 0000000..129743f
--- /dev/null
@@ -0,0 +1,33 @@
+--- a/examples/TestMasterMicroMod/Makefile.in
++++ b/examples/TestMasterMicroMod/Makefile.in
+@@ -56,7 +56,7 @@
+ $(TESTMASTERMICROMOD): $(OBJS)
+-      $(LD) $(CFLAGS) $(PROG_CFLAGS) ${PROGDEFINES} $(INCLUDES) -o $@ $(OBJS) $(EXE_CFLAGS)
++      $(CC) $(CFLAGS) $(PROG_CFLAGS) ${PROGDEFINES} $(INCLUDES) -o $@ $(OBJS) $(EXE_CFLAGS)
+       
+ TestMaster.c: TestMaster.od
+--- a/examples/TestMasterSlave/Makefile.in
++++ b/examples/TestMasterSlave/Makefile.in
+@@ -65,7 +65,7 @@
+ $(TESTMASTERSLAVE): $(OBJS)
+-      $(LD) $(CFLAGS) $(PROG_CFLAGS) ${PROGDEFINES} $(INCLUDES) -o $@ $(OBJS) $(EXE_CFLAGS)
++      $(CC) $(CFLAGS) $(PROG_CFLAGS) ${PROGDEFINES} $(INCLUDES) -o $@ $(OBJS) $(EXE_CFLAGS)
+       
+ TestSlave.c: TestSlave.od
+       $(MAKE) -C ../../objdictgen gnosis
+--- a/examples/CANOpenShell/Makefile.in
++++ b/examples/CANOpenShell/Makefile.in
+@@ -64,7 +64,7 @@
+       $(MAKE) -C ../../drivers/$(TARGET) libcanfestival_$(TARGET).a
+ $(CANOPENSHELL): $(OBJS)
+-      $(LD) $(CFLAGS) $(PROG_CFLAGS) ${PROGDEFINES} $(INCLUDES) -o $@ $(OBJS) $(EXE_CFLAGS)
++      $(CC) $(CFLAGS) $(PROG_CFLAGS) ${PROGDEFINES} $(INCLUDES) -o $@ $(OBJS) $(EXE_CFLAGS)
+       mkdir -p Debug; cp $(CANOPENSHELL) Debug
+       
+ CANOpenShellMasterOD.c: CANOpenShellMasterOD.od
diff --git a/libs/libcap/patches/100-portability.patch b/libs/libcap/patches/100-portability.patch
new file mode 100644 (file)
index 0000000..735a973
--- /dev/null
@@ -0,0 +1,19 @@
+--- a/libcap/_makenames.c
++++ b/libcap/_makenames.c
+@@ -7,7 +7,6 @@
+ #include <stdio.h>
+ #include <stdlib.h>
+-#include <sys/capability.h>
+ /*
+  * #include 'sed' generated array
+@@ -22,7 +21,7 @@ struct {
+ };
+ /* this should be more than big enough (factor of three at least) */
+-const char *pointers[8*sizeof(struct __user_cap_data_struct)];
++const char *pointers[8*12];
+ int main(void)
+ {
diff --git a/libs/libcoap/Makefile b/libs/libcoap/Makefile
new file mode 100644 (file)
index 0000000..8e6ef5d
--- /dev/null
@@ -0,0 +1,62 @@
+#
+# Copyright (C) 2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=libcoap
+PKG_RELEASE:=1
+
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL:=https://github.com/obgm/libcoap
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)
+PKG_SOURCE_VERSION:=2da31de732c0e51a9bc9e1d4aea21e25da89cf87
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.bz2
+
+PKG_MAINTAINER:=Anton Glukhov <anton.a.glukhov@gmail.com>
+PKG_LICENSE:=GPL-2.0+ BSD-2-Clause
+PKG_LICENSE_FILE:=COPYING LICENSE.GPL LICENSE.BSD
+
+PKG_FIXUP:=autoreconf
+PKG_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/libcoap
+  SECTION:=libs
+  CATEGORY:=Libraries
+  TITLE:=CoAP (RFC 7252) library
+  URL:=http://libcoap.net/
+endef
+
+define Package/libcoap/description
+  Constrained Application Protocol (RFC 7252) library
+endef
+
+TARGET_CFLAGS += $(FPIC)
+
+CONFIGURE_ARGS += \
+       --disable-examples \
+       --disable-documentation
+
+ifeq ($(CONFIG_BIG_ENDIAN),y)
+TARGET_CFLAGS += -DWORDS_BIGENDIAN
+endif
+
+define Build/InstallDev
+       $(INSTALL_DIR) $(1)/usr/include
+       $(CP) $(PKG_INSTALL_DIR)/usr/include/* $(1)/usr/include/
+
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/* $(1)/usr/lib/
+endef
+
+define Package/libcoap/install
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libcoap-1.so* $(1)/usr/lib/
+endef
+
+$(eval $(call BuildPackage,libcoap))
index 557b31e205f07675fb57e37a5a4dddac2dc99ab5..522eb0649ce5dd156e2137d08e9b97fb1fea0c48 100644 (file)
@@ -10,7 +10,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libdmapsharing
-PKG_VERSION:=2.9.30
+PKG_VERSION:=2.9.32
 PKG_RELEASE:=1
 
 PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org>
@@ -20,7 +20,7 @@ PKG_LICENSE_FILES:=COPYING
 
 PKG_SOURCE:=libdmapsharing-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.flyn.org/projects/libdmapsharing/
-PKG_MD5SUM:=25de55d128d432d82f2a1ec010d7069a
+PKG_MD5SUM:=b0bb27525c92233bd76e5f7b7b6cfe6d
 
 PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1
diff --git a/libs/libestr/Makefile b/libs/libestr/Makefile
new file mode 100644 (file)
index 0000000..9a551f9
--- /dev/null
@@ -0,0 +1,53 @@
+#
+# Copyright (C) 2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=libestr
+PKG_VERSION:=0.1.10
+PKG_RELEASE:=1
+
+PKG_SOURCE_URL:=http://libestr.adiscon.com/files/download/
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_MD5SUM:=f4c9165a23587e77f7efe65d676d5e8e
+
+PKG_MAINTAINER:=Dov Murik <dmurik@us.ibm.com>
+PKG_LICENSE:=LGPL-2.1+
+PKG_LICENSE_FILE:=COPYING
+
+PKG_FIXUP:=autoreconf
+PKG_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/libestr
+  SECTION:=libs
+  CATEGORY:=Libraries
+  TITLE:=String handling library
+  URL:=http://libestr.adiscon.com/
+endef
+
+define Package/libestr/description
+  libestr - some essentials for string handling (and a bit more)
+endef
+
+TARGET_CFLAGS += $(FPIC)
+
+define Build/InstallDev
+       $(INSTALL_DIR) $(1)/usr/include
+       $(CP) $(PKG_INSTALL_DIR)/usr/include/* $(1)/usr/include/
+
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/* $(1)/usr/lib/
+endef
+
+define Package/libestr/install
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libestr.so* $(1)/usr/lib/
+endef
+
+$(eval $(call BuildPackage,libestr))
index c3d2ddc2f9d113b1f3ca57e4f781d9264bdceb8e..f43749482958f3e277336579d96bfc00cfcc1318 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libevdev
-PKG_VERSION:=1.4.3
+PKG_VERSION:=1.4.4
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=http://www.freedesktop.org/software/libevdev/
-PKG_MD5SUM:=2fc170e2d6f543ba26e7c79f95dc1935
+PKG_MD5SUM:=b66443bb664cfaf2ba7b3f8c238ea951
 
 PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=COPYING
index 4d5406bccff23762aeb3b2d82342ff4b742f304e..3dea702e0c9b0684f38625cd0efca5d0ad64098f 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2006-2014 OpenWrt.org
+# Copyright (C) 2006-2015 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libevent
-PKG_VERSION:=1.4.14b
-PKG_RELEASE:=2
+PKG_VERSION:=1.4.15
+PKG_RELEASE:=1
 
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)-stable
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-stable.tar.gz
-PKG_SOURCE_URL:=https://github.com/downloads/libevent/libevent/
-PKG_MD5SUM:=a00e037e4d3f9e4fe9893e8a2d27918c
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-release-$(PKG_VERSION)-stable
+PKG_SOURCE:=release-$(PKG_VERSION)-stable.tar.gz
+PKG_SOURCE_URL:=https://github.com/libevent/libevent/archive/
+PKG_MD5SUM:=6dce6fe39f133c09ffe63de895805f7f
 PKG_MAINTAINER:=Steven Barth <cyrus@openwrt.org>
 
 PKG_FIXUP:=autoreconf
index d68f997a799c3c0f95c078f4ade0f818b4ef7240..ddccc886132e5b51a62b293bb2be38f0ff210648 100644 (file)
@@ -23,6 +23,7 @@ PKG_LICENSE_FILES:=COPYING
 PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
 
 PKG_INSTALL:=1
+PKG_FIXUP:=autoreconf
 
 PLUGINS:= \
        archive:+libarchive-noopenssl \
@@ -53,6 +54,7 @@ PLUGINS:= \
 
 
 include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/nls.mk
 
 CONFIGURE_ARGS += \
        --enable-ffmpeg \
@@ -65,7 +67,7 @@ define Package/libextractor
        CATEGORY:=Libraries
        TITLE:=GNU Libextractor
        URL:=https://www.gnu.org/software/libextractor/
-       DEPENDS:=+libbz2 +libltdl +librt +zlib
+       DEPENDS:=+libbz2 +libltdl +librt +zlib $(ICONV_DEPENDS) $(INTL_DEPENDS)
        MENU:=1
 endef
 
index 1eea6f760321e4939d108945d3daef81fda0ad60..cd16a85ff9dc6f7966d93dbf8d8986de05829947 100644 (file)
@@ -66,7 +66,7 @@ define Build/InstallDev
 
        $(INSTALL_DIR) $(1)/usr/include
        $(CP) \
-               $(PKG_INSTALL_DIR)/usr/lib/libffi-$(PKG_VERSION)/include/*.h \
+               $(PKG_INSTALL_DIR)/usr/include/*.h \
                $(1)/usr/include/
 endef
 
diff --git a/libs/libffi/patches/001-fix-includedir-pkg.patch b/libs/libffi/patches/001-fix-includedir-pkg.patch
new file mode 100644 (file)
index 0000000..812d7a4
--- /dev/null
@@ -0,0 +1,36 @@
+--- a/libffi.pc.in
++++ b/libffi.pc.in
+@@ -1,10 +1,10 @@
+ prefix=@prefix@
+ exec_prefix=@exec_prefix@
+ libdir=@libdir@
+-includedir=${libdir}/@PACKAGE_NAME@-@PACKAGE_VERSION@/include
++includedir=@includedir@
+ Name: @PACKAGE_NAME@
+ Description: Library supporting Foreign Function Interfaces
+ Version: @PACKAGE_VERSION@
+-Libs: -L${libdir} -lffi
+-Cflags: -I${includedir}
++Libs: -lffi
++Cflags:
+--- a/include/Makefile.am
++++ b/include/Makefile.am
+@@ -5,5 +5,5 @@ AUTOMAKE_OPTIONS=foreign
+ DISTCLEANFILES=ffitarget.h
+ EXTRA_DIST=ffi.h.in ffi_common.h
+-includesdir = $(libdir)/@PACKAGE_NAME@-@PACKAGE_VERSION@/include
++includesdir = $(includedir)
+ nodist_includes_HEADERS = ffi.h ffitarget.h
+--- a/include/Makefile.in
++++ b/include/Makefile.in
+@@ -250,7 +250,7 @@ top_srcdir = @top_srcdir@
+ AUTOMAKE_OPTIONS = foreign
+ DISTCLEANFILES = ffitarget.h
+ EXTRA_DIST = ffi.h.in ffi_common.h
+-includesdir = $(libdir)/@PACKAGE_NAME@-@PACKAGE_VERSION@/include
++includesdir = $(includedir)
+ nodist_includes_HEADERS = ffi.h ffitarget.h
+ all: all-am
index 058fd5085a6930532900d50692b9edae82410939..6f6235c43efca1a72cb6d4e6bde2b805f817270f 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libftdi
 PKG_VERSION:=0.20
-PKG_RELEASE:=3
+PKG_RELEASE:=4
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.intra2net.com/en/developer/libftdi/download/
diff --git a/libs/libftdi/patches/102-fix-cmake-include-examples.patch b/libs/libftdi/patches/102-fix-cmake-include-examples.patch
new file mode 100644 (file)
index 0000000..b37a968
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/examples/CMakeLists.txt
++++ b/examples/CMakeLists.txt
+@@ -2,7 +2,7 @@ option(EXAMPLES "Build example programs"
+ if (EXAMPLES)
+     # Includes
+-    include( ${CMAKE_CURRENT_SOURCE_DIR}
++    include_directories( ${CMAKE_CURRENT_SOURCE_DIR}
+             ${CMAKE_CURRENT_BINARY_DIR}
+             )
diff --git a/libs/libgee/Makefile b/libs/libgee/Makefile
new file mode 100644 (file)
index 0000000..87705e3
--- /dev/null
@@ -0,0 +1,69 @@
+#
+# Copyright (C) 2009-2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=libgee
+PKG_VERSION:=0.18.0
+PKG_RELEASE:=1
+
+PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org>
+
+PKG_LICENSE:=LGPL-2.1 
+PKG_LICENSE_FILES:=COPYING
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+PKG_SOURCE_URL:=https://download.gnome.org/sources/libgee/0.18/
+PKG_MD5SUM:=29ea6125e653d7e60b49a9a9544abc96
+
+PKG_FIXUP:=autoreconf
+PKG_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/nls.mk
+
+TARGET_LDFLAGS+= \
+       -Wl,-rpath-link=$(STAGING_DIR)/usr/lib
+
+define Package/libgee
+  SECTION:=libs
+  CATEGORY:=Libraries
+  DEPENDS:=+glib2
+  TITLE:=libgee
+  URL:=https://wiki.gnome.org/Libgee
+endef
+
+define Package/libgee/decription
+  Libgee is an utility library providing GObject-based interfaces and classes
+endef
+
+CONFIGURE_ARGS += \
+       --disable-doc
+
+define Build/InstallDev
+       $(INSTALL_DIR) $(1)/usr/include/
+       $(CP) \
+               $(PKG_INSTALL_DIR)/usr/include/gee-0.8/ \
+               $(1)/usr/include/
+       $(INSTALL_DIR) $(1)/usr/lib/
+       $(CP) \
+               $(PKG_INSTALL_DIR)/usr/lib/*.so* \
+               $(1)/usr/lib/
+       $(INSTALL_DIR) $(1)/usr/lib/pkgconfig/
+       $(INSTALL_DATA) \
+               $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/*.pc \
+               $(1)/usr/lib/pkgconfig/
+endef
+
+define Package/libgee/install
+       $(INSTALL_DIR) $(1)/usr/lib/
+       $(CP) \
+               $(PKG_INSTALL_DIR)/usr/lib/*.so* \
+               $(1)/usr/lib/
+endef
+
+$(eval $(call BuildPackage,libgee))
diff --git a/libs/libgee/patches/libgee-0.18.0-no-introspection.patch b/libs/libgee/patches/libgee-0.18.0-no-introspection.patch
new file mode 100644 (file)
index 0000000..caa6e16
--- /dev/null
@@ -0,0 +1,101 @@
+diff -u --recursive libgee-0.18.0-vanilla/configure.ac libgee-0.18.0/configure.ac
+--- libgee-0.18.0-vanilla/configure.ac 2015-03-23 23:24:39.000000000 -0400
++++ libgee-0.18.0/configure.ac 2015-10-18 07:25:39.474698663 -0400
+@@ -64,10 +64,6 @@
+               enable_consistency_check=$enableval, enable_consistency_check=no)
+ AS_IF([test "x$enable_consistency_check" != xno], [VALA_ADD_VALAFLAGS(-D CONSISTENCY_CHECKS)])
+-GOBJECT_INTROSPECTION_CHECK([0.9.0])
+-
+-VALA_CHECK([0.25.1])
+-
+ AC_OUTPUT([Makefile
+            gee-0.8.pc
+            benchmark/Makefile
+diff -u --recursive libgee-0.18.0-vanilla/gee/Makefile.am libgee-0.18.0/gee/Makefile.am
+--- libgee-0.18.0-vanilla/gee/Makefile.am      2015-03-16 11:23:57.000000000 -0400
++++ libgee-0.18.0/gee/Makefile.am      2015-10-18 10:41:49.759314756 -0400
+@@ -146,29 +146,6 @@
+       gee-0.8.vapi \
+       $(NULL)
+-if HAVE_INTROSPECTION
+-girdir = @INTROSPECTION_GIRDIR@
+-
+-dist_gir_DATA = \
+-      Gee-0.8.gir \
+-      $(NULL)
+-
+-typelibdir = @INTROSPECTION_TYPELIBDIR@
+-typelib_DATA = \
+-      Gee-0.8.typelib \
+-      $(NULL)
+-
+-# Extract dlname from libfolks.la; see bug #658002.
+-# This is what g-ir-scanner does.
+-libgee_dlname = \
+-      `$(SED) -nE "s/^dlname='([A-Za-z0-9.+-]+)'/\1/p" libgee-0.8.la`
+-INTROSPECTION_COMPILER_ARGS= \
+-      -l $(libgee_dlname)
+-Gee-0.8.gir: libgee_0_8_la_vala.stamp
+-Gee-0.8.typelib: Gee-0.8.gir libgee-0.8.la
+-      @INTROSPECTION_COMPILER@ $(INTROSPECTION_COMPILER_ARGS) -o $@ $^
+-endif
+-
+ MOSTLYCLEANFILES = \
+       $(libgee_0_8_la_VALASOURCES:.vala=.c) \
+       libgee_0_8_la_vala.stamp \
+diff -u --recursive libgee-0.18.0-vanilla/gee/Makefile.in libgee-0.18.0/gee/Makefile.in
+--- libgee-0.18.0-vanilla/gee/Makefile.in      2015-03-23 23:25:03.000000000 -0400
++++ libgee-0.18.0/gee/Makefile.in      2015-10-18 11:02:34.888709559 -0400
+@@ -285,14 +285,6 @@
+ INSTALL_PROGRAM = @INSTALL_PROGRAM@
+ INSTALL_SCRIPT = @INSTALL_SCRIPT@
+ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+-INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+-INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+-INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+-INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+-INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+-INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+-INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+-INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+ LCOV = @LCOV@
+ LD = @LD@
+ LDFLAGS = @LDFLAGS@
+@@ -531,25 +523,6 @@
+       gee-0.8.vapi \
+       $(NULL)
+-@HAVE_INTROSPECTION_TRUE@girdir = @INTROSPECTION_GIRDIR@
+-@HAVE_INTROSPECTION_TRUE@dist_gir_DATA = \
+-@HAVE_INTROSPECTION_TRUE@     Gee-0.8.gir \
+-@HAVE_INTROSPECTION_TRUE@     $(NULL)
+-
+-@HAVE_INTROSPECTION_TRUE@typelibdir = @INTROSPECTION_TYPELIBDIR@
+-@HAVE_INTROSPECTION_TRUE@typelib_DATA = \
+-@HAVE_INTROSPECTION_TRUE@     Gee-0.8.typelib \
+-@HAVE_INTROSPECTION_TRUE@     $(NULL)
+-
+-
+-# Extract dlname from libfolks.la; see bug #658002.
+-# This is what g-ir-scanner does.
+-@HAVE_INTROSPECTION_TRUE@libgee_dlname = \
+-@HAVE_INTROSPECTION_TRUE@     `$(SED) -nE "s/^dlname='([A-Za-z0-9.+-]+)'/\1/p" libgee-0.8.la`
+-
+-@HAVE_INTROSPECTION_TRUE@INTROSPECTION_COMPILER_ARGS = \
+-@HAVE_INTROSPECTION_TRUE@     -l $(libgee_dlname)
+-
+ MOSTLYCLEANFILES = \
+       $(libgee_0_8_la_VALASOURCES:.vala=.c) \
+       libgee_0_8_la_vala.stamp \
+@@ -1607,9 +1580,6 @@
+ $(libgee_0_8_la_VALASOURCES:.vala=.c): libgee_0_8_la_vala.stamp
+ gee-0.8.vapi gee-internals-0.8.vapi gee.h gee-internals.h: libgee_0_8_la_vala.stamp
+-@HAVE_INTROSPECTION_TRUE@Gee-0.8.gir: libgee_0_8_la_vala.stamp
+-@HAVE_INTROSPECTION_TRUE@Gee-0.8.typelib: Gee-0.8.gir libgee-0.8.la
+-@HAVE_INTROSPECTION_TRUE@     @INTROSPECTION_COMPILER@ $(INTROSPECTION_COMPILER_ARGS) -o $@ $^
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
+ # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/libs/libgpg-error/patches/001-gcc5.patch b/libs/libgpg-error/patches/001-gcc5.patch
new file mode 100644 (file)
index 0000000..1d886ff
--- /dev/null
@@ -0,0 +1,54 @@
+From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
+Date: Mon, 16 Mar 2015 17:40:12 +0000 (-0400)
+Subject: Avoid breakage with gcc 5
+X-Git-Tag: libgpg-error-1.19~7
+X-Git-Url: http://git.gnupg.org/cgi-bin/gitweb.cgi?p=libgpg-error.git;a=commitdiff_plain;h=c01c8f0c4f55d76b037c7f6aa44ad25ede18d38a
+
+Avoid breakage with gcc 5
+
+* src/Makefile.am: Add -P to the C preprocessor when building
+mkerrcodes.h, to avoid a noisy intermediate pipeline.
+
+--
+
+With gcc 5 without this patch, we see many errors like the following:
+
+gcc -I. -I. -o mkerrcodes ./mkerrcodes.c
+In file included from ./mkerrcodes.c:26:0:
+./mkerrcodes.h:9:5: error: expected expression before ‘,’ token
+   { , "GPG_ERR_E2BIG" },
+     ^
+./mkerrcodes.h:10:5: error: expected expression before ‘,’ token
+   { , "GPG_ERR_EACCES" },
+     ^
+
+This patch cleans up the generated mkerrcodes.h by making the
+intermediate stage clean for all the versions of gcc i tested (4.x and
+5).
+
+Debian-Bug-Id: 777374
+Signed-Off-By: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
+---
+
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -140,7 +140,7 @@ code-to-errno.h: Makefile mkerrnos.awk e
+ # It is correct to use $(CPP).  We want the host's idea of the error codes.
+ mkerrcodes.h: Makefile mkerrcodes.awk $(gpg_extra_headers)
+       $(AWK) -f $(srcdir)/mkerrcodes1.awk $(srcdir)/errnos.in >_$@
+-      $(CPP) $(CPPFLAGS) $(extra_cppflags) _$@ | grep GPG_ERR_ | \
++      $(CPP) $(CPPFLAGS) $(extra_cppflags) -P _$@ | grep GPG_ERR_ | \
+                $(AWK) -f $(srcdir)/mkerrcodes.awk >$@
+       -rm _$@
+--- a/src/Makefile.in
++++ b/src/Makefile.in
+@@ -979,7 +979,7 @@ code-to-errno.h: Makefile mkerrnos.awk e
+ # It is correct to use $(CPP).  We want the host's idea of the error codes.
+ mkerrcodes.h: Makefile mkerrcodes.awk $(gpg_extra_headers)
+       $(AWK) -f $(srcdir)/mkerrcodes1.awk $(srcdir)/errnos.in >_$@
+-      $(CPP) $(CPPFLAGS) $(extra_cppflags) _$@ | grep GPG_ERR_ | \
++      $(CPP) $(CPPFLAGS) $(extra_cppflags) -P _$@ | grep GPG_ERR_ | \
+                $(AWK) -f $(srcdir)/mkerrcodes.awk >$@
+       -rm _$@
index bacd8816e43d7082e1e4574e8e6619ac90a4b9e0..6d9adec24e46569aa379f1197f61dfd4933aab53 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libinput
-PKG_VERSION:=0.21.0
+PKG_VERSION:=1.0.1
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=http://www.freedesktop.org/software/libinput/
-PKG_MD5SUM:=f91d8f4ced986f1ae16d52ea02bc7837
+PKG_MD5SUM:=f390e592aa09f77dabceabeb2ddd4419
 
 PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=COPYING
index adb4aa8be4bd482960f2dd832c1d49bf270e0519..8f5c5a1cacf33716f8f9df2b6b9704eba67f4ae7 100644 (file)
@@ -1,6 +1,6 @@
 --- a/src/libinput-util.c
 +++ b/src/libinput-util.c
-@@ -215,18 +215,10 @@ parse_mouse_wheel_click_angle_property(c
+@@ -216,18 +216,10 @@ parse_mouse_wheel_click_angle_property(c
  double
  parse_trackpoint_accel_property(const char *prop)
  {
index c24d50971b11625f6a055b0440dcb9d3a4be90b4..fd173e5f6c2cbc4ecc8295bda88454d8beede9c4 100644 (file)
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
 # Although liblz4 exports a major.minor.patch version, it isn't always
 # incremented for new releases, so use the release tag instead.
 PKG_NAME:=liblz4
-PKG_VERSION:=r129
+PKG_VERSION:=r131
 PKG_RELEASE:=1
 
 PKG_LICENSE:=BSD-2-Clause
index 9c9dcbae59926afe03a28b3e4dd43dc29a2e57ea..9f9436467a9f19baa9733b2ea203e15f7a008de9 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libmicrohttpd
-PKG_VERSION:=0.9.42
-PKG_RELEASE:=3
+PKG_VERSION:=0.9.44
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@GNU/libmicrohttpd
-PKG_MD5SUM:=3b9cf0b67fc8ebc9e69f53c6bc84a88d
+PKG_MD5SUM:=9101b5ebf8f71792938ae672da314da2
 
 PKG_MAINTAINER:=Martijn Zilverschoon <martijn@friedzombie.com>
 
diff --git a/libs/libmicrohttpd/patches/001-bump-to-r35864.patch b/libs/libmicrohttpd/patches/001-bump-to-r35864.patch
deleted file mode 100644 (file)
index 6558a96..0000000
+++ /dev/null
@@ -1,754 +0,0 @@
---- a/ChangeLog
-+++ b/ChangeLog
-@@ -1,3 +1,14 @@
-+Thu Jun  4 13:37:05 CEST 2015
-+      Fixing memory leak in digest authentication. -AW
-+
-+Wed Jun 03 21:23:47 CEST 2015
-+      Add deprecation compiler messages for deprecated functions 
-+      and macros. -EG
-+
-+Fri May 29 12:23:01 CEST 2015
-+      Fixing digest authentication when used in combination
-+      with escaped characters in URLs. -CG/AW
-+
- Wed May 13 11:49:09 CEST 2015
-       Releasing libmicrohttpd 0.9.42. -CG
---- a/src/microhttpd/response.c
-+++ b/src/microhttpd/response.c
-@@ -24,6 +24,8 @@
-  * @author Christian Grothoff
-  */
-+#define MHD_NO_DEPRECATION 1
-+
- #include "internal.h"
- #include "response.h"
---- a/src/microhttpd/digestauth.c
-+++ b/src/microhttpd/digestauth.c
-@@ -1,6 +1,6 @@
- /*
-      This file is part of libmicrohttpd
--     Copyright (C) 2010, 2011, 2012 Daniel Pittman and Christian Grothoff
-+     Copyright (C) 2010, 2011, 2012, 2015 Daniel Pittman and Christian Grothoff
-      This library is free software; you can redistribute it and/or
-      modify it under the terms of the GNU Lesser General Public
-@@ -472,8 +472,8 @@ test_header (struct MHD_Connection *conn
-  *
-  * @param connection connections with headers to compare against
-  * @param args argument URI string (after "?" in URI)
-- * @return MHD_YES if the arguments match,
-- *         MHD_NO if not
-+ * @return #MHD_YES if the arguments match,
-+ *         #MHD_NO if not
-  */
- static int
- check_argument_match (struct MHD_Connection *connection,
-@@ -508,7 +508,10 @@ check_argument_match (struct MHD_Connect
-                                                connection,
-                                                argp);
-         if (MHD_YES != test_header (connection, argp, NULL))
--          return MHD_NO;
-+      {
-+        free(argb);
-+        return MHD_NO;
-+      }
-         num_headers++;
-         break;
-       }
-@@ -527,10 +530,16 @@ check_argument_match (struct MHD_Connect
-                                            connection,
-                                            equals);
-       if (! test_header (connection, argp, equals))
--      return MHD_NO;
-+      {
-+          free(argb);
-+          return MHD_NO;
-+      }
-+      
-       num_headers++;
-       argp = amper;
-     }
-+    
-+  free(argb);
-   /* also check that the number of headers matches */
-   for (pos = connection->headers_received; NULL != pos; pos = pos->next)
-@@ -632,10 +641,83 @@ MHD_digest_auth_check (struct MHD_Connec
-        header value. */
-     return MHD_NO;
-   }
-+  /* 8 = 4 hexadecimal numbers for the timestamp */
-+  nonce_time = strtoul (nonce + len - 8, (char **)NULL, 16);
-+  t = (uint32_t) MHD_monotonic_time();
-+  /*
-+   * First level vetting for the nonce validity: if the timestamp
-+   * attached to the nonce exceeds `nonce_timeout', then the nonce is
-+   * invalid.
-+   */
-+  if ( (t > nonce_time + nonce_timeout) ||
-+       (nonce_time + nonce_timeout < nonce_time) )
-+    {
-+      /* too old */
-+      return MHD_INVALID_NONCE;
-+    }
-+
-+  calculate_nonce (nonce_time,
-+                   connection->method,
-+                   connection->daemon->digest_auth_random,
-+                   connection->daemon->digest_auth_rand_size,
-+                   connection->url,
-+                   realm,
-+                   noncehashexp);
-+  /*
-+   * Second level vetting for the nonce validity
-+   * if the timestamp attached to the nonce is valid
-+   * and possibly fabricated (in case of an attack)
-+   * the attacker must also know the random seed to be
-+   * able to generate a "sane" nonce, which if he does
-+   * not, the nonce fabrication process going to be
-+   * very hard to achieve.
-+   */
-+
-+  if (0 != strcmp (nonce, noncehashexp))
-+    {
-+      return MHD_INVALID_NONCE;
-+    }
-+  if ( (0 == lookup_sub_value (cnonce,
-+                               sizeof (cnonce),
-+                               header, "cnonce")) ||
-+       (0 == lookup_sub_value (qop, sizeof (qop), header, "qop")) ||
-+       ( (0 != strcmp (qop, "auth")) &&
-+         (0 != strcmp (qop, "")) ) ||
-+       (0 == lookup_sub_value (nc, sizeof (nc), header, "nc"))  ||
-+       (0 == lookup_sub_value (response, sizeof (response), header, "response")) )
-+    {
-+#if HAVE_MESSAGES
-+      MHD_DLOG (connection->daemon,
-+              "Authentication failed, invalid format.\n");
-+#endif
-+      return MHD_NO;
-+    }
-+  nci = strtoul (nc, &end, 16);
-+  if ( ('\0' != *end) ||
-+       ( (LONG_MAX == nci) &&
-+         (ERANGE == errno) ) )
-+    {
-+#if HAVE_MESSAGES
-+      MHD_DLOG (connection->daemon,
-+              "Authentication failed, invalid format.\n");
-+#endif
-+      return MHD_NO; /* invalid nonce format */
-+    }
-+  /*
-+   * Checking if that combination of nonce and nc is sound
-+   * and not a replay attack attempt. Also adds the nonce
-+   * to the nonce-nc map if it does not exist there.
-+   */
-+
-+  if (MHD_YES != check_nonce_nc (connection, nonce, nci))
-+    {
-+      return MHD_NO;
-+    }
-+
-   {
-     char *uri;
--    
--    uri = malloc(left + 1);
-+
-+    uri = malloc (left + 1);
-     if (NULL == uri)
-     {
- #if HAVE_MESSAGES
-@@ -648,24 +730,31 @@ MHD_digest_auth_check (struct MHD_Connec
-                                left + 1,
-                                header, "uri"))
-     {
--      free(uri);
-+      free (uri);
-       return MHD_NO;
-     }
--    /* 8 = 4 hexadecimal numbers for the timestamp */
--    nonce_time = strtoul (nonce + len - 8, (char **)NULL, 16);
--    t = (uint32_t) MHD_monotonic_time();
--    /*
--     * First level vetting for the nonce validity: if the timestamp
--     * attached to the nonce exceeds `nonce_timeout', then the nonce is
--     * invalid.
--     */
--    if ( (t > nonce_time + nonce_timeout) ||
--       (nonce_time + nonce_timeout < nonce_time) )
--    { 
--      free(uri);
--      return MHD_INVALID_NONCE;
--    }
-+    digest_calc_ha1("md5",
-+                  username,
-+                  realm,
-+                  password,
-+                  nonce,
-+                  cnonce,
-+                  ha1);
-+    digest_calc_response (ha1,
-+                        nonce,
-+                        nc,
-+                        cnonce,
-+                        qop,
-+                        connection->method,
-+                        uri,
-+                        hentity,
-+                        respexp);
-+
-+    /* Need to unescape URI before comparing with connection->url */
-+    connection->daemon->unescape_callback (connection->daemon->unescape_callback_cls,
-+                                           connection,
-+                                           uri);
-     if (0 != strncmp (uri,
-                     connection->url,
-                     strlen (connection->url)))
-@@ -674,9 +763,10 @@ MHD_digest_auth_check (struct MHD_Connec
-       MHD_DLOG (connection->daemon,
-               "Authentication failed, URI does not match.\n");
- #endif
--      free(uri);
-+      free (uri);
-       return MHD_NO;
-     }
-+
-     {
-       const char *args = strchr (uri, '?');
-@@ -692,89 +782,11 @@ MHD_digest_auth_check (struct MHD_Connec
-       MHD_DLOG (connection->daemon,
-                 "Authentication failed, arguments do not match.\n");
- #endif
--       free(uri);
-+       free (uri);
-        return MHD_NO;
-       }
-     }
--    calculate_nonce (nonce_time,
--                   connection->method,
--                   connection->daemon->digest_auth_random,
--                   connection->daemon->digest_auth_rand_size,
--                   connection->url,
--                   realm,
--                   noncehashexp);
--    /*
--     * Second level vetting for the nonce validity
--     * if the timestamp attached to the nonce is valid
--     * and possibly fabricated (in case of an attack)
--     * the attacker must also know the random seed to be
--     * able to generate a "sane" nonce, which if he does
--     * not, the nonce fabrication process going to be
--     * very hard to achieve.
--     */
--
--    if (0 != strcmp (nonce, noncehashexp))
--    {
--      free(uri);
--      return MHD_INVALID_NONCE;
--    }
--    if ( (0 == lookup_sub_value (cnonce,
--                               sizeof (cnonce),
--                               header, "cnonce")) ||
--       (0 == lookup_sub_value (qop, sizeof (qop), header, "qop")) ||
--       ( (0 != strcmp (qop, "auth")) &&
--         (0 != strcmp (qop, "")) ) ||
--       (0 == lookup_sub_value (nc, sizeof (nc), header, "nc"))  ||
--       (0 == lookup_sub_value (response, sizeof (response), header, "response")) )
--    {
--#if HAVE_MESSAGES
--      MHD_DLOG (connection->daemon,
--              "Authentication failed, invalid format.\n");
--#endif
--      free(uri);
--      return MHD_NO;
--    }
--    nci = strtoul (nc, &end, 16);
--    if ( ('\0' != *end) ||
--       ( (LONG_MAX == nci) &&
--         (ERANGE == errno) ) )
--    {
--#if HAVE_MESSAGES
--      MHD_DLOG (connection->daemon,
--              "Authentication failed, invalid format.\n");
--#endif
--      free(uri);
--      return MHD_NO; /* invalid nonce format */
--    }
--    /*
--     * Checking if that combination of nonce and nc is sound
--     * and not a replay attack attempt. Also adds the nonce
--     * to the nonce-nc map if it does not exist there.
--     */
--
--    if (MHD_YES != check_nonce_nc (connection, nonce, nci))
--    {
--      free(uri);
--      return MHD_NO;
--    }
--
--    digest_calc_ha1("md5",
--                  username,
--                  realm,
--                  password,
--                  nonce,
--                  cnonce,
--                  ha1);
--    digest_calc_response (ha1,
--                        nonce,
--                        nc,
--                        cnonce,
--                        qop,
--                        connection->method,
--                        uri,
--                        hentity,
--                        respexp);
--    free(uri);
-+    free (uri);
-     return (0 == strcmp(response, respexp))
-       ? MHD_YES
-       : MHD_NO;
-@@ -835,7 +847,7 @@ MHD_queue_auth_fail_response (struct MHD
-                  : "");
-   {
-     char *header;
--    
-+
-     header = malloc(hlen + 1);
-     if (NULL == header)
-     {
---- a/src/microhttpd/daemon.c
-+++ b/src/microhttpd/daemon.c
-@@ -73,7 +73,7 @@
- /**
-  * Default connection limit.
-  */
--#ifndef WINDOWS
-+#ifndef MHD_WINSOCK_SOCKETS
- #define MHD_MAX_CONNECTIONS_DEFAULT FD_SETSIZE - 4
- #else
- #define MHD_MAX_CONNECTIONS_DEFAULT FD_SETSIZE
-@@ -1271,7 +1271,7 @@ internal_add_connection (struct MHD_Daem
-       return MHD_NO;
-     }
--#ifndef WINDOWS
-+#ifndef MHD_WINSOCK_SOCKETS
-   if ( (client_socket >= FD_SETSIZE) &&
-        (0 == (daemon->options & (MHD_USE_POLL | MHD_USE_EPOLL_LINUX_ONLY))) )
-     {
-@@ -1418,7 +1418,7 @@ internal_add_connection (struct MHD_Daem
- #endif
-       {
-         /* make socket non-blocking */
--#if !defined(WINDOWS) || defined(CYGWIN)
-+#if !defined(MHD_WINSOCK_SOCKETS)
-         int flags = fcntl (connection->socket_fd, F_GETFL);
-         if ( (-1 == flags) ||
-              (0 != fcntl (connection->socket_fd, F_SETFL, flags | O_NONBLOCK)) )
-@@ -1797,7 +1797,7 @@ static void
- make_nonblocking_noninheritable (struct MHD_Daemon *daemon,
-                                MHD_socket sock)
- {
--#ifdef WINDOWS
-+#ifdef MHD_WINSOCK_SOCKETS
-   DWORD dwFlags;
-   unsigned long flags = 1;
-@@ -3611,7 +3611,7 @@ MHD_start_daemon_va (unsigned int flags,
-   daemon->socket_fd = MHD_INVALID_SOCKET;
-   daemon->listening_address_reuse = 0;
-   daemon->options = flags;
--#if WINDOWS
-+#if defined(MHD_WINSOCK_SOCKETS) || defined(CYGWIN)
-   /* Winsock is broken with respect to 'shutdown';
-      this disables us calling 'shutdown' on W32. */
-   daemon->options |= MHD_USE_EPOLL_TURBO;
-@@ -3650,7 +3650,7 @@ MHD_start_daemon_va (unsigned int flags,
-       free (daemon);
-       return NULL;
-     }
--#ifndef WINDOWS
-+#ifndef MHD_WINSOCK_SOCKETS
-   if ( (0 == (flags & (MHD_USE_POLL | MHD_USE_EPOLL_LINUX_ONLY))) &&
-        (1 == use_pipe) &&
-        (daemon->wpipe[0] >= FD_SETSIZE) )
-@@ -3934,7 +3934,7 @@ MHD_start_daemon_va (unsigned int flags,
-            (http://msdn.microsoft.com/en-us/library/ms738574%28v=VS.85%29.aspx);
-            and may also be missing on older POSIX systems; good luck if you have any of those,
-            your IPv6 socket may then also bind against IPv4 anyway... */
--#ifndef WINDOWS
-+#ifndef MHD_WINSOCK_SOCKETS
-         const int
- #else
-         const char
-@@ -4016,7 +4016,7 @@ MHD_start_daemon_va (unsigned int flags,
-     {
-       socket_fd = daemon->socket_fd;
-     }
--#ifndef WINDOWS
-+#ifndef MHD_WINSOCK_SOCKETS
-   if ( (socket_fd >= FD_SETSIZE) &&
-        (0 == (flags & (MHD_USE_POLL | MHD_USE_EPOLL_LINUX_ONLY)) ) )
-     {
-@@ -4121,7 +4121,7 @@ MHD_start_daemon_va (unsigned int flags,
-   if ( (daemon->worker_pool_size > 0) &&
-        (0 == (daemon->options & MHD_USE_NO_LISTEN_SOCKET)) )
-     {
--#if !defined(WINDOWS) || defined(CYGWIN)
-+#if !defined(MHD_WINSOCK_SOCKETS)
-       int sk_flags;
- #else
-       unsigned long sk_flags;
-@@ -4140,7 +4140,7 @@ MHD_start_daemon_va (unsigned int flags,
-       /* Accept must be non-blocking. Multiple children may wake up
-        * to handle a new connection, but only one will win the race.
-        * The others must immediately return. */
--#if !defined(WINDOWS) || defined(CYGWIN)
-+#if !defined(MHD_WINSOCK_SOCKETS)
-       sk_flags = fcntl (socket_fd, F_GETFL);
-       if (sk_flags < 0)
-         goto thread_failed;
-@@ -4150,7 +4150,7 @@ MHD_start_daemon_va (unsigned int flags,
-       sk_flags = 1;
-       if (SOCKET_ERROR == ioctlsocket (socket_fd, FIONBIO, &sk_flags))
-         goto thread_failed;
--#endif /* WINDOWS && !CYGWIN */
-+#endif /* MHD_WINSOCK_SOCKETS */
-       /* Allocate memory for pooled objects */
-       daemon->worker_pool = malloc (sizeof (struct MHD_Daemon)
-@@ -4182,7 +4182,7 @@ MHD_start_daemon_va (unsigned int flags,
- #endif
-               goto thread_failed;
-             }
--#ifndef WINDOWS
-+#ifndef MHD_WINSOCK_SOCKETS
-           if ( (0 == (flags & (MHD_USE_POLL | MHD_USE_EPOLL_LINUX_ONLY))) &&
-                (MHD_USE_SUSPEND_RESUME == (flags & MHD_USE_SUSPEND_RESUME)) &&
-                (d->wpipe[0] >= FD_SETSIZE) )
-@@ -4343,7 +4343,7 @@ close_all_connections (struct MHD_Daemon
-     {
-       shutdown (pos->socket_fd,
-                 (pos->read_closed == MHD_YES) ? SHUT_WR : SHUT_RDWR);
--#if WINDOWS
-+#if MHD_WINSOCK_SOCKETS
-       if ( (0 != (daemon->options & MHD_USE_THREAD_PER_CONNECTION)) &&
-            (MHD_INVALID_PIPE_ != daemon->wpipe[1]) &&
-            (1 != MHD_pipe_write_ (daemon->wpipe[1], "e", 1)) )
---- a/src/include/microhttpd.h
-+++ b/src/include/microhttpd.h
-@@ -130,7 +130,7 @@ typedef intptr_t ssize_t;
-  * Current version of the library.
-  * 0x01093001 = 1.9.30-1.
-  */
--#define MHD_VERSION 0x00094200
-+#define MHD_VERSION 0x00094202
- /**
-  * MHD-internal return code for "YES".
-@@ -194,6 +194,53 @@ typedef SOCKET MHD_socket;
- #endif /* MHD_SOCKET_DEFINED */
- /**
-+ * Define MHD_NO_DEPRECATION before including "microhttpd.h" to disable deprecation messages
-+ */
-+#ifdef MHD_NO_DEPRECATION
-+#define _MHD_DEPR_MACRO(msg)
-+#define _MHD_DEPR_FUNC(msg)
-+#endif /* MHD_NO_DEPRECATION */
-+
-+#ifndef _MHD_DEPR_MACRO
-+#if defined(_MSC_FULL_VER) && _MSC_VER+0 >= 1500
-+/* Stringify macros */
-+#define _MHD_INSTRMACRO(a) #a
-+#define _MHD_STRMACRO(a) _MHD_INSTRMACRO(a)
-+#define _MHD_DEPR_MACRO(msg) __pragma(message(__FILE__ "(" _MHD_STRMACRO(__LINE__)"): warning: " msg))
-+#elif defined(__clang__) || defined (__GNUC_PATCHLEVEL__)
-+#define _MHD_GCC_PRAG(x) _Pragma (#x)
-+#if __clang_major__+0 >= 5 || \
-+  (!defined(__apple_build_version__) && (__clang_major__+0  > 3 || (__clang_major__+0 == 3 && __clang_minor__ >= 3))) || \
-+  __GNUC__+0 > 4 || (__GNUC__+0 == 4 && __GNUC_MINOR__+0 >= 8)
-+#define _MHD_DEPR_MACRO(msg) _MHD_GCC_PRAG(GCC warning msg)
-+#else /* older clang or GCC */
-+#define _MHD_DEPR_MACRO(msg) _MHD_GCC_PRAG(message msg)
-+#endif 
-+/* #elif defined(SOMEMACRO) */ /* add compiler-specific macros here if required */
-+#else /* other compilers */
-+#define _MHD_DEPR_MACRO(msg)
-+#endif
-+#endif /* _MHD_DEPR_MACRO */
-+
-+#ifndef _MHD_DEPR_FUNC
-+#if defined(_MSC_FULL_VER) && _MSC_VER+0 >= 1400
-+#define _MHD_DEPR_FUNC(msg) __declspec(deprecated(msg))
-+#elif defined(_MSC_FULL_VER) && _MSC_VER+0 >= 1310
-+/* VS .NET 2003 deprecation do not support custom messages */
-+#define _MHD_DEPR_FUNC(msg) __declspec(deprecated)
-+#elif defined (__clang__) && \
-+  (__clang_major__+0 >= 4 || (!defined(__apple_build_version__) && __clang_major__+0 >= 3))
-+#define _MHD_DEPR_FUNC(msg) __attribute__((deprecated(msg)))
-+#elif defined (__clang__) || __GNUC__+0 > 3 || (__GNUC__+0 == 3 && __GNUC_MINOR__+0 >= 1)
-+/* GCC-style deprecation do not support custom messages */
-+#define _MHD_DEPR_FUNC(msg) __attribute__((__deprecated__))
-+/* #elif defined(SOMEMACRO) */ /* add compiler-specific macros here if required */
-+#else /* other compilers */
-+#define _MHD_DEPR_FUNC(msg)
-+#endif
-+#endif /* _MHD_DEPR_FUNC */
-+
-+/**
-  * Not all architectures and `printf()`'s support the `long long` type.
-  * This gives the ability to replace `long long` with just a `long`,
-  * standard `int` or a `short`.
-@@ -204,6 +251,8 @@ typedef SOCKET MHD_socket;
-  */
- #define MHD_LONG_LONG long long
- #define MHD_UNSIGNED_LONG_LONG unsigned long long
-+#else /* MHD_LONG_LONG */
-+_MHD_DEPR_MACRO("Macro MHD_LONG_LONG is deprecated, use MHD_UNSIGNED_LONG_LONG")
- #endif
- /**
-  * Format string for printing a variable of type #MHD_LONG_LONG.
-@@ -215,6 +264,8 @@ typedef SOCKET MHD_socket;
-  */
- #define MHD_LONG_LONG_PRINTF "ll"
- #define MHD_UNSIGNED_LONG_LONG_PRINTF "%llu"
-+#else /* MHD_LONG_LONG_PRINTF */
-+_MHD_DEPR_MACRO("Macro MHD_LONG_LONG_PRINTF is deprecated, use MHD_UNSIGNED_LONG_LONG_PRINTF")
- #endif
-@@ -253,7 +304,8 @@ typedef SOCKET MHD_socket;
- #define MHD_HTTP_METHOD_NOT_ALLOWED 405
- #define MHD_HTTP_NOT_ACCEPTABLE 406
- /** @deprecated */
--#define MHD_HTTP_METHOD_NOT_ACCEPTABLE 406
-+#define MHD_HTTP_METHOD_NOT_ACCEPTABLE \
-+  _MHD_DEPR_MACRO("Value MHD_HTTP_METHOD_NOT_ACCEPTABLE is deprecated, use MHD_HTTP_NOT_ACCEPTABLE") 406
- #define MHD_HTTP_PROXY_AUTHENTICATION_REQUIRED 407
- #define MHD_HTTP_REQUEST_TIMEOUT 408
- #define MHD_HTTP_CONFLICT 409
-@@ -1953,6 +2005,7 @@ MHD_create_response_from_callback (uint6
-  * @deprecated use #MHD_create_response_from_buffer instead
-  * @ingroup response
-  */
-+_MHD_DEPR_FUNC("MHD_create_response_from_data() is deprecated, use MHD_create_response_from_buffer()") \
- _MHD_EXTERN struct MHD_Response *
- MHD_create_response_from_data (size_t size,
-                              void *data,
-@@ -2023,6 +2076,8 @@ MHD_create_response_from_buffer (size_t
-  * @return NULL on error (i.e. invalid arguments, out of memory)
-  * @ingroup response
-  */
-+/* NOTE: this should be 'uint64_t' instead of 'size_t', but changing
-+   this would break API compatibility. */
- _MHD_EXTERN struct MHD_Response *
- MHD_create_response_from_fd (size_t size,
-                            int fd);
-@@ -2044,6 +2099,8 @@ MHD_create_response_from_fd (size_t size
-  * @return NULL on error (i.e. invalid arguments, out of memory)
-  * @ingroup response
-  */
-+/* NOTE: this should be 'uint64_t' instead of 'size_t', but changing
-+   this would break API compatibility. */
- _MHD_EXTERN struct MHD_Response *
- MHD_create_response_from_fd_at_offset (size_t size,
-                                      int fd,
---- a/src/include/platform_interface.h
-+++ b/src/include/platform_interface.h
-@@ -82,14 +82,14 @@
- /* MHD_socket_close_(fd) close any FDs (non-W32) / close only socket FDs (W32) */
--#if !defined(_WIN32) || defined(__CYGWIN__)
-+#if !defined(MHD_WINSOCK_SOCKETS)
- #define MHD_socket_close_(fd) close((fd))
- #else
- #define MHD_socket_close_(fd) closesocket((fd))
- #endif
- /* MHD_socket_errno_ is errno of last function (non-W32) / errno of last socket function (W32) */
--#if !defined(_WIN32) || defined(__CYGWIN__)
-+#if !defined(MHD_WINSOCK_SOCKETS)
- #define MHD_socket_errno_ errno
- #else
- #define MHD_socket_errno_ MHD_W32_errno_from_winsock_()
-@@ -97,21 +97,21 @@
- /* MHD_socket_last_strerr_ is description string of last errno (non-W32) /
-  *                            description string of last socket error (W32) */
--#if !defined(_WIN32) || defined(__CYGWIN__)
-+#if !defined(MHD_WINSOCK_SOCKETS)
- #define MHD_socket_last_strerr_() strerror(errno)
- #else
- #define MHD_socket_last_strerr_() MHD_W32_strerror_last_winsock_()
- #endif
- /* MHD_strerror_ is strerror (both non-W32/W32) */
--#if !defined(_WIN32) || defined(__CYGWIN__)
-+#if !defined(MHD_WINSOCK_SOCKETS)
- #define MHD_strerror_(errnum) strerror((errnum))
- #else
- #define MHD_strerror_(errnum) MHD_W32_strerror_((errnum))
- #endif
- /* MHD_set_socket_errno_ set errno to errnum (non-W32) / set socket last error to errnum (W32) */
--#if !defined(_WIN32) || defined(__CYGWIN__)
-+#if !defined(MHD_WINSOCK_SOCKETS)
- #define MHD_set_socket_errno_(errnum) errno=(errnum)
- #else
- #define MHD_set_socket_errno_(errnum) MHD_W32_set_last_winsock_error_((errnum))
---- a/src/testcurl/test_digestauth.c
-+++ b/src/testcurl/test_digestauth.c
-@@ -73,7 +73,8 @@ ahc_echo (void *cls,
-           const char *url,
-           const char *method,
-           const char *version,
--          const char *upload_data, size_t *upload_data_size,
-+          const char *upload_data,
-+          size_t *upload_data_size,
-           void **unused)
- {
-   struct MHD_Response *response;
-@@ -82,44 +83,47 @@ ahc_echo (void *cls,
-   const char *realm = "test@example.com";
-   int ret;
--  username = MHD_digest_auth_get_username(connection);
-+  username = MHD_digest_auth_get_username (connection);
-   if ( (username == NULL) ||
-        (0 != strcmp (username, "testuser")) )
-     {
--      response = MHD_create_response_from_buffer(strlen (DENIED), 
--                                               DENIED,
--                                               MHD_RESPMEM_PERSISTENT);  
-+      response = MHD_create_response_from_buffer (strlen (DENIED),
-+                                                  DENIED,
-+                                                  MHD_RESPMEM_PERSISTENT);
-       ret = MHD_queue_auth_fail_response(connection, realm,
-                                        MY_OPAQUE,
-                                        response,
--                                       MHD_NO);    
--      MHD_destroy_response(response);  
-+                                       MHD_NO);
-+      MHD_destroy_response(response);
-       return ret;
-     }
-   ret = MHD_digest_auth_check(connection, realm,
--                            username, 
--                            password, 
-+                            username,
-+                            password,
-                             300);
-   free(username);
-   if ( (ret == MHD_INVALID_NONCE) ||
-        (ret == MHD_NO) )
-     {
--      response = MHD_create_response_from_buffer(strlen (DENIED), 
-+      response = MHD_create_response_from_buffer(strlen (DENIED),
-                                                DENIED,
--                                               MHD_RESPMEM_PERSISTENT);  
--      if (NULL == response) 
-+                                               MHD_RESPMEM_PERSISTENT);
-+      if (NULL == response)
-       return MHD_NO;
-       ret = MHD_queue_auth_fail_response(connection, realm,
-                                        MY_OPAQUE,
-                                        response,
--                                       (ret == MHD_INVALID_NONCE) ? MHD_YES : MHD_NO);  
--      MHD_destroy_response(response);  
-+                                       (ret == MHD_INVALID_NONCE) ? MHD_YES : MHD_NO);
-+      MHD_destroy_response(response);
-       return ret;
-     }
--  response = MHD_create_response_from_buffer(strlen(PAGE), PAGE,
--                                           MHD_RESPMEM_PERSISTENT);
--  ret = MHD_queue_response(connection, MHD_HTTP_OK, response);  
--  MHD_destroy_response(response);
-+  response = MHD_create_response_from_buffer (strlen(PAGE),
-+                                              PAGE,
-+                                              MHD_RESPMEM_PERSISTENT);
-+  ret = MHD_queue_response (connection,
-+                            MHD_HTTP_OK,
-+                            response);
-+  MHD_destroy_response (response);
-   return ret;
- }
-@@ -144,24 +148,24 @@ testDigestAuth ()
-   fd = open("/dev/urandom", O_RDONLY);
-   if (-1 == fd)
-     {
--        fprintf(stderr, "Failed to open `%s': %s\n",
--             "/dev/urandom",
--                 strerror(errno));
--        return 1;
--      }
-+      fprintf(stderr, "Failed to open `%s': %s\n",
-+              "/dev/urandom",
-+              strerror(errno));
-+      return 1;
-+    }
-   while (off < 8)
--      {
--        len = read(fd, rnd, 8);
--        if (len == -1)
--          {
--                fprintf(stderr, "Failed to read `%s': %s\n",
--                     "/dev/urandom",
--                         strerror(errno));
--                (void) close(fd);
--                return 1;
--              }
--        off += len;
--      }
-+    {
-+      len = read(fd, rnd, 8);
-+      if (len == -1)
-+        {
-+          fprintf(stderr, "Failed to read `%s': %s\n",
-+                  "/dev/urandom",
-+                  strerror(errno));
-+          (void) close(fd);
-+          return 1;
-+        }
-+      off += len;
-+    }
-   (void) close(fd);
- #else
-   {
-@@ -193,7 +197,7 @@ testDigestAuth ()
-   if (d == NULL)
-     return 1;
-   c = curl_easy_init ();
--  curl_easy_setopt (c, CURLOPT_URL, "http://127.0.0.1:1337/");
-+  curl_easy_setopt (c, CURLOPT_URL, "http://127.0.0.1:1337/bar%20 foo?a=bü%20");
-   curl_easy_setopt (c, CURLOPT_WRITEFUNCTION, &copyBuffer);
-   curl_easy_setopt (c, CURLOPT_WRITEDATA, &cbc);
-   curl_easy_setopt (c, CURLOPT_HTTPAUTH, CURLAUTH_DIGEST);
-@@ -225,7 +229,6 @@ testDigestAuth ()
- }
--
- int
- main (int argc, char *const *argv)
- {
---- a/src/testcurl/https/test_https_time_out.c
-+++ b/src/testcurl/https/test_https_time_out.c
-@@ -64,7 +64,7 @@ test_tls_session_time_out (gnutls_sessio
-   gnutls_transport_set_ptr (session, (gnutls_transport_ptr_t) (intptr_t) sd);
--  ret = connect (sd, &sa, sizeof (struct sockaddr_in));
-+  ret = connect (sd, (struct sockaddr *) &sa, sizeof (struct sockaddr_in));
-   if (ret < 0)
-     {
diff --git a/libs/libmraa/Makefile b/libs/libmraa/Makefile
new file mode 100644 (file)
index 0000000..3e3202a
--- /dev/null
@@ -0,0 +1,51 @@
+#
+# Copyright (C) 2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=libmraa
+PKG_VERSION:=0.8.0
+
+PKG_RELEASE=$(PKG_SOURCE_VERSION)
+
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL:=https://github.com/intel-iot-devkit/mraa.git
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
+PKG_SOURCE_VERSION:=70600dece4138b0c0dbaff42f57828f1559cd840
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
+PKG_BUILD_DEPENDS:=node python/host swig/host node/host
+CMAKE_INSTALL:=1
+
+PKG_MAINTAINER:=John Crispin <blogic@openwrt.org>
+PKG_LICENSE:=LGPL-2.1
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/cmake.mk
+
+CMAKE_OPTIONS=-DBUILDARCH=$(CONFIG_ARCH) \
+       -DENABLEEXAMPLES=0 \
+       -DNODE_EXECUTABLE=$(STAGING_DIR_HOST)/bin/node \
+       -DSWIG_DIR=$(STAGING_DIR_HOST)/bin
+
+TARGET_CFLAGS+=-I$(STAGING_DIR)/usr/include/node
+
+define Package/libmraa
+  SECTION:=libs
+  CATEGORY:=Libraries
+  DEPENDS:=+python +libstdcpp
+  TITLE:=Intel IoT lowlevel IO library
+endef
+
+define Package/libmraa/install
+       $(INSTALL_DIR) $(1)/usr/lib/{node/mraa,python2.7/site-packages} $(1)/usr/bin
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/libmraa.so* $(1)/usr/lib/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/node_modules/mraa/* $(1)/usr/lib/node/mraa/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/python2.7/site-packages/* $(1)/usr/lib/python2.7/site-packages/
+#      $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/share/mraa/examples/python/blink-io8.py $(1)/usr/bin/
+endef
+
+$(eval $(call BuildPackage,libmraa))
diff --git a/libs/libmraa/patches/0001-base.patch b/libs/libmraa/patches/0001-base.patch
new file mode 100644 (file)
index 0000000..5094389
--- /dev/null
@@ -0,0 +1,118 @@
+From 6fecad819376442d057bdd35a0909cfac9df02f5 Mon Sep 17 00:00:00 2001
+From: John Crispin <blogic@openwrt.org>
+Date: Thu, 23 Jul 2015 12:18:39 +0200
+Subject: [PATCH 1/4] base
+
+---
+ CMakeLists.txt          |   10 ++++------
+ api/mraa/types.h        |    1 +
+ include/mraa_internal.h |    7 +++++++
+ src/CMakeLists.txt      |    5 +++++
+ src/i2c/i2c.c           |    2 +-
+ src/mraa.c              |    3 +++
+ src/uart/uart.c         |    1 +
+ 7 files changed, 22 insertions(+), 7 deletions(-)
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -14,12 +14,7 @@
+ set (CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules ${CMAKE_MODULE_PATH})
+ # Make a version file containing the current version from git.
+-include (GetGitRevisionDescription)
+-git_describe (VERSION "--tags")
+-if ("x_${VERSION}" STREQUAL "x_GIT-NOTFOUND" OR "x_${VERSION}" STREQUAL "x_HEAD-HASH-NOTFOUND")
+-  message (WARNING " - Install git to compile a production libmraa!")
+-  set (VERSION "v0.8.0-dirty")
+-endif ()
++set (VERSION "v0.8.0")
+ message (INFO " - libmraa Version ${VERSION}")
+@@ -84,8 +79,10 @@
+   set (X86PLAT ON)
+ elseif (DETECTED_ARCH MATCHES "arm.*")
+   set (ARMPLAT ON)
++elseif (DETECTED_ARCH MATCHES "mips")
++  set (MIPSPLAT ON)
+ else ()
+-  message(FATAL_ERROR "Only x86 and arm platforms currently supported")
++  message(FATAL_ERROR "Only x86, arm and mips platforms currently supported")
+ endif()
+ if (BUILDSWIGPYTHON)
+--- a/api/mraa/types.h
++++ b/api/mraa/types.h
+@@ -46,6 +46,7 @@
+     MRAA_BEAGLEBONE = 6,            /**< The different BeagleBone Black Modes B/C */
+     MRAA_BANANA = 7,                /**< Allwinner A20 based Banana Pi and Banana Pro */
+     MRAA_INTEL_NUC5 = 8,            /**< The Intel 5th generations Broadwell NUCs */
++    MRAA_MTK_LINKIT = 9,            /**< Mediatek MT7688 based Linkit (Air) */
+     // USB platform extenders start at 256
+     MRAA_FTDI_FT4222 = 256,         /**< FTDI FT4222 USB to i2c bridge */
+--- a/include/mraa_internal.h
++++ b/include/mraa_internal.h
+@@ -66,6 +66,13 @@
+ mraa_platform_t mraa_usb_platform_extender(mraa_board_t* board);
+ /**
++ * runtime detect running arm platforms
++ *
++ * @return mraa_platform_t of the init'ed platform
++ */
++mraa_platform_t mraa_mips_platform();
++
++/**
+  * helper function to check if file exists
+  *
+  * @param filename to check
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -71,6 +71,11 @@
+   add_subdirectory(usb)
+ endif ()
++if (MIPSPLAT)
++  add_subdirectory(mips)
++  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DMIPSPLAT=1")
++endif()
++
+ set (mraa_LIB_SRCS
+   ${mraa_LIB_PLAT_SRCS_NOAUTO}
+ # autogenerated version file
+--- a/src/i2c/i2c.c
++++ b/src/i2c/i2c.c
+@@ -31,9 +31,9 @@
+ #include <stdlib.h>
+ #include <unistd.h>
+ #include <fcntl.h>
++#include <errno.h>
+ #include <inttypes.h>
+ #include <sys/types.h>
+-#include <sys/errno.h>
+ #include <sys/ioctl.h>
+ #include "linux/i2c-dev.h"
+--- a/src/mraa.c
++++ b/src/mraa.c
+@@ -111,6 +111,9 @@
+ #elif defined(ARMPLAT)
+     // Use runtime ARM platform detection
+     platform_type = mraa_arm_platform();
++#elif MIPSPLAT
++    // Use runtime ARM platform detection
++    platform_type = mraa_mips_platform();
+ #else
+ #error mraa_ARCH NOTHING
+ #endif
+--- a/src/uart/uart.c
++++ b/src/uart/uart.c
+@@ -26,6 +26,7 @@
+ #include <stdlib.h>
+ #include <sys/stat.h>
++#include <sys/time.h>
+ #include <unistd.h>
+ #include <string.h>
+ #include <termios.h>
diff --git a/libs/libmraa/patches/0002-add-mips-support.patch b/libs/libmraa/patches/0002-add-mips-support.patch
new file mode 100644 (file)
index 0000000..ee45696
--- /dev/null
@@ -0,0 +1,483 @@
+From 2c67c6f51ce5bab18c79f4304ccf42716f59f13c Mon Sep 17 00:00:00 2001
+From: John Crispin <blogic@openwrt.org>
+Date: Thu, 23 Jul 2015 13:21:25 +0200
+Subject: [PATCH 2/4] add mips support
+
+Signed-off-by: John Crispin <blogic@openwrt.org>
+---
+ include/mips/mediatek.h |   39 ++++++
+ src/mips/CMakeLists.txt |    6 +
+ src/mips/mediatek.c     |  349 +++++++++++++++++++++++++++++++++++++++++++++++
+ src/mips/mips.c         |   60 ++++++++
+ 4 files changed, 454 insertions(+)
+ create mode 100644 include/mips/mediatek.h
+ create mode 100644 src/mips/CMakeLists.txt
+ create mode 100644 src/mips/mediatek.c
+ create mode 100644 src/mips/mips.c
+
+--- /dev/null
++++ b/include/mips/mediatek.h
+@@ -0,0 +1,39 @@
++/*
++ * Author: Thomas Ingleby <thomas.c.ingleby@intel.com>
++ * Author: Michael Ring <mail@michael-ring.org>
++ * Copyright (c) 2014 Intel Corporation.
++ *
++ * Permission is hereby granted, free of charge, to any person obtaining
++ * a copy of this software and associated documentation files (the
++ * "Software"), to deal in the Software without restriction, including
++ * without limitation the rights to use, copy, modify, merge, publish,
++ * distribute, sublicense, and/or sell copies of the Software, and to
++ * permit persons to whom the Software is furnished to do so, subject to
++ * the following conditions:
++ *
++ * The above copyright notice and this permission notice shall be
++ * included in all copies or substantial portions of the Software.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
++ * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
++ * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
++ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
++ */
++
++#pragma once
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++#include "mraa_internal.h"
++
++mraa_board_t *
++        mraa_mtk_linkit();
++
++#ifdef __cplusplus
++}
++#endif
+--- /dev/null
++++ b/src/mips/CMakeLists.txt
+@@ -0,0 +1,6 @@
++message (INFO " - Adding MIPS platforms")
++set (mraa_LIB_PLAT_SRCS_NOAUTO ${mraa_LIB_SRCS_NOAUTO}
++  ${PROJECT_SOURCE_DIR}/src/mips/mips.c
++  ${PROJECT_SOURCE_DIR}/src/mips/mediatek.c
++  PARENT_SCOPE
++)
+--- /dev/null
++++ b/src/mips/mediatek.c
+@@ -0,0 +1,349 @@
++/*
++ * Author: Thomas Ingleby <thomas.c.ingleby@intel.com>
++ * Author: Michael Ring <mail@michael-ring.org>
++ * Copyright (c) 2014 Intel Corporation.
++ *
++ * Permission is hereby granted, free of charge, to any person obtaining
++ * a copy of this software and associated documentation files (the
++ * "Software"), to deal in the Software without restriction, including
++ * without limitation the rights to use, copy, modify, merge, publish,
++ * distribute, sublicense, and/or sell copies of the Software, and to
++ * permit persons to whom the Software is furnished to do so, subject to
++ * the following conditions:
++ *
++ * The above copyright notice and this permission notice shall be
++ * included in all copies or substantial portions of the Software.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
++ * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
++ * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
++ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
++ */
++
++#include <stdio.h>
++#include <stdint.h>
++#include <stdlib.h>
++#include <string.h>
++#include <sys/mman.h>
++#include <mraa/common.h>
++
++#include "mraa_internal.h"
++
++#include "common.h"
++
++#define PLATFORM_MEDIATEK_LINKIT      1
++#define PLATFORM_MEDIATEK_LINKIT_AIR  2
++#define MMAP_PATH                     "/dev/mem"
++#define MT7628_GPIO_BASE              0x100
++#define MT7628_BLOCK_SIZE             (4 * 1024)
++#define MT7628_GPIO_CTRL              0x00
++#define MT7628_GPIO_DATA              0x20
++#define MT7628_GPIO_SET                       0x30
++#define MT7628_GPIO_CLEAR             0x40
++
++#define MAX_SIZE 64
++
++// MMAP
++static uint8_t* mmap_reg = NULL;
++static int mmap_fd = 0;
++static int mmap_size;
++static unsigned int mmap_count = 0;
++static int platform_detected = 0;
++
++mraa_result_t
++mraa_mtk_linkit_mmap_write(mraa_gpio_context dev, int value)
++{
++    volatile uint32_t* addr;
++    if (value) {
++        *(volatile uint32_t*) (mmap_reg + MT7628_GPIO_SET + (dev->pin / 32) * 4) =
++        (uint32_t)(1 << (dev->pin % 32));
++    } else {
++        *(volatile uint32_t*) (mmap_reg + MT7628_GPIO_CLEAR + (dev->pin / 32) * 4) =
++        (uint32_t)(1 << (dev->pin % 32));
++    }
++    return MRAA_SUCCESS;
++}
++
++static mraa_result_t
++mraa_mtk_linkit_mmap_unsetup()
++{
++    if (mmap_reg == NULL) {
++        syslog(LOG_ERR, "linkit mmap: null register cant unsetup");
++        return MRAA_ERROR_INVALID_RESOURCE;
++    }
++    munmap(mmap_reg, mmap_size);
++    mmap_reg = NULL;
++    if (close(mmap_fd) != 0) {
++        return MRAA_ERROR_INVALID_RESOURCE;
++    }
++    return MRAA_SUCCESS;
++}
++
++int
++mraa_mtk_linkit_mmap_read(mraa_gpio_context dev)
++{
++    uint32_t value = *(volatile uint32_t*) (mmap_reg + MT7628_GPIO_DATA + (dev->pin / 32) * 4);
++    if (value & (uint32_t)(1 << (dev->pin % 32))) {
++        return 1;
++    }
++    return 0;
++}
++
++mraa_result_t
++mraa_mtk_linkit_mmap_setup(mraa_gpio_context dev, mraa_boolean_t en)
++{
++    if (dev == NULL) {
++        syslog(LOG_ERR, "linkit mmap: context not valid");
++        return MRAA_ERROR_INVALID_HANDLE;
++    }
++
++    if (en == 0) {
++        if (dev->mmap_write == NULL && dev->mmap_read == NULL) {
++            syslog(LOG_ERR, "linkit mmap: can't disable disabled mmap gpio");
++            return MRAA_ERROR_INVALID_PARAMETER;
++        }
++        dev->mmap_write = NULL;
++        dev->mmap_read = NULL;
++        mmap_count--;
++        if (mmap_count == 0) {
++            return mraa_mtk_linkit_mmap_unsetup();
++        }
++        return MRAA_SUCCESS;
++    }
++
++    if (dev->mmap_write != NULL && dev->mmap_read != NULL) {
++        syslog(LOG_ERR, "linkit mmap: can't enable enabled mmap gpio");
++        return MRAA_ERROR_INVALID_PARAMETER;
++    }
++
++    // Might need to make some elements of this thread safe.
++    // For example only allow one thread to enter the following block
++    // to prevent mmap'ing twice.
++    if (mmap_reg == NULL) {
++        if ((mmap_fd = open(MMAP_PATH, O_RDWR)) < 0) {
++            syslog(LOG_ERR, "linkit map: unable to open resource0 file");
++            return MRAA_ERROR_INVALID_HANDLE;
++        }
++
++        mmap_reg = (uint8_t*) mmap(NULL, MT7628_BLOCK_SIZE, PROT_READ | PROT_WRITE,
++                                       MAP_FILE | MAP_SHARED, mmap_fd, MT7628_GPIO_BASE);
++        if (mmap_reg == MAP_FAILED) {
++            syslog(LOG_ERR, "linkit mmap: failed to mmap");
++            mmap_reg = NULL;
++            close(mmap_fd);
++            return MRAA_ERROR_NO_RESOURCES;
++        }
++    }
++    dev->mmap_write = &mraa_mtk_linkit_mmap_write;
++    dev->mmap_read = &mraa_mtk_linkit_mmap_read;
++    mmap_count++;
++
++    return MRAA_SUCCESS;
++}
++
++mraa_board_t*
++mraa_mtk_linkit()
++{
++    mraa_board_t* b = (mraa_board_t*) malloc(sizeof(mraa_board_t));
++    if (b == NULL) {
++        return NULL;
++    }
++
++    b->platform_name = "LINKIT";
++    platform_detected = PLATFORM_MEDIATEK_LINKIT;
++    b->phy_pin_count = 31;
++
++    b->aio_count = 0;
++    b->adc_raw = 0;
++    b->adc_supported = 0;
++    b->pwm_default_period = 500;
++    b->pwm_max_period = 2147483;
++    b->pwm_min_period = 1;
++
++    b->pins = (mraa_pininfo_t*) malloc(sizeof(mraa_pininfo_t) * b->phy_pin_count);
++
++    advance_func->gpio_mmap_setup = &mraa_mtk_linkit_mmap_setup;
++
++    strncpy(b->pins[0].name, "P0", MRAA_PIN_NAME_SIZE);
++    b->pins[0].capabilites = (mraa_pincapabilities_t){ 0, 0, 0, 0, 0, 0, 0, 0 };
++
++    strncpy(b->pins[1].name, "P1", MRAA_PIN_NAME_SIZE);
++    b->pins[1].capabilites = (mraa_pincapabilities_t){ 0, 0, 0, 0, 0, 0, 0, 0 };
++
++    strncpy(b->pins[2].name, "P2", MRAA_PIN_NAME_SIZE);
++    b->pins[2].capabilites = (mraa_pincapabilities_t){ 0, 0, 0, 0, 0, 0, 0, 0 };
++
++    strncpy(b->pins[3].name, "P3", MRAA_PIN_NAME_SIZE);
++    b->pins[3].capabilites = (mraa_pincapabilities_t){ 0, 0, 0, 0, 0, 0, 0, 0 };
++
++    strncpy(b->pins[4].name, "P4", MRAA_PIN_NAME_SIZE);
++    b->pins[4].capabilites = (mraa_pincapabilities_t){ 0, 0, 0, 0, 0, 0, 0, 0 };
++
++    strncpy(b->pins[5].name, "P5", MRAA_PIN_NAME_SIZE);
++    b->pins[5].capabilites = (mraa_pincapabilities_t){ 0, 0, 0, 0, 0, 0, 0, 0 };
++
++    strncpy(b->pins[6].name, "P6", MRAA_PIN_NAME_SIZE);
++    b->pins[6].capabilites = (mraa_pincapabilities_t){ 0, 0, 0, 0, 0, 0, 0, 0 };
++
++    strncpy(b->pins[7].name, "P7", MRAA_PIN_NAME_SIZE);
++    b->pins[7].capabilites = (mraa_pincapabilities_t){ 0, 0, 0, 0, 0, 0, 0, 0 };
++
++    strncpy(b->pins[8].name, "P8", MRAA_PIN_NAME_SIZE);
++    b->pins[8].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 1 };
++    b->pins[8].gpio.pinmap = 21;
++    b->pins[8].uart.parent_id = 2;
++    b->pins[8].uart.mux_total = 0;
++
++    strncpy(b->pins[9].name, "P9", MRAA_PIN_NAME_SIZE);
++    b->pins[9].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 1 };
++    b->pins[9].gpio.pinmap = 20;
++    b->pins[9].uart.parent_id = 2;
++    b->pins[9].uart.mux_total = 0;
++
++    strncpy(b->pins[10].name, "P10", MRAA_PIN_NAME_SIZE);
++    b->pins[10].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 0 };
++    b->pins[10].gpio.pinmap = 2;
++
++    strncpy(b->pins[11].name, "P11", MRAA_PIN_NAME_SIZE);
++    b->pins[11].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 0 };
++    b->pins[11].gpio.pinmap = 3;
++
++    strncpy(b->pins[12].name, "P12", MRAA_PIN_NAME_SIZE);
++    b->pins[12].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 0 };
++    b->pins[12].gpio.pinmap = 0;
++
++    strncpy(b->pins[13].name, "P13", MRAA_PIN_NAME_SIZE);
++    b->pins[13].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 0 };
++    b->pins[13].gpio.pinmap = 1;
++
++    strncpy(b->pins[14].name, "P14", MRAA_PIN_NAME_SIZE);
++    b->pins[14].capabilites = (mraa_pincapabilities_t){ 0, 0, 0, 0, 0, 0, 0, 0 };
++
++    strncpy(b->pins[15].name, "P15", MRAA_PIN_NAME_SIZE);
++    b->pins[15].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 0 };
++    b->pins[15].gpio.pinmap = 44;
++
++    strncpy(b->pins[16].name, "P16", MRAA_PIN_NAME_SIZE);
++    b->pins[16].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 1 };
++    b->pins[16].gpio.pinmap = 46;
++    b->pins[16].uart.parent_id = 1;
++    b->pins[16].uart.mux_total = 0;
++
++    strncpy(b->pins[17].name, "P17", MRAA_PIN_NAME_SIZE);
++    b->pins[17].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 1 };
++    b->pins[17].gpio.pinmap = 45;
++    b->pins[17].uart.parent_id = 1;
++    b->pins[17].uart.mux_total = 0;
++
++    strncpy(b->pins[18].name, "P18", MRAA_PIN_NAME_SIZE);
++    b->pins[18].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 1 };
++    b->pins[18].gpio.pinmap = 13;
++    b->pins[18].uart.parent_id = 1;
++    b->pins[18].uart.mux_total = 0;
++
++    strncpy(b->pins[19].name, "P19", MRAA_PIN_NAME_SIZE);
++    b->pins[19].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 1 };
++    b->pins[19].gpio.pinmap = 12;
++    b->pins[19].uart.parent_id = 0;
++    b->pins[19].uart.mux_total = 0;
++
++    strncpy(b->pins[20].name, "P20", MRAA_PIN_NAME_SIZE);
++    b->pins[20].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 1, 0, 0 };
++    b->pins[20].gpio.pinmap = 5;
++    b->pins[20].i2c.pinmap = 0;
++    b->pins[20].i2c.mux_total = 0;
++
++    strncpy(b->pins[21].name, "P21", MRAA_PIN_NAME_SIZE);
++    b->pins[21].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 1, 0, 0 };
++    b->pins[21].gpio.pinmap = 4;
++    b->pins[21].i2c.pinmap = 0;
++    b->pins[21].i2c.mux_total = 0;
++
++    strncpy(b->pins[22].name, "P22", MRAA_PIN_NAME_SIZE);
++    b->pins[22].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 1, 0, 0, 0 };
++    b->pins[22].gpio.pinmap = 8;
++    b->pins[22].spi.pinmap = 0;
++    b->pins[22].spi.mux_total = 0;
++
++    strncpy(b->pins[23].name, "P23", MRAA_PIN_NAME_SIZE);
++    b->pins[23].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 1, 0, 0, 0 };
++    b->pins[23].gpio.pinmap = 9;
++    b->pins[23].spi.pinmap = 0;
++    b->pins[23].spi.mux_total = 0;
++
++    strncpy(b->pins[24].name, "P24", MRAA_PIN_NAME_SIZE);
++    b->pins[24].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 1, 0, 0, 0 };
++    b->pins[24].gpio.pinmap = 7;
++    b->pins[24].spi.pinmap = 0;
++    b->pins[24].spi.mux_total = 0;
++
++    strncpy(b->pins[25].name, "P25", MRAA_PIN_NAME_SIZE);
++    b->pins[25].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 1, 0, 0, 0 };
++    b->pins[25].gpio.pinmap = 6;
++    b->pins[25].spi.pinmap = 0;
++    b->pins[25].spi.mux_total = 0;
++
++    strncpy(b->pins[26].name, "P26", MRAA_PIN_NAME_SIZE);
++    b->pins[26].capabilites = (mraa_pincapabilities_t){ 1, 1, 1, 0, 0, 0, 0, 0 };
++    b->pins[26].gpio.pinmap = 18;
++
++    strncpy(b->pins[27].name, "P27", MRAA_PIN_NAME_SIZE);
++    b->pins[27].capabilites = (mraa_pincapabilities_t){ 1, 1, 1, 0, 0, 0, 0, 0 };
++    b->pins[27].gpio.pinmap = 19;
++
++    strncpy(b->pins[28].name, "P28", MRAA_PIN_NAME_SIZE);
++    b->pins[28].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 0 };
++    b->pins[28].gpio.pinmap = 16;
++
++    strncpy(b->pins[29].name, "P29", MRAA_PIN_NAME_SIZE);
++    b->pins[29].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 0 };
++    b->pins[29].gpio.pinmap = 17;
++
++    strncpy(b->pins[30].name, "P30", MRAA_PIN_NAME_SIZE);
++    b->pins[30].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 0 };
++    b->pins[30].gpio.pinmap = 14;
++
++    strncpy(b->pins[31].name, "P31", MRAA_PIN_NAME_SIZE);
++    b->pins[31].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 0 };
++    b->pins[31].gpio.pinmap = 15;
++
++    // BUS DEFINITIONS
++    b->i2c_bus_count = 1;
++    b->def_i2c_bus = 0;
++        b->i2c_bus[0].bus_id = 0;
++    b->i2c_bus[0].sda = 20;
++    b->i2c_bus[0].scl = 21;
++
++    b->spi_bus_count = 1;
++    b->def_spi_bus = 0;
++    b->spi_bus[0].bus_id = 0;
++    b->spi_bus[0].slave_s = 0;
++    b->spi_bus[0].cs = 25;
++    b->spi_bus[0].mosi = 22;
++    b->spi_bus[0].miso = 23;
++    b->spi_bus[0].sclk = 21;
++
++    b->uart_dev_count = 3;
++    b->def_uart_dev = 0;
++    b->uart_dev[0].rx = 18;
++    b->uart_dev[0].tx = 19;
++
++    b->uart_dev[1].rx = 16;
++    b->uart_dev[1].tx = 17;
++
++    b->uart_dev[2].rx = 9;
++    b->uart_dev[2].tx = 8;
++
++    b->gpio_count = 0;
++    int i;
++    for (i = 0; i < b->phy_pin_count; i++) {
++        if (b->pins[i].capabilites.gpio) {
++            b->gpio_count++;
++        }
++    }
++
++    return b;
++}
+--- /dev/null
++++ b/src/mips/mips.c
+@@ -0,0 +1,60 @@
++/*
++ * Author: Thomas Ingleby <thomas.c.ingleby@intel.com>
++ * Author: Michael Ring <mail@michael-ring.org>
++ * Copyright (c) 2014 Intel Corporation.
++ *
++ * Permission is hereby granted, free of charge, to any person obtaining
++ * a copy of this software and associated documentation files (the
++ * "Software"), to deal in the Software without restriction, including
++ * without limitation the rights to use, copy, modify, merge, publish,
++ * distribute, sublicense, and/or sell copies of the Software, and to
++ * permit persons to whom the Software is furnished to do so, subject to
++ * the following conditions:
++ *
++ * The above copyright notice and this permission notice shall be
++ * included in all copies or substantial portions of the Software.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
++ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
++ * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
++ * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
++ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
++ */
++
++#include <stdlib.h>
++#include <string.h>
++
++#include "mraa_internal.h"
++#include "mips/mediatek.h"
++
++mraa_platform_t
++mraa_mips_platform()
++{
++    mraa_platform_t platform_type = MRAA_UNKNOWN_PLATFORM;
++    size_t len = 100;
++    char* line = malloc(len);
++    FILE* fh = fopen("/proc/cpuinfo", "r");
++    if (fh != NULL) {
++        while (getline(&line, &len, fh) != -1) {
++            if (strncmp(line, "machine", 7) == 0) {
++                if (strstr(line, "MediaTek LinkIt Smart 7688")) {
++                    platform_type = MRAA_MTK_LINKIT;
++                }
++            }
++        }
++        fclose(fh);
++    }
++    free(line);
++
++    switch (platform_type) {
++        case MRAA_MTK_LINKIT:
++            plat = mraa_mtk_linkit();
++            break;
++        default:
++            plat = NULL;
++            syslog(LOG_ERR, "Unknown Platform, currently not supported by MRAA");
++    }
++    return platform_type;
++}
diff --git a/libs/libmraa/patches/0003-uart.patch b/libs/libmraa/patches/0003-uart.patch
new file mode 100644 (file)
index 0000000..647abc5
--- /dev/null
@@ -0,0 +1,26 @@
+From 9540f9b93704e8e80ab2048954ca88d8e6eddf86 Mon Sep 17 00:00:00 2001
+From: John Crispin <blogic@openwrt.org>
+Date: Thu, 23 Jul 2015 16:43:42 +0200
+Subject: [PATCH 3/4] uart
+
+---
+ src/uart/uart.c |    3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/src/uart/uart.c b/src/uart/uart.c
+index 3ef55a4..5102f81 100644
+--- a/src/uart/uart.c
++++ b/src/uart/uart.c
+@@ -34,6 +34,9 @@
+ #include "uart.h"
+ #include "mraa_internal.h"
++#ifndef CMSPAR
++#define CMSPAR          010000000000
++#endif
+ // This function takes an unsigned int and converts it to a B* speed_t
+ // that can be used with linux/posix termios
+ static speed_t
+-- 
+1.7.10.4
+
diff --git a/libs/libmraa/patches/0004-fixes.patch b/libs/libmraa/patches/0004-fixes.patch
new file mode 100644 (file)
index 0000000..40e5930
--- /dev/null
@@ -0,0 +1,666 @@
+From 3c34e5f87a741ec2fc7809fc8c169a832275d32c Mon Sep 17 00:00:00 2001
+From: John Crispin <blogic@openwrt.org>
+Date: Thu, 23 Jul 2015 18:19:32 +0200
+Subject: [PATCH 4/4] fixes
+
+---
+ src/mips/mediatek.c |    6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+--- a/src/mips/mediatek.c
++++ b/src/mips/mediatek.c
+@@ -37,12 +37,12 @@
+ #define PLATFORM_MEDIATEK_LINKIT      1
+ #define PLATFORM_MEDIATEK_LINKIT_AIR  2
+ #define MMAP_PATH                     "/dev/mem"
+-#define MT7628_GPIO_BASE              0x100
+-#define MT7628_BLOCK_SIZE             (4 * 1024)
+-#define MT7628_GPIO_CTRL              0x00
+-#define MT7628_GPIO_DATA              0x20
+-#define MT7628_GPIO_SET                       0x30
+-#define MT7628_GPIO_CLEAR             0x40
++#define MT7628_GPIOMODE_BASE          0x10000000
++#define MT7628_BLOCK_SIZE             0x1000
++#define MT7628_GPIO_CTRL              0x600
++#define MT7628_GPIO_DATA              0x620
++#define MT7628_GPIO_SET                       0x630
++#define MT7628_GPIO_CLEAR             0x640
+ #define MAX_SIZE 64
+@@ -50,6 +50,9 @@
+ static uint8_t* mmap_reg = NULL;
+ static int mmap_fd = 0;
+ static int mmap_size;
++static uint8_t* gpio_mmap_reg = NULL;
++static int gpio_mmap_fd = 0;
++static int gpio_mmap_size;
+ static unsigned int mmap_count = 0;
+ static int platform_detected = 0;
+@@ -129,9 +132,10 @@
+         }
+         mmap_reg = (uint8_t*) mmap(NULL, MT7628_BLOCK_SIZE, PROT_READ | PROT_WRITE,
+-                                       MAP_FILE | MAP_SHARED, mmap_fd, MT7628_GPIO_BASE);
++                                       MAP_FILE | MAP_SHARED, mmap_fd, 0x10000000);
+         if (mmap_reg == MAP_FAILED) {
+-            syslog(LOG_ERR, "linkit mmap: failed to mmap");
++            perror("foo");
++          syslog(LOG_ERR, "linkit mmap: failed to mmap");
+             mmap_reg = NULL;
+             close(mmap_fd);
+             return MRAA_ERROR_NO_RESOURCES;
+@@ -144,201 +148,442 @@
+     return MRAA_SUCCESS;
+ }
++static int mmap_gpiomode(void)
++{
++    if ((gpio_mmap_fd = open(MMAP_PATH, O_RDWR)) < 0) {
++        syslog(LOG_ERR, "linkit map: unable to open resource0 file");
++        return MRAA_ERROR_INVALID_HANDLE;
++    }
++
++    gpio_mmap_reg = (uint8_t*) mmap(NULL, MT7628_BLOCK_SIZE, PROT_READ | PROT_WRITE,
++                                   MAP_FILE | MAP_SHARED, gpio_mmap_fd, MT7628_GPIOMODE_BASE);
++    if (gpio_mmap_reg == MAP_FAILED) {
++        syslog(LOG_ERR, "linkit gpio_mmap: failed to mmap");
++        gpio_mmap_reg = NULL;
++        close(gpio_mmap_fd);
++        return MRAA_ERROR_NO_RESOURCES;
++    }
++    return 0;
++}
++
++static void set_gpiomode(unsigned int mask, unsigned int shift, unsigned int val)
++{
++    unsigned int reg;
++    unsigned int offset = 0x60;
++
++    if (shift >= 32) {
++              shift -= 32;
++              offset += 4;
++    }
++
++    reg = *(volatile uint32_t*) (gpio_mmap_reg + offset);
++
++    reg &= ~(mask << shift);
++    reg |= (val << shift);
++    *(volatile uint32_t*) (gpio_mmap_reg + offset) = reg;
++}
++
++enum {
++      MUX_GPIO = 0,
++      MUX_SPI_S,
++      MUX_SPI_CS1,
++      MUX_I2S,
++      MUX_UART0,
++      MUX_I2C,
++      MUX_UART1,
++      MUX_UART2,
++      MUX_PWM0,
++      MUX_PWM1,
++      MUX_EPHY,
++      MUX_WLED,
++      __MUX_MAX,
++};
++
++static unsigned char gpio_mux_groups[64];
++static struct pinmux {
++      char *name;
++      char *func[4];
++      unsigned int shift;
++      unsigned int mask;
++} mt7688_mux[] = {
++      {
++              .name = "refclk",
++              .func = { "refclk", "gpio", NULL, NULL },
++              .shift = 18,
++              .mask = 0x1,
++      }, {
++              .name = "spi_s",
++              .func = { "spi_s", "gpio", "utif", "pwm" },
++              .shift = 2,
++              .mask = 0x3,
++      }, {
++              .name = "spi_cs1",
++              .func = { "spi_cs1", "gpio", NULL, "refclk" },
++              .shift = 4,
++              .mask = 0x3,
++      }, {
++              .name = "i2s",
++              .func = { "i2s", "gpio", "pcm", NULL },
++              .shift = 6,
++              .mask = 0x3,
++      }, {
++              .name = "uart0",
++              .func = { "uart", "gpio", NULL, NULL },
++              .shift = 8,
++              .mask = 0x3,
++      }, {
++              .name = "i2c",
++              .func = { "i2c", "gpio", NULL, NULL },
++              .shift = 20,
++              .mask = 0x3,
++      }, {
++              .name = "uart1",
++              .func = { "uart", "gpio", NULL, NULL },
++              .shift = 24,
++              .mask = 0x3,
++      }, {
++              .name = "uart2",
++              .func = { "uart", "gpio", "pwm", NULL },
++              .shift = 26,
++              .mask = 0x3,
++      }, {
++              .name = "pwm0",
++              .func = { "pwm", "gpio", NULL, NULL },
++              .shift = 28,
++              .mask = 0x3,
++      }, {
++              .name = "pwm1",
++              .func = { "pwm", "gpio", NULL, NULL },
++              .shift = 30,
++              .mask = 0x3,
++      }, {
++              .name = "ephy",
++              .func = { "ephy", "gpio", NULL, NULL },
++              .shift = 34,
++              .mask = 0x3,
++      }, {
++              .name = "wled",
++              .func = { "wled", "gpio", NULL, NULL },
++              .shift = 32,
++              .mask = 0x3,
++      },
++};
++
++mraa_result_t gpio_init_pre(int pin)
++{
++      struct pinmux *m = &mt7688_mux[gpio_mux_groups[pin]];
++
++      set_gpiomode(m->mask, m->shift, 1);
++
++      return 0;
++}
++
++static void gpiomode_set(unsigned int id, char *name)
++{
++      int i;
++
++      if (id >= __MUX_MAX)
++              return;
++
++      for (i = 0; i < 4; i++) {
++              if (!mt7688_mux[id].func[i] || strcmp(mt7688_mux[id].func[i], name))
++                      continue;
++              set_gpiomode(mt7688_mux[id].mask, mt7688_mux[id].shift, i);
++              syslog(0, "mraa: set pinmux %s -> %s\n", mt7688_mux[id].name, name);
++              return;
++      }
++}
++
++mraa_result_t i2c_init_pre(unsigned int bus)
++{
++      gpiomode_set(MUX_I2C, "i2c");
++      return 0;
++}
++
++mraa_result_t
++pwm_init_post(mraa_pwm_context pwm)
++{
++      switch(pwm->pin) {
++      case 0:
++              gpiomode_set(MUX_PWM0, "pwm");
++              break;
++      case 1:
++              gpiomode_set(MUX_PWM1, "pwm");
++              break;
++      case 2:
++      case 3:
++              gpiomode_set(MUX_UART2, "pwm");
++              break;
++      }
++      return 0;
++}
++
++mraa_result_t spi_init_pre(int bus)
++{
++      gpiomode_set(MUX_SPI_CS1, "spi_cs1");
++      return 0;
++}
++
++mraa_result_t uart_init_pre(int index)
++{
++      switch(index) {
++      case 0:
++              gpiomode_set(MUX_UART0, "uart");
++              break;
++      case 1:
++              gpiomode_set(MUX_UART1, "uart");
++              break;
++      case 2:
++              gpiomode_set(MUX_UART2, "uart");
++              break;
++      }
++      return 0;
++}
++
++mraa_result_t
++i2c_freq(mraa_i2c_context dev, mraa_i2c_mode_t mode)
++{
++    switch (mode) {
++        case MRAA_I2C_STD:
++            break;
++        default:
++            syslog(LOG_ERR, "Invalid i2c frequency");
++            break;
++    }
++    return MRAA_SUCCESS;
++}
++
++
+ mraa_board_t*
+ mraa_mtk_linkit()
+ {
++    int i;
++
++    if (mmap_gpiomode())
++          return NULL;
++
+     mraa_board_t* b = (mraa_board_t*) malloc(sizeof(mraa_board_t));
+     if (b == NULL) {
+         return NULL;
+     }
+-    b->platform_name = "LINKIT";
++    memset(b, 0, sizeof(mraa_board_t));
++
++    b->platform_name = "LinkIt Smart 7688";
+     platform_detected = PLATFORM_MEDIATEK_LINKIT;
+-    b->phy_pin_count = 31;
++    b->phy_pin_count = 64;
+     b->aio_count = 0;
+     b->adc_raw = 0;
+     b->adc_supported = 0;
+     b->pwm_default_period = 500;
+-    b->pwm_max_period = 2147483;
++    b->pwm_max_period = 1000000;
+     b->pwm_min_period = 1;
+-    b->pins = (mraa_pininfo_t*) malloc(sizeof(mraa_pininfo_t) * b->phy_pin_count);
+-
+-    advance_func->gpio_mmap_setup = &mraa_mtk_linkit_mmap_setup;
+-
+-    strncpy(b->pins[0].name, "P0", MRAA_PIN_NAME_SIZE);
+-    b->pins[0].capabilites = (mraa_pincapabilities_t){ 0, 0, 0, 0, 0, 0, 0, 0 };
+-
+-    strncpy(b->pins[1].name, "P1", MRAA_PIN_NAME_SIZE);
+-    b->pins[1].capabilites = (mraa_pincapabilities_t){ 0, 0, 0, 0, 0, 0, 0, 0 };
+-
+-    strncpy(b->pins[2].name, "P2", MRAA_PIN_NAME_SIZE);
+-    b->pins[2].capabilites = (mraa_pincapabilities_t){ 0, 0, 0, 0, 0, 0, 0, 0 };
+-
+-    strncpy(b->pins[3].name, "P3", MRAA_PIN_NAME_SIZE);
+-    b->pins[3].capabilites = (mraa_pincapabilities_t){ 0, 0, 0, 0, 0, 0, 0, 0 };
+-
+-    strncpy(b->pins[4].name, "P4", MRAA_PIN_NAME_SIZE);
+-    b->pins[4].capabilites = (mraa_pincapabilities_t){ 0, 0, 0, 0, 0, 0, 0, 0 };
+-
+-    strncpy(b->pins[5].name, "P5", MRAA_PIN_NAME_SIZE);
+-    b->pins[5].capabilites = (mraa_pincapabilities_t){ 0, 0, 0, 0, 0, 0, 0, 0 };
+-
+-    strncpy(b->pins[6].name, "P6", MRAA_PIN_NAME_SIZE);
+-    b->pins[6].capabilites = (mraa_pincapabilities_t){ 0, 0, 0, 0, 0, 0, 0, 0 };
+-
+-    strncpy(b->pins[7].name, "P7", MRAA_PIN_NAME_SIZE);
+-    b->pins[7].capabilites = (mraa_pincapabilities_t){ 0, 0, 0, 0, 0, 0, 0, 0 };
+-
+-    strncpy(b->pins[8].name, "P8", MRAA_PIN_NAME_SIZE);
+-    b->pins[8].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 1 };
+-    b->pins[8].gpio.pinmap = 21;
+-    b->pins[8].uart.parent_id = 2;
+-    b->pins[8].uart.mux_total = 0;
++    b->adv_func = (mraa_adv_func_t*) calloc(1, sizeof(mraa_adv_func_t));
++    if (b->adv_func == NULL) {
++        return NULL;
++    }
+-    strncpy(b->pins[9].name, "P9", MRAA_PIN_NAME_SIZE);
+-    b->pins[9].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 1 };
+-    b->pins[9].gpio.pinmap = 20;
+-    b->pins[9].uart.parent_id = 2;
+-    b->pins[9].uart.mux_total = 0;
++    b->adv_func->i2c_init_pre = i2c_init_pre;
++    b->adv_func->pwm_init_post = pwm_init_post;
++    b->adv_func->spi_init_pre = spi_init_pre;
++    b->adv_func->uart_init_pre = uart_init_pre;
++    b->adv_func->gpio_init_pre = gpio_init_pre;
++    b->adv_func->i2c_set_frequency_replace = &i2c_freq;
+-    strncpy(b->pins[10].name, "P10", MRAA_PIN_NAME_SIZE);
+-    b->pins[10].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 0 };
+-    b->pins[10].gpio.pinmap = 2;
++    b->pins = (mraa_pininfo_t*) malloc(sizeof(mraa_pininfo_t) * b->phy_pin_count);
+-    strncpy(b->pins[11].name, "P11", MRAA_PIN_NAME_SIZE);
+-    b->pins[11].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 0 };
+-    b->pins[11].gpio.pinmap = 3;
++    memset(b->pins, 0, sizeof(mraa_pininfo_t) * b->phy_pin_count);
++    memset(gpio_mux_groups, -1, sizeof(gpio_mux_groups));
+-    strncpy(b->pins[12].name, "P12", MRAA_PIN_NAME_SIZE);
+-    b->pins[12].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 0 };
+-    b->pins[12].gpio.pinmap = 0;
++    b->adv_func->gpio_mmap_setup = &mraa_mtk_linkit_mmap_setup;
+-    strncpy(b->pins[13].name, "P13", MRAA_PIN_NAME_SIZE);
+-    b->pins[13].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 0 };
+-    b->pins[13].gpio.pinmap = 1;
++    for (i = 0; i < b->phy_pin_count; i++) {
++        snprintf(b->pins[i].name, MRAA_PIN_NAME_SIZE, "GPIO%d", i);
++        b->pins[i].capabilites = (mraa_pincapabilities_t){ 0, 0, 0, 0, 0, 0, 0, 0 };
++    }
+-    strncpy(b->pins[14].name, "P14", MRAA_PIN_NAME_SIZE);
+-    b->pins[14].capabilites = (mraa_pincapabilities_t){ 0, 0, 0, 0, 0, 0, 0, 0 };
++    strncpy(b->pins[43].name, "GPIO43", MRAA_PIN_NAME_SIZE);
++    b->pins[43].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 0 };
++    b->pins[43].gpio.pinmap = 43;
++    gpio_mux_groups[43] = MUX_EPHY;
++
++    strncpy(b->pins[20].name, "GPIO20", MRAA_PIN_NAME_SIZE);
++    b->pins[20].capabilites = (mraa_pincapabilities_t){ 1, 1, 1, 0, 0, 0, 0, 1 };
++    b->pins[20].gpio.pinmap = 20;
++    b->pins[20].uart.parent_id = 2;
++    b->pins[20].uart.mux_total = 0;
++    b->pins[20].pwm.parent_id = 0;
++    b->pins[20].pwm.pinmap = 2;
++    gpio_mux_groups[20] = MUX_UART2;
++
++    strncpy(b->pins[21].name, "GPIO21", MRAA_PIN_NAME_SIZE);
++    b->pins[21].capabilites = (mraa_pincapabilities_t){ 1, 1, 1, 0, 0, 0, 0, 1 };
++    b->pins[21].gpio.pinmap = 21;
++    b->pins[21].uart.parent_id = 2;
++    b->pins[21].uart.mux_total = 0;
++    b->pins[21].pwm.parent_id = 0;
++    b->pins[21].pwm.pinmap = 3;
++    gpio_mux_groups[21] = MUX_UART2;
++
++    strncpy(b->pins[2].name, "GPIO2", MRAA_PIN_NAME_SIZE);
++    b->pins[2].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 0 };
++    b->pins[2].gpio.pinmap = 2;
++    gpio_mux_groups[2] = MUX_I2S;
++
++    strncpy(b->pins[3].name, "GPIO3", MRAA_PIN_NAME_SIZE);
++    b->pins[3].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 0 };
++    b->pins[3].gpio.pinmap = 3;
++    gpio_mux_groups[3] = MUX_I2S;
++
++    strncpy(b->pins[0].name, "GPIO0", MRAA_PIN_NAME_SIZE);
++    b->pins[0].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 0 };
++    b->pins[0].gpio.pinmap = 0;
++    gpio_mux_groups[0] = MUX_I2S;
++
++    strncpy(b->pins[1].name, "GPIO1", MRAA_PIN_NAME_SIZE);
++    b->pins[1].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 0 };
++    b->pins[1].gpio.pinmap = 1;
++    gpio_mux_groups[1] = MUX_I2S;
++
++    strncpy(b->pins[37].name, "GPIO37", MRAA_PIN_NAME_SIZE);
++    b->pins[37].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 0 };
++    b->pins[37].gpio.pinmap = 37;
++    gpio_mux_groups[37] = MUX_GPIO;
++
++    strncpy(b->pins[44].name, "GPIO44", MRAA_PIN_NAME_SIZE);
++    b->pins[44].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 0 };
++    b->pins[44].gpio.pinmap = 44;
++    gpio_mux_groups[44] = MUX_WLED;
++
++    strncpy(b->pins[46].name, "GPIO46", MRAA_PIN_NAME_SIZE);
++    b->pins[46].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 1 };
++    b->pins[46].gpio.pinmap = 46;
++    b->pins[46].uart.parent_id = 1;
++    b->pins[46].uart.mux_total = 0;
++    gpio_mux_groups[46] = MUX_UART1;
++
++    strncpy(b->pins[45].name, "GPIO45", MRAA_PIN_NAME_SIZE);
++    b->pins[45].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 1 };
++    b->pins[45].gpio.pinmap = 45;
++    b->pins[45].uart.parent_id = 1;
++    b->pins[45].uart.mux_total = 0;
++    gpio_mux_groups[45] = MUX_UART1;
++
++    strncpy(b->pins[13].name, "GPIO13", MRAA_PIN_NAME_SIZE);
++    b->pins[13].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 1 };
++    b->pins[13].gpio.pinmap = 13;
++    b->pins[13].uart.parent_id = 1;
++    b->pins[13].uart.mux_total = 0;
++    gpio_mux_groups[13] = MUX_UART0;
++
++    strncpy(b->pins[12].name, "GPIO12", MRAA_PIN_NAME_SIZE);
++    b->pins[12].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 1 };
++    b->pins[12].gpio.pinmap = 12;
++    b->pins[12].uart.parent_id = 0;
++    b->pins[12].uart.mux_total = 0;
++    gpio_mux_groups[12] = MUX_UART0;
++
++    strncpy(b->pins[5].name, "GPIO5", MRAA_PIN_NAME_SIZE);
++    b->pins[5].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 1, 0, 0 };
++    b->pins[5].gpio.pinmap = 5;
++    b->pins[5].i2c.pinmap = 0;
++    b->pins[5].i2c.mux_total = 0;
++    gpio_mux_groups[5] = MUX_I2C;
++
++    strncpy(b->pins[4].name, "GPIO4", MRAA_PIN_NAME_SIZE);
++    b->pins[4].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 1, 0, 0 };
++    b->pins[4].gpio.pinmap = 4;
++    b->pins[4].i2c.pinmap = 0;
++    b->pins[4].i2c.mux_total = 0;
++    gpio_mux_groups[4] = MUX_I2C;
++
++    strncpy(b->pins[6].name, "GPIO6", MRAA_PIN_NAME_SIZE);
++    b->pins[6].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 1, 0, 0, 0 };
++    b->pins[6].gpio.pinmap = 6;
++    b->pins[6].spi.pinmap = 0;
++    b->pins[6].spi.mux_total = 0;
++    gpio_mux_groups[6] = MUX_SPI_CS1;
++
++    strncpy(b->pins[7].name, "GPIO7", MRAA_PIN_NAME_SIZE);
++    b->pins[7].capabilites = (mraa_pincapabilities_t){ 1, 0, 0, 0, 1, 0, 0, 0 };
++    b->pins[7].spi.pinmap = 0;
++    b->pins[7].spi.mux_total = 0;
++
++    strncpy(b->pins[8].name, "GPIO8", MRAA_PIN_NAME_SIZE);
++    b->pins[8].capabilites = (mraa_pincapabilities_t){ 1, 0, 0, 0, 1, 0, 0, 0 };
++    b->pins[8].spi.pinmap = 0;
++    b->pins[8].spi.mux_total = 0;
++
++    strncpy(b->pins[9].name, "GPIO9", MRAA_PIN_NAME_SIZE);
++    b->pins[9].capabilites = (mraa_pincapabilities_t){ 1, 0, 0, 0, 1, 0, 0, 0 };
++    b->pins[9].spi.pinmap = 0;
++    b->pins[9].spi.mux_total = 0;
++
++    strncpy(b->pins[18].name, "GPIO18", MRAA_PIN_NAME_SIZE);
++    b->pins[18].capabilites = (mraa_pincapabilities_t){ 1, 1, 1, 0, 0, 0, 0, 0 };
++    b->pins[18].gpio.pinmap = 18;
++    b->pins[18].pwm.parent_id = 0;
++    b->pins[18].pwm.pinmap = 0;
++    gpio_mux_groups[18] = MUX_PWM0;
++
++    strncpy(b->pins[19].name, "GPIO19", MRAA_PIN_NAME_SIZE);
++    b->pins[19].capabilites = (mraa_pincapabilities_t){ 1, 1, 1, 0, 0, 0, 0, 0 };
++    b->pins[19].gpio.pinmap = 19;
++    b->pins[19].pwm.parent_id = 0;
++    b->pins[19].pwm.pinmap = 1;
++    gpio_mux_groups[19] = MUX_PWM1;
++
++    strncpy(b->pins[16].name, "GPIO16", MRAA_PIN_NAME_SIZE);
++    b->pins[16].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 0 };
++    b->pins[16].gpio.pinmap = 16;
++    gpio_mux_groups[16] = MUX_SPI_S;
++
++    strncpy(b->pins[17].name, "GPIO17", MRAA_PIN_NAME_SIZE);
++    b->pins[17].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 0 };
++    b->pins[17].gpio.pinmap = 17;
++    gpio_mux_groups[17] = MUX_SPI_S;
++
++    strncpy(b->pins[14].name, "GPIO14", MRAA_PIN_NAME_SIZE);
++    b->pins[14].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 0 };
++    b->pins[14].gpio.pinmap = 14;
++    gpio_mux_groups[14] = MUX_SPI_S;
+-    strncpy(b->pins[15].name, "P15", MRAA_PIN_NAME_SIZE);
++    strncpy(b->pins[15].name, "GPIO15", MRAA_PIN_NAME_SIZE);
+     b->pins[15].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 0 };
+-    b->pins[15].gpio.pinmap = 44;
+-
+-    strncpy(b->pins[16].name, "P16", MRAA_PIN_NAME_SIZE);
+-    b->pins[16].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 1 };
+-    b->pins[16].gpio.pinmap = 46;
+-    b->pins[16].uart.parent_id = 1;
+-    b->pins[16].uart.mux_total = 0;
+-
+-    strncpy(b->pins[17].name, "P17", MRAA_PIN_NAME_SIZE);
+-    b->pins[17].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 1 };
+-    b->pins[17].gpio.pinmap = 45;
+-    b->pins[17].uart.parent_id = 1;
+-    b->pins[17].uart.mux_total = 0;
+-
+-    strncpy(b->pins[18].name, "P18", MRAA_PIN_NAME_SIZE);
+-    b->pins[18].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 1 };
+-    b->pins[18].gpio.pinmap = 13;
+-    b->pins[18].uart.parent_id = 1;
+-    b->pins[18].uart.mux_total = 0;
+-
+-    strncpy(b->pins[19].name, "P19", MRAA_PIN_NAME_SIZE);
+-    b->pins[19].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 1 };
+-    b->pins[19].gpio.pinmap = 12;
+-    b->pins[19].uart.parent_id = 0;
+-    b->pins[19].uart.mux_total = 0;
+-
+-    strncpy(b->pins[20].name, "P20", MRAA_PIN_NAME_SIZE);
+-    b->pins[20].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 1, 0, 0 };
+-    b->pins[20].gpio.pinmap = 5;
+-    b->pins[20].i2c.pinmap = 0;
+-    b->pins[20].i2c.mux_total = 0;
+-
+-    strncpy(b->pins[21].name, "P21", MRAA_PIN_NAME_SIZE);
+-    b->pins[21].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 1, 0, 0 };
+-    b->pins[21].gpio.pinmap = 4;
+-    b->pins[21].i2c.pinmap = 0;
+-    b->pins[21].i2c.mux_total = 0;
+-
+-    strncpy(b->pins[22].name, "P22", MRAA_PIN_NAME_SIZE);
+-    b->pins[22].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 1, 0, 0, 0 };
+-    b->pins[22].gpio.pinmap = 8;
+-    b->pins[22].spi.pinmap = 0;
+-    b->pins[22].spi.mux_total = 0;
+-
+-    strncpy(b->pins[23].name, "P23", MRAA_PIN_NAME_SIZE);
+-    b->pins[23].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 1, 0, 0, 0 };
+-    b->pins[23].gpio.pinmap = 9;
+-    b->pins[23].spi.pinmap = 0;
+-    b->pins[23].spi.mux_total = 0;
+-
+-    strncpy(b->pins[24].name, "P24", MRAA_PIN_NAME_SIZE);
+-    b->pins[24].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 1, 0, 0, 0 };
+-    b->pins[24].gpio.pinmap = 7;
+-    b->pins[24].spi.pinmap = 0;
+-    b->pins[24].spi.mux_total = 0;
+-
+-    strncpy(b->pins[25].name, "P25", MRAA_PIN_NAME_SIZE);
+-    b->pins[25].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 1, 0, 0, 0 };
+-    b->pins[25].gpio.pinmap = 6;
+-    b->pins[25].spi.pinmap = 0;
+-    b->pins[25].spi.mux_total = 0;
+-
+-    strncpy(b->pins[26].name, "P26", MRAA_PIN_NAME_SIZE);
+-    b->pins[26].capabilites = (mraa_pincapabilities_t){ 1, 1, 1, 0, 0, 0, 0, 0 };
+-    b->pins[26].gpio.pinmap = 18;
+-
+-    strncpy(b->pins[27].name, "P27", MRAA_PIN_NAME_SIZE);
+-    b->pins[27].capabilites = (mraa_pincapabilities_t){ 1, 1, 1, 0, 0, 0, 0, 0 };
+-    b->pins[27].gpio.pinmap = 19;
+-
+-    strncpy(b->pins[28].name, "P28", MRAA_PIN_NAME_SIZE);
+-    b->pins[28].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 0 };
+-    b->pins[28].gpio.pinmap = 16;
+-
+-    strncpy(b->pins[29].name, "P29", MRAA_PIN_NAME_SIZE);
+-    b->pins[29].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 0 };
+-    b->pins[29].gpio.pinmap = 17;
+-
+-    strncpy(b->pins[30].name, "P30", MRAA_PIN_NAME_SIZE);
+-    b->pins[30].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 0 };
+-    b->pins[30].gpio.pinmap = 14;
+-
+-    strncpy(b->pins[31].name, "P31", MRAA_PIN_NAME_SIZE);
+-    b->pins[31].capabilites = (mraa_pincapabilities_t){ 1, 1, 0, 0, 0, 0, 0, 0 };
+-    b->pins[31].gpio.pinmap = 15;
++    b->pins[15].gpio.pinmap = 15;
++    gpio_mux_groups[15] = MUX_SPI_S;
+     // BUS DEFINITIONS
+     b->i2c_bus_count = 1;
+     b->def_i2c_bus = 0;
+-        b->i2c_bus[0].bus_id = 0;
+-    b->i2c_bus[0].sda = 20;
+-    b->i2c_bus[0].scl = 21;
++    b->i2c_bus[0].bus_id = 0;
++    b->i2c_bus[0].sda = 5;
++    b->i2c_bus[0].scl = 4;
+     b->spi_bus_count = 1;
+     b->def_spi_bus = 0;
+-    b->spi_bus[0].bus_id = 0;
+-    b->spi_bus[0].slave_s = 0;
+-    b->spi_bus[0].cs = 25;
+-    b->spi_bus[0].mosi = 22;
+-    b->spi_bus[0].miso = 23;
+-    b->spi_bus[0].sclk = 21;
++    b->spi_bus[0].bus_id = 32766;
++    b->spi_bus[0].slave_s = 1;
++    b->spi_bus[0].cs = 6;
++    b->spi_bus[0].mosi = 8;
++    b->spi_bus[0].miso = 9;
++    b->spi_bus[0].sclk = 7;
+     b->uart_dev_count = 3;
+     b->def_uart_dev = 0;
+-    b->uart_dev[0].rx = 18;
+-    b->uart_dev[0].tx = 19;
+-
+-    b->uart_dev[1].rx = 16;
+-    b->uart_dev[1].tx = 17;
+-
+-    b->uart_dev[2].rx = 9;
+-    b->uart_dev[2].tx = 8;
++    b->uart_dev[0].rx = 13;
++    b->uart_dev[0].tx = 12;
++    b->uart_dev[0].device_path = "/dev/ttyS0";
++    b->uart_dev[1].rx = 46;
++    b->uart_dev[1].tx = 45;
++    b->uart_dev[1].device_path = "/dev/ttyS1";
++    b->uart_dev[2].rx = 21;
++    b->uart_dev[2].tx = 20;
++    b->uart_dev[2].device_path = "/dev/ttyS2";
+     b->gpio_count = 0;
+-    int i;
+     for (i = 0; i < b->phy_pin_count; i++) {
+         if (b->pins[i].capabilites.gpio) {
+             b->gpio_count++;
+--- a/src/gpio/gpio.c
++++ b/src/gpio/gpio.c
+@@ -113,6 +113,8 @@
+         close(export);
+     }
++    mraa_gpio_use_mmaped(dev, 1);
++
+ init_internal_cleanup:
+     if (status != MRAA_SUCCESS) {
+         if (dev != NULL)
index 00af18f996a4d2bba01bdc00a2db3a5a0a3a6539..e124bf80f5dde59e0269ede657513286e6d6d43b 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libradcli
-PKG_VERSION:=1.2.1
+PKG_VERSION:=1.2.3
 PKG_RELEASE:=1
 
 PKG_SOURCE:=radcli-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://github.com/radcli/radcli/releases/download/radcli_1_2_1/
-PKG_MD5SUM:=48f917ed3822ed2d91a5e90309a80812
+PKG_SOURCE_URL:=https://github.com/radcli/radcli/releases/download/radcli_1_2_3/
+PKG_MD5SUM:=e283db7db2248cd6499aff69813cb1ed
 PKG_BUILD_DIR:=$(BUILD_DIR)/radcli-$(PKG_VERSION)
 
 PKG_INSTALL:=1
index 3b1ff78c373fba70de8604d3927111be61a65533..524bb6f5e095784b17a8951f3c2bf7e1dc11fc57 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libsigc++
-PKG_VERSION:=2.5.2
+PKG_VERSION:=2.5.4
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@GNOME/libsigc++/2.5
-PKG_MD5SUM:=dfa12d53e4603504701866c256df84eb
+PKG_MD5SUM:=0b74492da5f640ab69888a984c6520d7
 PKG_MAINTAINER:=Steven Barth <cyrus@openwrt.org>
 PKG_LICENSE:=LGPL-2.1
 
index 9e9809de8a944d0f7a44e0e0e1ef2265aab8e33a..fa92f14057916ec45bff51e9d7cefec3c90182f2 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libsndfile
-PKG_VERSION:=1.0.25
+PKG_VERSION:=1.0.26
 PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.mega-nerd.com/libsndfile/files/
-PKG_MD5SUM:=e2b7bb637e01022c7d20f95f9c3990a2
+PKG_MD5SUM:=ec810a0c60c08772a8a5552704b63393
 
 PKG_LICENSE:=LGPLv2.1
 PKG_LICENSE_FILES:=COPYING
diff --git a/libs/libsndfile/patches/001-automake-compat.patch b/libs/libsndfile/patches/001-automake-compat.patch
deleted file mode 100644 (file)
index 2df32ae..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -1,5 +1,7 @@
- ## Process this file with automake to produce Makefile.in
-+ACLOCAL_AMFLAGS = -I M4
-+
- DISTCHECK_CONFIGURE_FLAGS = --enable-gcc-werror
- if BUILD_OCTAVE_MOD
index 44810947286a4fb45e6f59be6b46d51f2256a63d..24892ad3f7e39a39880b19e3d30b8f4d24c9097d 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2009-2014 OpenWrt.org
+# Copyright (C) 2009-2015 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libsodium
-PKG_VERSION:=1.0.3
+PKG_VERSION:=1.0.6
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://download.libsodium.org/libsodium/releases
-PKG_MD5SUM:=b3bcc98e34d3250f55ae196822307fab
+PKG_MD5SUM:=03e8e96cef9d18473aafef7d474a6e88
 
 PKG_FIXUP:=libtool autoreconf
 PKG_USE_MIPS16:=0
index 2b5a2d4b86afb497568dbb1cb9e70fb8bf8c9a30..8190addc0df5b5e7bab93972b7af7d83b3694b7b 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libtasn1
-PKG_VERSION:=4.4
+PKG_VERSION:=4.7
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=ftp://ftp.gnu.org/gnu/libtasn1
-PKG_MD5SUM:=c26d76d1309dd339365c563076599912
+PKG_MD5SUM:=12d10ca4ae0a3b95f7aa06a076da39ec
 
 #PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1
index 2001235a993f80d3c9f8accc1919fd795ec36ffa..6b41e87b87b71f86c2b015dc1d5d10e73c3e719a 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2007-2013 OpenWrt.org
+# Copyright (C) 2007-2015 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libtorrent
-PKG_VERSION:=0.13.4-git-1
+PKG_VERSION:=0.13.6-git-1
 PKG_RELEASE=$(PKG_SOURCE_VERSION)
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/rakshasa/libtorrent.git
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=72e908707f01ee01a9b4918436c64348878b63f7
+PKG_SOURCE_VERSION:=14e793b75dac95c51ad64ff9cd2dc6772b68c625
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
 
 PKG_FIXUP:=autoreconf
@@ -50,7 +50,7 @@ CONFIGURE_ARGS+= \
        --enable-openssl \
        --disable-instrumentation \
        --with-zlib=$(STAGING_DIR)/usr \
-       $(call autoconf_bool,CONFIG_IPV6,ipv6)
+       --disable-ipv6
 
 define Build/InstallDev
        $(INSTALL_DIR) $(1)/usr/include
diff --git a/libs/libtorrent/patches/120-fix-ipv6_socket_datagram.patch b/libs/libtorrent/patches/120-fix-ipv6_socket_datagram.patch
deleted file mode 100644 (file)
index 1a46627..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
---- a/src/net/socket_datagram.cc
-+++ b/src/net/socket_datagram.cc
-@@ -73,6 +73,23 @@ SocketDatagram::write_datagram(const voi
-   int r;
-   if (sa != NULL) {
-+#ifdef RAK_USE_INET6
-+    if (m_ipv6_socket && sa->family() == rak::socket_address::pf_inet) {
-+      uint32_t addr32[4];
-+      sockaddr_in6 mapped_addr;
-+      memset(&mapped_addr, 0, sizeof(mapped_addr));
-+      mapped_addr.sin6_family = AF_INET6;
-+      addr32[0] = 0;
-+      addr32[1] = 0;
-+      addr32[2] = htonl(0xffff);
-+      addr32[3] = sa->sa_inet()->address_n();
-+      memcpy(mapped_addr.sin6_addr.s6_addr, addr32, sizeof(uint32_t) * 4);
-+      mapped_addr.sin6_port = sa->sa_inet()->port_n();
-+      r = ::sendto(m_fileDesc, buffer, length, 0, (sockaddr*)&mapped_addr, sizeof(mapped_addr));
-+    } else if (m_ipv6_socket && sa->family() == rak::socket_address::pf_inet6) {
-+      r = ::sendto(m_fileDesc, buffer, length, 0, sa->sa_inet6()->c_sockaddr(), sizeof(rak::socket_address_inet6));
-+    } else
-+#endif
-     r = ::sendto(m_fileDesc, buffer, length, 0, sa->sa_inet()->c_sockaddr(), sizeof(rak::socket_address_inet));
-   } else {
-     r = ::send(m_fileDesc, buffer, length, 0);
index 63b6ebe217fc2ff105a1a223807c610c31158eb8..fb269339ce073d1b51840b6efefe00838445ce61 100644 (file)
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libuecc
-PKG_VERSION:=5
+PKG_VERSION:=6
 PKG_RELEASE:=1
 
 PKG_MAINTAINER:=Matthias Schiffer <mschiffer@universe-factory.net>
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_SOURCE_URL:=https://projects.universe-factory.net/attachments/download/80
-PKG_MD5SUM:=cd03c947931c2f4b0eea0bf45654bd34
+PKG_SOURCE_URL:=https://projects.universe-factory.net/attachments/download/83
+PKG_MD5SUM:=cba68339ff46482ec4090303de18fff4
 
 PKG_LICENSE:=BSD-2-Clause
 PKG_LICENSE_FILES:=COPYRIGHT
diff --git a/libs/libupm/Makefile b/libs/libupm/Makefile
new file mode 100644 (file)
index 0000000..93287c5
--- /dev/null
@@ -0,0 +1,82 @@
+#
+# Copyright (C) 2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=libupm
+PKG_VERSION:=0.4.0
+
+PKG_RELEASE=$(PKG_SOURCE_VERSION)
+
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL:=https://github.com/intel-iot-devkit/upm.git
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
+PKG_SOURCE_VERSION:=04dc6df4297a7766d6f1a8fef9699d586e7e0d92
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
+CMAKE_INSTALL:=1
+
+PKG_MAINTAINER:=John Crispin <blogic@openwrt.org>
+PKG_LICENSE:=LGPL-2.1
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/cmake.mk
+
+UPM_MODULES:= \
+       a110x ad8232 adafruitss adc121c021 adis16448 adxl335 adxl345 am2315 apds9002 at42qt1070 biss0001 bmpx8x buzzer \
+       cjq4435 ds1307 ecs1030 enc03r flex gas gp2y0a grovecircularled grovecollision groveehr groveeldriver groveelectromagnet \
+       groveemg grovegprs grovegsr grovelinefinder grovemd grovemoisture groveo2 grovescam grove grovespeaker grovevdiv grovewater \
+       grovewfs guvas12d h3lis331dl hcsr04 hm11 hmc5883l hmtrp hp20x ht9170 htu21d hx711 i2clcd ina132 isd1820 itg3200 joystick12 \
+       l298 ldt0028 lm35 lol loudness lpd8806 lsm303 lsm9ds0 m24lr64e max31723 max31855 max44000 max5487 maxds3231m maxsonarez \
+       mg811 mhz16 mic mlx90614 mma7455 mma7660 mpl3115a2 mpr121 mpu9150 mq303a my9221 nrf24l01 nrf8001 nunchuck otp538u \
+       pn532 ppd42ns pulsensor rfr359f rgbringcoder rotaryencoder rpr220 servo si114x sm130 st7735 stepmotor sx6119 ta12200 tcs3414cs \
+       th02 tm1637 tsl2561 ttp223 ublox6 uln200xa waterlevel wheelencoder wt5001 yg1006 zfm20
+
+CMAKE_OPTIONS=-DBUILDARCH=$(CONFIG_ARCH) \
+       -DNODE_EXECUTABLE=$(STAGING_DIR_HOST)/bin/node \
+       -DSWIG_DIR=$(STAGING_DIR_HOST)/bin
+
+define Package/libupm/Default
+  SECTION:=libs
+  CATEGORY:=Libraries
+  DEPENDS:=+libmraa +librt
+  SUBMENU:=IoT
+endef
+
+define Package/libupm
+  $(call Package/libupm/Default)
+  TITLE:=Intel IoT sensor library - Full
+endef
+
+define Package/libupm/install/Default
+       $(INSTALL_DIR) $(1)/usr/lib/{node/,python2.7/site-packages}; \
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libupm-$(2).so* $(1)/usr/lib/; \
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/node_modules/jsupm_$(2) $(1)/usr/lib/node/; \
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/python2.7/site-packages/{pyupm_$(2).py,_pyupm_$(2).so} \
+               $(1)/usr/lib/python2.7/site-packages/ ;
+endef
+
+define Package/libupm/install
+       $(foreach module, $(UPM_MODULES),       \
+               $(call Package/libupm/install/Default,$(1),$(module)))
+endef
+
+define UpmPackage
+define Package/libupm-$(1)
+  $(call Package/libupm/Default)
+  TITLE:=Intel IoT sensor library - $(1)
+endef
+
+define Package/libupm-$(1)/install
+       $(call Package/libupm/install/Default,$$(1),$(1))
+endef
+endef
+
+$(eval $(call BuildPackage,libupm))
+$(foreach package, $(UPM_MODULES),                     \
+       $(eval $(call UpmPackage,$(package)))           \
+       $(eval $(call BuildPackage,libupm-$(package)))  \
+)
diff --git a/libs/libupm/patches/001-version.patch b/libs/libupm/patches/001-version.patch
new file mode 100644 (file)
index 0000000..3d4fd6c
--- /dev/null
@@ -0,0 +1,16 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -26,12 +26,7 @@
+ include(GNUInstallDirs)
+ # Make a version file containing the current version from git.
+-include (GetGitRevisionDescription)
+-git_describe (VERSION "--tags")
+-if ("x_${VERSION}" STREQUAL "x_GIT-NOTFOUND")
+-  message (WARNING " - Install git to compile a production UPM!")
+-  set (VERSION "v0.4.0-dirty")
+-endif ()
++set (VERSION "v0.4.0")
+ message (INFO " - UPM Version ${VERSION}")
diff --git a/libs/libupm/patches/002-at42qt1070-id.patch b/libs/libupm/patches/002-at42qt1070-id.patch
new file mode 100644 (file)
index 0000000..85544c9
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/src/at42qt1070/at42qt1070.cxx
++++ b/src/at42qt1070/at42qt1070.cxx
+@@ -53,7 +53,7 @@
+         return;
+     }
+-    if (readChipID() != 0x2E) {
++    if (readChipID() != 0x1b && readChipID() != 0x2E) {
+         throw std::runtime_error("Chip ID does not match the expected value (2Eh)");
+     }
diff --git a/libs/libupm/patches/003-lsm303-args.patch b/libs/libupm/patches/003-lsm303-args.patch
new file mode 100644 (file)
index 0000000..d2b2d0e
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/src/lsm303/lsm303.h
++++ b/src/lsm303/lsm303.h
+@@ -34,7 +34,7 @@
+ /* LSM303 Address definitions */
+ #define LSM303_MAG 0x1E // assuming SA0 grounded
+-#define LSM303_ACC 0x18 // assuming SA0 grounded
++#define LSM303_ACC 0x1E // assuming SA0 grounded
+ /* LSM303 Register definitions */
+ #define CTRL_REG1_A 0x20
index d9952e6fba147c3bd50934a89887c7f1bc050e7b..3e5f00462c1c8db1a6b59cc683daa95ce881240a 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libwebsockets
-PKG_VERSION:=1.4-chrome43-firefox-36
+PKG_VERSION:=1.5-chrome47-firefox41
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
@@ -27,7 +27,7 @@ CMAKE_INSTALL:=1
 include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/cmake.mk
 
-CMAKE_OPTIONS += $(if $(CONFIG_PACKAGE_kmod-ipv6),,-DLWS_IPV6=)
+CMAKE_OPTIONS += $(if $(CONFIG_IPV6),,-DLWS_IPV6=)
 
 CMAKE_OPTIONS += -DLWS_WITHOUT_TESTAPPS=ON
 
index 8680e9cef226536b23f371e275c1ddda5a6bb4c6..8e09530e384dfe2a21f18c95639fc3b4c20acfcc 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2006-2014 OpenWrt.org
+# Copyright (C) 2006-2015 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -8,14 +8,14 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libxml2
-PKG_VERSION:=2.9.2
-PKG_RELEASE:=3
+PKG_VERSION:=2.9.3
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://gd.tuwien.ac.at/languages/libxml/ \
        http://xmlsoft.org/sources/ \
        ftp://fr.rpmfind.net/pub/libxml/
-PKG_MD5SUM:=9e6a9aca9d155737868b3dc5fd82f788
+PKG_MD5SUM:=daece17e045f1c107610e137ab50c179
 
 PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=COPYING
diff --git a/libs/libxml2/patches/0001-threads-use-forward-declarations-only-for-glibc-fixe.patch b/libs/libxml2/patches/0001-threads-use-forward-declarations-only-for-glibc-fixe.patch
deleted file mode 100644 (file)
index e6c3fbe..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-From e3e04d254fb6bac49a285775b729e28b0500476c Mon Sep 17 00:00:00 2001
-From: Michael Heimpold <mhei@heimpold.de>
-Date: Sun, 21 Dec 2014 01:03:49 +0100
-Subject: [PATCH] threads: use forward declarations only for glibc (fixes
- #704908)
-
-The declarations of pthread functions, used to generate weak references
-to them, fail to suppress macros. Thus, if any pthread function has
-been provided as a macro, compiling threads.c will fail.
-This breaks on musl libc, which defines pthread_equal as a macro (in
-addition to providing the function, as required).
-
-Prevent the declarations for e.g. musl libc by refining the condition.
-
-The idea for this solution was borrowed from the alpine linux guys, see
-http://git.alpinelinux.org/cgit/aports/tree/main/libxml2/libxml2-pthread.patch
-
-Signed-off-by: Michael Heimpold <mhei@heimpold.de>
----
- threads.c |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
---- a/threads.c
-+++ b/threads.c
-@@ -47,7 +47,7 @@
- #ifdef HAVE_PTHREAD_H
- static int libxml_is_threaded = -1;
--#ifdef __GNUC__
-+#if defined(__GNUC__) && defined(__GLIBC__)
- #ifdef linux
- #if (__GNUC__ == 3 && __GNUC_MINOR__ >= 3) || (__GNUC__ > 3)
- extern int pthread_once (pthread_once_t *__once_control,
-@@ -89,7 +89,7 @@ extern int pthread_cond_signal ()
-          __attribute((weak));
- #endif
- #endif /* linux */
--#endif /* __GNUC__ */
-+#endif /* defined(__GNUC__) && defined(__GLIBC__) */
- #endif /* HAVE_PTHREAD_H */
- /*
index 96bf3a6253803e0e84fbf80858713f255eed94e5..f3fc66eed39a14f016b92c074256aef30ce2c751 100644 (file)
@@ -23,6 +23,10 @@ PKG_BUILD_DEPENDS:=libzdb/host
 
 include $(INCLUDE_DIR)/package.mk
 
+ifeq ($(CONFIG_USE_MUSL),n)
+    LDFLAGS += -lnsl
+endif
+
 define Package/libzdb
     SECTION:=libs
     CATEGORY:=Libraries
index 18507da87b33b434437984da4b9ebc315839cd50..489b18c0aaca557fe3894ed6a89f8389204df4ee 100644 (file)
@@ -40,7 +40,7 @@ diff -rupN libzdb-3.0.orig/configure.ac libzdb-3.0/configure.ac
 -                DBCPPFLAGS="$DBCPPFLAGS `$MYSQLCONFIG --include`"
 -                DBLDFLAGS="$DBLDFLAGS `$MYSQLCONFIG --libs`"
 +                DBCPPFLAGS="$DBCPPFLAGS -I$STAGING_DIR/usr/include/mysql"
-+                DBLDFLAGS="$DBLDFLAGS -L$STAGING_DIR/usr/lib/mysql -L$STAGING_DIR/usr/lib -lmysqlclient -lz -lcrypt -lnsl -lm"
++                DBLDFLAGS="$DBLDFLAGS -L$STAGING_DIR/usr/lib/mysql -L$STAGING_DIR/usr/lib -lmysqlclient -lz -lcrypt -lm $LDFLAGS"
                  AC_DEFINE([HAVE_LIBMYSQLCLIENT], 1, [Define to 1 to enable mysql])
          else
                  CPPFLAGS=$svd_CPPFLAGS
index 3b6efa599f038ff32060a6ea95afd401744bc8cf..c77f14e06a187e12e589a00397562673d251325e 100644 (file)
@@ -52,6 +52,8 @@ CMAKE_OPTIONS += -DBUILD_opencv_gpu:BOOL=OFF \
        -DWITH_LIBV4L:BOOL=OFF \
        -DWITH_PNG:BOOL=OFF \
        -DWITH_TIFF:BOOL=OFF \
+       -DCMAKE_VERBOSE:BOOL=OFF \
+       -DENABLE_PRECOMPILED_HEADERS=OFF
 
 define Build/InstallDev
        $(INSTALL_DIR) $(1)/usr/include
index 47a88fbc66495de945cd2c8df04b58d1d35bd4ac..4a94a8986bd68b7fd6354b7af27f05f6e46440c0 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=unixodbc
-PKG_VERSION:=2.3.3
+PKG_VERSION:=2.3.4
 PKG_RELEASE:=1
 
 PKG_SOURCE_URL:=@SF/unixodbc
 PKG_SOURCE:=unixODBC-$(PKG_VERSION).tar.gz
-PKG_MD5SUM:=09bf65123905b951af192854d70eeae8
+PKG_MD5SUM:=bd25d261ca1808c947cb687e2034be81
 PKG_BUILD_DIR:=$(BUILD_DIR)/unixODBC-$(PKG_VERSION)
 PKG_MAINTAINER:=Thomas Heil <heil@terminal-consulting.de>
 PKG_LICENSE:=prog GPL libs LGPL
diff --git a/mail/fdm/patches/010-musl_WAIT_ANY.patch b/mail/fdm/patches/010-musl_WAIT_ANY.patch
new file mode 100644 (file)
index 0000000..d37bc7f
--- /dev/null
@@ -0,0 +1,13 @@
+--- a/fdm.c
++++ b/fdm.c
+@@ -22,6 +22,10 @@
+ #include <sys/utsname.h>
+ #include <sys/wait.h>
++#ifndef WAIT_ANY
++#define WAIT_ANY (-1)
++#endif
++
+ #include <errno.h>
+ #include <fcntl.h>
+ #include <fnmatch.h>
diff --git a/mail/fdm/patches/020-musl_GLOB_BRACE.patch b/mail/fdm/patches/020-musl_GLOB_BRACE.patch
new file mode 100644 (file)
index 0000000..2b5683d
--- /dev/null
@@ -0,0 +1,22 @@
+--- a/fetch-maildir.c
++++ b/fetch-maildir.c
+@@ -31,6 +31,8 @@
+ #include "fdm.h"
+ #include "fetch.h"
++#define GLOB_BRACE 0
++
+ int   fetch_maildir_commit(struct account *, struct mail *);
+ void  fetch_maildir_abort(struct account *);
+ u_int fetch_maildir_total(struct account *);
+--- a/fetch-mbox.c
++++ b/fetch-mbox.c
+@@ -32,6 +32,8 @@
+ #include "fdm.h"
+ #include "fetch.h"
++#define GLOB_BRACE 0
++
+ int   fetch_mbox_commit(struct account *, struct mail *);
+ void  fetch_mbox_abort(struct account *);
+ u_int fetch_mbox_total(struct account *);
diff --git a/mail/fdm/patches/030-musl_ACCESSPERMS.patch b/mail/fdm/patches/030-musl_ACCESSPERMS.patch
new file mode 100644 (file)
index 0000000..b781871
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/file.c
++++ b/file.c
+@@ -26,6 +26,8 @@
+ #include "fdm.h"
++#define ACCESSPERMS (S_IRWXU|S_IRWXG|S_IRWXO)
++
+ int   mklock(u_int, const char *);
+ void  rmlock(u_int, const char *);
+ int   lockfd(u_int, int);
index 3d243947773c9d82b415f9459de725c72bc2afa5..4e8104c4ca894a04ecba40ecd11aecef437a41c1 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2007-2014 OpenWrt.org
+# Copyright (C) 2007-2015 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -9,8 +9,8 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=ssmtp
 PKG_VERSION:=2.64
-PKG_RELEASE:=1.1
-PKG_MAINTAINER:=Dirk Brenken <dibdot@gmail.com>
+PKG_RELEASE:=1
+PKG_MAINTAINER:=Dirk Brenken <dirk@brenken.org>
 PKG_LICENSE:=GPL-2.0+
 
 PKG_SOURCE:=$(PKG_NAME)_$(PKG_VERSION).orig.tar.bz2
@@ -21,23 +21,24 @@ include $(INCLUDE_DIR)/package.mk
 
 TARGET_CFLAGS += $(TARGET_CPPFLAGS)
 
-define Package/ssmtp
-  SECTION:=mail
-  CATEGORY:=Mail
-  DEPENDS:=+libopenssl
-  TITLE:=A minimal and secure mail sender with ssl support
-  URL:=http://packages.debian.org/ssmtp
+define Package/$(PKG_NAME)
+       SECTION:=mail
+       CATEGORY:=Mail
+       DEPENDS:=+libopenssl
+       TITLE:=A minimal and secure mail sender with ssl support
+       URL:=http://packages.debian.org/ssmtp
 endef
 
-define Package/ssmtp/description
- A secure, effective and simple way of getting mail off a system to your
- mail hub. It contains no suid-binaries or other dangerous things - no
- mail spool to poke around in, and no daemons running in the background.
- Mail is simply forwarded to the configured mailhost. Extremely easy
- configuration.
+define Package/$(PKG_NAME)/description
+A secure, effective and simple way of getting mail off a system to your
+mail hub. It contains no suid-binaries or other dangerous things - no
+mail spool to poke around in, and no daemons running in the background.
+Mail is simply forwarded to the configured mailhost. Extremely easy
+configuration.
+
 endef
 
-define Package/ssmtp/conffiles
+define Package/$(PKG_NAME)/conffiles
 /etc/ssmtp/ssmtp.conf
 /etc/ssmtp/revaliases
 endef
@@ -48,7 +49,7 @@ CONFIGURE_VARS += \
 CONFIGURE_ARGS += \
        --enable-ssl
 
-define Package/ssmtp/install
+define Package/$(PKG_NAME)/install
        $(INSTALL_DIR) $(1)/etc/ssmtp
        $(INSTALL_CONF) $(PKG_BUILD_DIR)/ssmtp.conf $(1)/etc/ssmtp/
        $(INSTALL_DATA) $(PKG_BUILD_DIR)/revaliases $(1)/etc/ssmtp/
@@ -56,9 +57,9 @@ define Package/ssmtp/install
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/ssmtp $(1)/usr/sbin/
 endef
 
-define Package/ssmtp/postinst
+define Package/$(PKG_NAME)/postinst
 #!/bin/sh
 ln -sf ssmtp $${IPKG_INSTROOT}/usr/sbin/sendmail
 endef
 
-$(eval $(call BuildPackage,ssmtp))
+$(eval $(call BuildPackage,$(PKG_NAME)))
diff --git a/mail/ssmtp/patches/004-remove_dead-letter.patch b/mail/ssmtp/patches/004-remove_dead-letter.patch
new file mode 100644 (file)
index 0000000..5e8b2d9
--- /dev/null
@@ -0,0 +1,94 @@
+--- a/ssmtp.c
++++ b/ssmtp.c
+@@ -138,71 +138,7 @@ int smtp_read_all(int fd, char *response
+ int smtp_okay(int fd, char *response);
+ /*
+-dead_letter() -- Save stdin to ~/dead.letter if possible
+-*/
+-void dead_letter(void)
+-{
+-      char *path;
+-      char buf[(BUF_SZ + 1)];
+-      struct passwd *pw;
+-      uid_t uid;
+-      FILE *fp;
+-
+-      uid = getuid();
+-      pw = getpwuid(uid);
+-
+-      if(isatty(fileno(stdin))) {
+-              if(log_level > 0) {
+-                      log_event(LOG_ERR,
+-                              "stdin is a TTY - not saving to %s/dead.letter", pw->pw_dir);
+-              }
+-              return;
+-      }
+-
+-      if(pw == (struct passwd *)NULL) {
+-              /* Far to early to save things */
+-              if(log_level > 0) {
+-                      log_event(LOG_ERR, "No sender failing horribly!");
+-              }
+-              return;
+-      }
+-
+-#define DEAD_LETTER "/dead.letter"
+-      path = malloc (strlen (pw->pw_dir) + sizeof (DEAD_LETTER));
+-      if (!path) {
+-              /* Can't use die() here since dead_letter() is called from die() */
+-              exit(1);
+-      }
+-      memcpy (path, pw->pw_dir, strlen (pw->pw_dir));
+-      memcpy (path + strlen (pw->pw_dir), DEAD_LETTER, sizeof (DEAD_LETTER));
+-      
+-      if((fp = fopen(path, "a")) == (FILE *)NULL) {
+-              /* Perhaps the person doesn't have a homedir... */
+-              if(log_level > 0) {
+-                      log_event(LOG_ERR, "Can't open %s failing horribly!", path);
+-              }
+-              free(path);
+-              return;
+-      }
+-
+-      /* We start on a new line with a blank line separating messages */
+-      (void)fprintf(fp, "\n\n");
+-
+-      while(fgets(buf, sizeof(buf), stdin)) {
+-              (void)fputs(buf, fp);
+-      }
+-
+-      if(fclose(fp) == -1) {
+-              if(log_level > 0) {
+-                      log_event(LOG_ERR,
+-                              "Can't close %s/dead.letter, possibly truncated", pw->pw_dir);
+-              }
+-      }
+-      free(path);
+-}
+-
+-/*
+-die() -- Write error message, dead.letter and exit
++die() -- Write error message and exit
+ */
+ void die(char *format, ...)
+ {
+@@ -216,9 +152,6 @@ void die(char *format, ...)
+       (void)fprintf(stderr, "%s: %s\n", prog, buf);
+       log_event(LOG_ERR, "%s", buf);
+-      /* Send message to dead.letter */
+-      (void)dead_letter();
+-
+       exit(1);
+ }
+@@ -1640,7 +1573,7 @@ int ssmtp(char *argv[])
+                       sleep(1);
+                       /* don't hang forever when reading from stdin */
+                       if (++timeout >= MEDWAIT) {
+-                              log_event(LOG_ERR, "killed: timeout on stdin while reading body -- message saved to dead.letter.");
++                              log_event(LOG_ERR, "killed: timeout on stdin while reading body.");
+                               die("Timeout on stdin while reading body");
+                       }
+                       continue;
diff --git a/mail/ssmtp/patches/006-add_ip-header.patch b/mail/ssmtp/patches/006-add_ip-header.patch
new file mode 100644 (file)
index 0000000..e142e40
--- /dev/null
@@ -0,0 +1,21 @@
+--- a/ssmtp.c
++++ b/ssmtp.c
+@@ -1338,6 +1338,7 @@ ssmtp() -- send the message (exactly one
+ int ssmtp(char *argv[])
+ {
+       char b[(BUF_SZ + 2)], *buf = b+1, *p, *q;
++      char *remote_addr;
+ #ifdef MD5AUTH
+       char challenge[(BUF_SZ + 1)];
+ #endif
+@@ -1541,6 +1542,10 @@ int ssmtp(char *argv[])
+               outbytes += smtp_write(sock, "From: %s", from);
+       }
++      if(remote_addr=getenv("REMOTE_ADDR")) {
++              outbytes += smtp_write(sock, "X-Originating-IP: %s", remote_addr);
++      }
++
+       if(have_date == False) {
+               outbytes += smtp_write(sock, "Date: %s", arpadate);
+       }
diff --git a/mail/ssmtp/patches/008-remove_garbage.patch b/mail/ssmtp/patches/008-remove_garbage.patch
new file mode 100644 (file)
index 0000000..d72f635
--- /dev/null
@@ -0,0 +1,18 @@
+--- a/ssmtp.c
++++ b/ssmtp.c
+@@ -1591,12 +1591,12 @@ int ssmtp(char *argv[])
+                       outbytes += smtp_write(sock, "%s", leadingdot ? b : buf);
+               } else {
+                       if (log_level > 0) {
+-                              log_event(LOG_INFO, "Sent a very long line in chunks");
++                              log_event(LOG_INFO, "Sending a partial line");
+                       }
+                       if (leadingdot) {
+-                              outbytes += fd_puts(sock, b, sizeof(b));
++                              outbytes += fd_puts(sock, b, strlen(b));
+                       } else {
+-                              outbytes += fd_puts(sock, buf, bufsize);
++                              outbytes += fd_puts(sock, buf, strlen(buf));
+                       }
+               }
+               (void)alarm((unsigned) MEDWAIT);
diff --git a/mail/ssmtp/patches/010-fix_message-header.patch b/mail/ssmtp/patches/010-fix_message-header.patch
new file mode 100644 (file)
index 0000000..3fc9fad
--- /dev/null
@@ -0,0 +1,92 @@
+--- a/ssmtp.c
++++ b/ssmtp.c
+@@ -282,6 +282,7 @@ standardise() -- Trim off '\n's and doub
+ */
+ bool_t standardise(char *str, bool_t *linestart)
+ {
++      size_t sl;
+       char *p;
+       bool_t leadingdot = False;
+@@ -297,6 +298,12 @@ bool_t standardise(char *str, bool_t *li
+       if((p = strchr(str, '\n'))) {
+               *p = '\0';
+               *linestart = True;
++
++              /* If the line ended in "\r\n", then drop the '\r' too */
++              sl = strlen(str);
++              if(sl >= 1 && str[sl - 1] == '\r') {
++                      str[sl - 1] = '\0';
++              }
+       }
+       return(leadingdot);
+ }
+@@ -690,6 +697,14 @@ void header_parse(FILE *stream)
+               }
+               len++;
++              if(l == '\r' && c == '\n') {
++                      /* Properly handle input that already has "\r\n"
++                         line endings; see https://bugs.debian.org/584162 */
++                      l = (len >= 2 ? *(q - 2) : '\n');
++                      q--;
++                      len--;
++              }
++
+               if(l == '\n') {
+                       switch(c) {
+                               case ' ':
+@@ -712,8 +727,9 @@ void header_parse(FILE *stream)
+                                               if((q = strrchr(p, '\n'))) {
+                                                       *q = '\0';
+                                               }
+-                                              header_save(p);
+-
++                                              if(len > 0) {
++                                                      header_save(p);
++                                              }
+                                               q = p;
+                                               len = 0;
+                       }
+@@ -722,35 +738,12 @@ void header_parse(FILE *stream)
+               l = c;
+       }
+-      if(in_header) {
+-              if(l == '\n') {
+-                      switch(c) {
+-                              case ' ':
+-                              case '\t':
+-                                              /* Must insert '\r' before '\n's embedded in header
+-                                                 fields otherwise qmail won't accept our mail
+-                                                 because a bare '\n' violates some RFC */
+-                                              
+-                                              *(q - 1) = '\r';        /* Replace previous \n with \r */
+-                                              *q++ = '\n';            /* Insert \n */
+-                                              len++;
+-                                              
+-                                              break;
+-
+-                              case '\n':
+-                                              in_header = False;
+-
+-                              default:
+-                                              *q = '\0';
+-                                              if((q = strrchr(p, '\n'))) {
+-                                                      *q = '\0';
+-                                              }
+-                                              header_save(p);
+-
+-                                              q = p;
+-                                              len = 0;
+-                      }
+-              }
++      if(in_header && l == '\n') {
++              /* Got EOF while reading the header */
++              if((q = strrchr(p, '\n'))) {
++                      *q = '\0';
++              }
++              header_save(p);
+       }
+       (void)free(p);
+ }
diff --git a/multimedia/grilo-plugins/Makefile b/multimedia/grilo-plugins/Makefile
new file mode 100644 (file)
index 0000000..59800e1
--- /dev/null
@@ -0,0 +1,92 @@
+#
+# Copyright (C) 2006-2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=grilo-plugins
+PKG_VERSION:=0.2.16
+PKG_RELEASE:=1
+
+PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org>
+
+PKG_LICENSE:=LGPLv2.1
+PKG_LICENSE_FILES:=COPYING
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+PKG_SOURCE_URL:=https://download.gnome.org/sources/grilo-plugins/0.2/
+PKG_MD5SUM:=62ecaad877b485a950259eef1ef38c18
+
+PKG_BUILD_DEPENDS:=glib2 grilo
+
+PKG_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/nls.mk
+
+define Package/grilo-plugins/Default
+  SECTION:=multimedia
+  CATEGORY:=Multimedia
+  TITLE:=grilo-plugins
+  URL:=https://wiki.gnome.org/Projects/Grilo
+endef
+
+define Package/grilo-plugins
+  $(call Package/grilo-plugins/Default)
+  MENU:=1
+  DEPENDS:=+grilo $(ICONV_DEPENDS) $(INTL_DEPENDS)
+  TITLE:=Plugins for the Grilo framework
+endef
+
+define Package/grilo/decription
+  Grilo is a framework that provides access to different sources of
+  multimedia content, using a pluggable system. This package contains 
+  plugins to get information from a number of sources.
+endef
+
+CONFIGURE_ARGS += \
+        --enable-static \
+        --without-libiconv-prefix \
+        --without-libintl-prefix \
+        --without-x \
+
+define Package/grilo-plugins/install
+       $(INSTALL_DIR) $(1)/usr/lib/grilo-0.2
+endef
+
+define BuildPlugin
+  define Package/grilo-plugins-$(1)
+    $(call Package/grilo-plugins/Default)
+    DEPENDS:=grilo-plugins
+    ifneq ($(4),)
+      DEPENDS+= $(4)
+    endif
+    TITLE:=$(2) plugin
+  endef
+
+  define Package/grilo-plugins-$(1)/install
+       $(INSTALL_DIR) $$(1)/usr/lib/grilo-0.2
+       for p in $(3); do \
+               $(CP) $(PKG_INSTALL_DIR)/usr/lib/grilo-0.2/libgrl$$$$$$$${p}.so $$(1)/usr/lib/grilo-0.2; \
+               $(CP) $(PKG_INSTALL_DIR)/usr/lib/grilo-0.2/grl-$$$$$$$${p}.xml $$(1)/usr/lib/grilo-0.2; \
+       done
+  endef
+
+  $$(eval $$(call BuildPackage,grilo-plugins-$(1)))
+endef
+
+$(eval $(call BuildPackage,grilo-plugins))
+
+$(eval $(call BuildPlugin,dleyna,DLNA sharing,dleyna,,30))
+$(eval $(call BuildPlugin,dmap,DAAP and DPAP sharing,daap dpap,libdmapsharing,30))
+$(eval $(call BuildPlugin,gravatar,Gravatar provider,gravatar,,30))
+$(eval $(call BuildPlugin,jamendo,Jamendo sharing,jamendo,,30))
+$(eval $(call BuildPlugin,lastfm-albumart,Last.FM album art provider,lastfm-albumart,,30))
+$(eval $(call BuildPlugin,magnatune,Magnatune sharing,magnatune,,30))
+$(eval $(call BuildPlugin,metadata-store,Extra metadata store,metadata-store,,30))
+$(eval $(call BuildPlugin,opensubtitles,Openi subtitles provider,opensubtitles,,30))
+$(eval $(call BuildPlugin,raitv,Rai.tv sharing,raitv,,30))
+$(eval $(call BuildPlugin,shoutcast,SHOUTcast sharing,shoutcast,,30))
diff --git a/multimedia/grilo/Makefile b/multimedia/grilo/Makefile
new file mode 100644 (file)
index 0000000..473344a
--- /dev/null
@@ -0,0 +1,68 @@
+#
+# Copyright (C) 2009-2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=grilo
+PKG_VERSION:=0.2.14
+PKG_RELEASE:=1
+
+PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org>
+
+PKG_LICENSE:=LGPLv2.1
+PKG_LICENSE_FILES:=COPYING
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+PKG_SOURCE_URL:=https://download.gnome.org/sources/grilo/0.2/
+PKG_MD5SUM:=7eba405ada20fefcb877d534d9d4f
+
+PKG_BUILD_DEPENDS:=glib2 libsoup libxml2
+
+PKG_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/nls.mk
+
+TARGET_LDFLAGS+= \
+       -Wl,-rpath-link=$(STAGING_DIR)/usr/lib
+
+define Package/grilo
+  SECTION:=multimedia
+  CATEGORY:=Multimedia
+  TITLE:=grilo
+  URL:=https://wiki.gnome.org/Projects/Grilo
+  DEPENDS:=+glib2 +libsoup +libxml2
+endef
+
+define Package/grilo/decription
+  Grilo is a framework that provides access to different sources of
+  multimedia content, using a pluggable system. 
+endef
+
+define Build/InstallDev
+       $(INSTALL_DIR) $(1)/usr/include/
+       $(CP) \
+               $(PKG_INSTALL_DIR)/usr/include/grilo-0.2/ \
+               $(1)/usr/include/
+       $(INSTALL_DIR) $(1)/usr/lib/
+       $(CP) \
+               $(PKG_INSTALL_DIR)/usr/lib/*.so* \
+               $(1)/usr/lib/
+       $(INSTALL_DIR) $(1)/usr/lib/pkgconfig/
+       $(INSTALL_DATA) \
+               $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/*.pc \
+               $(1)/usr/lib/pkgconfig/
+endef
+
+define Package/grilo/install
+       $(INSTALL_DIR) $(1)/usr/lib/
+       $(CP) \
+               $(PKG_INSTALL_DIR)/usr/lib/*.so* \
+               $(1)/usr/lib/
+endef
+
+$(eval $(call BuildPackage,grilo))
index bfeb1c593f3cbc41dcb242321013e9532b346ecb..ca04b8d8ff96f6241871e1e1bc06b01a57222bee 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=gst1-plugins-bad
 PKG_VERSION:=1.4.5
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org>
 
@@ -115,7 +115,6 @@ CONFIGURE_ARGS += \
        --disable-resindvd \
        --disable-faac \
        --disable-faad \
-       --disable-fbdev \
        --disable-flite \
        --disable-gsm \
        --disable-kate \
@@ -247,6 +246,7 @@ $(eval $(call GstBuildPlugin,camerabin2,camerabin support,basecamerabinsrc photo
 $(eval $(call GstBuildPlugin,dataurisrc,dataurisrc support,,,))
 $(eval $(call GstBuildPlugin,debugutilsbad,debugutils support,video,,))
 $(eval $(call GstBuildPlugin,dvdspu,dvdspu support,video,,))
+$(eval $(call GstBuildPlugin,fbdevsink,fbdev support,video,,))
 $(eval $(call GstBuildPlugin,festival,festival support,audio,,))
 $(eval $(call GstBuildPlugin,frei0r,frei0r support,controller video,,))
 $(eval $(call GstBuildPlugin,id3tag,id3tag support,tag,,))
index 1b0766e7e4655d5937de263a7e3114f7d49b3410..fa0f7d24db9dd461b693bb6ff6bb2181bf2a7923 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=icecast
 PKG_VERSION:=2.4.2
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 PKG_LICENSE:=GPL-2.0
 PKG_MAINTAINER:=André Gaul <andre@gaul.io>
 
@@ -29,6 +29,7 @@ define Package/icecast
   CATEGORY:=Multimedia
   DEPENDS:=+libcurl +libxml2 +libxslt +libogg +libopenssl
   TITLE:=A streaming media server for Ogg/Vorbis and MP3 audio streams
+  USERID:=icecast=87:icecast=87
   URL:=http://www.icecast.org/
 endef
 
index 355e4b7169c35764534ad09ac9ebbed9c67e2778..96b36e1886074923cf23943bc42d1d97eb2ee5c9 100755 (executable)
@@ -1,12 +1,21 @@
 #!/bin/sh /etc/rc.common
-# Example script
-# Copyright (C) 2014 OpenWrt.org
+
+# Startup script
+# Copyright (C) 2015 OpenWrt.org
  
 USE_PROCD=1
-START=99
+START=90
 STOP=15
 
 start_service() {
+       user_exists icecast 87 || user_add icecast 87
+       group_exists icecast 87 || group_add icecast 87
+       
+       [ -d /var/log/icecast ] || {
+               mkdir -m 0755 -p /var/log/icecast
+               chown icecast:icecast /var/log/icecast
+       }
+
        procd_open_instance
        procd_set_param command /usr/bin/icecast -c /etc/icecast.xml
        procd_set_param respawn
diff --git a/multimedia/icecast/patches/020-icecast_config_for_openwrt.patch b/multimedia/icecast/patches/020-icecast_config_for_openwrt.patch
new file mode 100644 (file)
index 0000000..d3282f2
--- /dev/null
@@ -0,0 +1,25 @@
+--- a/conf/icecast.xml.in
++++ b/conf/icecast.xml.in
+@@ -61,7 +61,7 @@
+          It affects mainly the urls generated by Icecast for playlists and yp
+          listings. You MUST configure it properly for YP listings to work!
+     -->
+-    <hostname>localhost</hostname>
++    <hostname>OpenWrt</hostname>
+     <!-- You may have multiple <listener> elements -->
+     <listen-socket>
+@@ -234,11 +234,9 @@
+     <security>
+         <chroot>0</chroot>
+-        <!--
+         <changeowner>
+-            <user>nobody</user>
+-            <group>nogroup</group>
++            <user>icecast</user>
++            <group>icecast</group>
+         </changeowner>
+-        -->
+     </security>
+ </icecast>
diff --git a/multimedia/lcdgrilo/Makefile b/multimedia/lcdgrilo/Makefile
new file mode 100644 (file)
index 0000000..53888d1
--- /dev/null
@@ -0,0 +1,50 @@
+#
+# Copyright (C) 2009-2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=lcdgrilo
+PKG_VERSION:=0.0.7
+PKG_RELEASE:=1
+
+PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org>
+
+PKG_LICENSE:=GPL-2.0
+PKG_LICENSE_FILES:=COPYING
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://www.flyn.org/projects/lcdgrilo
+PKG_MD5SUM:=80a946bf144da5cc32bdf9f1aa2f91e6
+PKG_BUILD_DEPENDS:=+vala
+
+PKG_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/nls.mk
+
+define Package/lcdgrilo
+  SECTION:=multimedia
+  CATEGORY:=Multimedia
+  DEPENDS:=+grilo +grilo-plugins +libgee +libgstreamer1
+  TITLE:=lcdgrilo
+  URL:=http://www.flyn.org/projects/lcdgrilo/
+endef
+
+define Package/lcdgrilo/decription
+       A simple Grilo-based audio player meant to run on a Raspberry Pi with a PiFace CAD
+endef
+
+define Package/lcdgrilo/install
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(CP) \
+               $(PKG_INSTALL_DIR)/usr/bin/lcdgrilo \
+               $(1)/usr/bin/
+       $(INSTALL_BIN) ./files/lcdgrilo.init $(1)/etc/init.d/lcdgrilo
+endef
+
+$(eval $(call BuildPackage,lcdgrilo))
diff --git a/multimedia/lcdgrilo/files/lcdgrilo.init b/multimedia/lcdgrilo/files/lcdgrilo.init
new file mode 100644 (file)
index 0000000..5c4ff1b
--- /dev/null
@@ -0,0 +1,16 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2009-2012 OpenWrt.org
+
+START=60
+
+start() {
+       /usr/bin/lcdgrilo &
+       echo $! > /var/run/lcdgrilo.pid
+}
+
+stop() {
+       if [ ! -f /var/run/lcdgrilo.pid ]; then
+               return
+       fi
+       /bin/kill `cat /var/run/lcdgrilo.pid`
+}
index e1e0e200eda3a80629b881b73093c16cf993b89b..69e05f499b56e64396b78e37e5b64b05b5e25f1f 100644 (file)
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
 PKG_NAME:=mjpg-streamer
 PKG_REV:=182
 PKG_VERSION:=r$(PKG_REV)
-PKG_RELEASE:=7
+PKG_RELEASE:=8
 PKG_MAINTAINER:=Roger D <rogerdammit@gmail.com>
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).1.tar.bz2
@@ -51,8 +51,11 @@ endef
 
 CAMBOZOLA:=cambozola-0.936.tar.gz
 
+# Distribution URL doesn't always have the correct version
+# Using the OpenWrt mirror provides a stable version
+#      orig-URL:=http://www.andywilcock.com/code/cambozola
 define Download/cambozola
-  URL:=http://www.andywilcock.com/code/cambozola
+  URL:=http://mirror2.openwrt.org/sources
   FILE:=$(CAMBOZOLA)
   MD5SUM:=35c45188aa9635aef2b745c35c311396
 endef
diff --git a/multimedia/mjpg-streamer/patches/060-fix-sigtrap-in-v4l2uvc.patch b/multimedia/mjpg-streamer/patches/060-fix-sigtrap-in-v4l2uvc.patch
new file mode 100644 (file)
index 0000000..e0b5837
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/plugins/input_uvc/v4l2uvc.c
++++ b/plugins/input_uvc/v4l2uvc.c
+@@ -130,7 +130,7 @@ int init_videoIn(struct vdIn *vd, char *
+             return -1;
+         }
+-        memcpy(&pglobal->in[id].in_formats[pglobal->in[id].formatCount], &fmtdesc, sizeof(input_format));
++        memcpy(&pglobal->in[id].in_formats[pglobal->in[id].formatCount], &fmtdesc, sizeof(struct v4l2_fmtdesc));
+         if(fmtdesc.pixelformat == format)
+             pglobal->in[id].currentFormat = pglobal->in[id].formatCount;
index 412b5f90bc5b5a72e94360d7a61f63f3b501909d..eeb49b183705452cbf6cfbeb6a4bbc7dc41fa156 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2008-2011 OpenWrt.org
+# Copyright (C) 2008-2015 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=motion
 PKG_VERSION=3.4.0-20141018-$(PKG_SOURCE_VERSION)
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_MAINTAINER:=Roger D <rogerdammit@gmail.com>
 PKG_LICENSE:=GPLv2
diff --git a/multimedia/motion/patches/100-musl-compat.patch b/multimedia/motion/patches/100-musl-compat.patch
new file mode 100644 (file)
index 0000000..b788e26
--- /dev/null
@@ -0,0 +1,49 @@
+--- a/motion.c
++++ b/motion.c
+@@ -2630,6 +2630,17 @@ int main (int argc, char **argv)
+     struct sigaction sigchild_action;
+     setup_signals(&sig_handler_action, &sigchild_action);
++    /*
++     * Create and a thread attribute for the threads we spawn later on.
++     * PTHREAD_CREATE_DETACHED means to create threads detached, i.e.
++     * their termination cannot be synchronized through 'pthread_join'.
++     */
++    pthread_attr_init(&thread_attr);
++    pthread_attr_setdetachstate(&thread_attr, PTHREAD_CREATE_DETACHED);
++
++    /* Create the TLS key for thread number. */
++    pthread_key_create(&tls_key_threadnr, NULL);
++
+     motion_startup(1, argc, argv);
+ #ifdef HAVE_FFMPEG
+@@ -2648,17 +2659,6 @@ int main (int argc, char **argv)
+     if (cnt_list[0]->conf.setup_mode)
+         MOTION_LOG(NTC, TYPE_ALL, NO_ERRNO, "%s: Motion running in setup mode.");
+-    /*
+-     * Create and a thread attribute for the threads we spawn later on.
+-     * PTHREAD_CREATE_DETACHED means to create threads detached, i.e.
+-     * their termination cannot be synchronized through 'pthread_join'.
+-     */
+-    pthread_attr_init(&thread_attr);
+-    pthread_attr_setdetachstate(&thread_attr, PTHREAD_CREATE_DETACHED);
+-
+-    /* Create the TLS key for thread number. */
+-    pthread_key_create(&tls_key_threadnr, NULL);
+-
+     do {
+         if (restart) {
+             /*
+--- a/motion.h
++++ b/motion.h
+@@ -84,7 +84,7 @@
+ #endif
+ /* strerror_r() XSI vs GNU */
+-#if (defined(BSD)) || ((_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) && ! _GNU_SOURCE)
++#if (defined(BSD)) || ((_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) && ! _GNU_SOURCE) || (!defined(__GLIBC__))
+ #define XSI_STRERROR_R
+ #endif
index 26c48a9c412c795f63061620c57e4e804f9215b6..da16b0640c3ba40e424a0bd8a16926e600fb711d 100644 (file)
@@ -8,8 +8,8 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=tvheadend
-PKG_VERSION:=4.0.5
-PKG_RELEASE:=2
+PKG_VERSION:=4.0.7
+PKG_RELEASE:=1
 
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)
 PKG_SOURCE_VERSION:=v$(PKG_VERSION)
@@ -32,7 +32,7 @@ define Package/tvheadend
   SECTION:=multimedia
   CATEGORY:=Multimedia
   TITLE:=Tvheadend is a TV streaming server for Linux
-  DEPENDS:=+libopenssl +librt +zlib +TVHEADEND_AVAHI_SUPPORT:libavahi-client
+  DEPENDS:=+libopenssl +librt +zlib +TVHEADEND_AVAHI_SUPPORT:libavahi-client $(ICONV_DEPENDS)
   URL:=https://tvheadend.org
   MAINTAINER:=Jan Čermák <jan.cermak@nic.cz>
 endef
diff --git a/net/adblock/Makefile b/net/adblock/Makefile
new file mode 100644 (file)
index 0000000..f8c157b
--- /dev/null
@@ -0,0 +1,77 @@
+#
+# Copyright (C) 2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v3.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=adblock
+PKG_VERSION:=0.20.3
+PKG_RELEASE:=1
+PKG_LICENSE:=GPL-3.0+
+PKG_MAINTAINER:=Dirk Brenken <dirk@brenken.org>
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/$(PKG_NAME)
+       SECTION:=net
+       CATEGORY:=Network
+       TITLE:=powerful adblock script to block ad/abuse domains
+       DEPENDS:=+curl +wget
+       PKGARCH:=all
+endef
+
+define Package/$(PKG_NAME)/description
+powerful adblock script to block ad/abuse domains
+When the dns server on your router receives dns requests, we will sort out queries that ask for the [A] resource records of ad servers
+and return the local ip address of your router and the internal web server delivers a transparent pixel instead.
+The script supports the following domain blacklist sites:
+  http://pgl.yoyo.org/adservers
+  http://malwaredomains.com
+  https://zeustracker.abuse.ch
+  https://feodotracker.abuse.ch
+  https://palevotracker.abuse.ch
+  http://dshield.org
+  http://www.shallalist.de
+  http://www.spam404.com
+  http://winhelp2002.mvps.org
+
+endef
+
+define Package/$(PKG_NAME)/conffiles
+/etc/config/adblock
+/etc/adblock/adblock.whitelist
+/etc/adblock/adblock.blacklist
+endef
+
+define Build/Prepare
+endef
+
+define Build/Configure
+endef
+
+define Build/Compile
+endef
+
+define Package/$(PKG_NAME)/install
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(INSTALL_BIN) ./files/adblock-update.sh $(1)/usr/bin/
+       $(INSTALL_DATA) ./files/adblock-helper.sh $(1)/usr/bin/
+
+       $(INSTALL_DIR) $(1)/etc/config
+       $(INSTALL_CONF) ./files/adblock.conf $(1)/etc/config/adblock
+
+       $(INSTALL_DIR) $(1)/etc/adblock
+       $(INSTALL_CONF) ./files/adblock.blacklist $(1)/etc/adblock/
+       $(INSTALL_CONF) ./files/adblock.whitelist $(1)/etc/adblock/
+       $(INSTALL_CONF) ./files/README.md $(1)/etc/adblock/
+
+       $(INSTALL_DIR) $(1)/etc/adblock/samples
+       $(INSTALL_CONF) ./files/samples/*.sample $(1)/etc/adblock/samples/
+
+       $(INSTALL_DIR) $(1)/www/adblock
+       $(INSTALL_DATA) ./files/www/adblock/* $(1)/www/adblock/
+endef
+
+$(eval $(call BuildPackage,$(PKG_NAME)))
diff --git a/net/adblock/files/README.md b/net/adblock/files/README.md
new file mode 100644 (file)
index 0000000..f5f65ab
--- /dev/null
@@ -0,0 +1,55 @@
+# adblock script for openwrt
+
+## Description
+A lot of people already use adblocker plugins within their desktop browsers,  
+but what if you are using your (smart) phone, tablet, watch or any other wlan gadget...  
+...getting rid of annoying ads, trackers and other abuse sites (like facebook ;-) is simple: block them with your router.  
+
+When the dns server on your router receives dns requests, you’ll sort out queries that ask for the [A] resource records of ad servers  
+and return the local ip address of your router and the internal web server delivers a transparent pixel instead.
+
+## Main Features
+* support of the following domain blacklist sites (free for private usage, for commercial use please check their individual licenses):
+    * [pgl.yoyo.org](http://pgl.yoyo.org/adservers)
+    * [malwaredomains.com](http://malwaredomains.com)
+    * [zeustracker.abuse.ch](https://zeustracker.abuse.ch)
+    * [feodotracker.abuse.ch](https://feodotracker.abuse.ch)
+    * [palevotracker.abuse.ch](https://palevotracker.abuse.ch)
+    * [dshield.org](http://dshield.org)
+    * [shallalist.de](http://www.shallalist.de) (tested with the categories "adv" "costtraps" "downloads" "spyware" "tracker" "warez")
+    * [spam404.com](http://www.spam404.com)
+    * [winhelp2002.mvps.org](http://winhelp2002.mvps.org)
+* blocklist parsing by fast & flexible regex rulesets
+* additional white- and blacklist support for manual overrides
+* separate dynamic adblock network interface
+* separate dynamic uhttpd instance as pixel server
+* optional: quality checks and a powerful backup/restore handling to ensure a reliable dnsmasq service
+* optional: adblock updates only on pre-defined wan interfaces
+* optional: domain query logging as a background service to easily identify free and already blocked domains
+* optional: ntp time sync
+* optional: status & error logging (req. ntp time sync)
+
+## Prerequisites
+* [openwrt](https://openwrt.org) (tested only with trunk > r47025), CC should also work
+* additional software packages:
+    * curl
+    * wget (due to an openwrt bug still needed for certain https requests - see ticket #19621)
+    * busybox find with *-mtime* support for logfile housekeeping (enabled by default with r47362, will be disabled if not found)
+* optional: mounted usb stick or any other storage device to overcome limited memory resources on embedded router devices
+* the above dependencies will be checked during package installation & script runtime, please check *logread -e "adblock"* for errors
+
+## Usage
+* select & install adblock package (*opkg install adblock*)
+* configure /etc/config/adblock to your needs
+* start /usr/bin/adblock-update.sh and check *logread -e "adblock"* for errors
+
+## Distributed samples
+* all sample configuration files stored in */etc/adblock/samples*.
+* to enable/disable additional domain query logging set the dnsmasq option *logqueries* accordingly, see *dhcp.config.sample*.
+* for script autostart by rc.local and /tmp resizing on the fly see *rc.local.sample*.
+* for scheduled call of *adblock-update.sh* see *root.crontab.sample*.
+* to redirect/force all dns queries to your router see *firwall.user.sample*.
+* for further dnsmasq tweaks see *dnsmasq.conf.sample*.
+
+Have fun!  
+Dirk  
diff --git a/net/adblock/files/adblock-helper.sh b/net/adblock/files/adblock-helper.sh
new file mode 100644 (file)
index 0000000..5b795eb
--- /dev/null
@@ -0,0 +1,573 @@
+#!/bin/sh
+##############################################
+# function library used by adblock-update.sh #
+# written by Dirk Brenken (dirk@brenken.org) #
+##############################################
+
+#####################################
+# f_envload: load adblock environment
+#
+f_envload()
+{
+    # source in openwrt function library
+    #
+    if [ -r "/lib/functions.sh" ]
+    then
+        . /lib/functions.sh
+    else
+        /usr/bin/logger -t "adblock[${pid}]" "error: openwrt function library not found"
+        f_deltemp
+        exit 10
+    fi
+
+    # source in openwrt json helpers library
+    #
+    if [ -r "/usr/share/libubox/jshn.sh" ]
+    then
+        . "/usr/share/libubox/jshn.sh"
+    else
+        /usr/bin/logger -t "adblock[${pid}]" "error: openwrt json helpers library not found"
+        f_deltemp
+        exit 15
+    fi
+
+    # get list with all installed openwrt packages
+    #
+    pkg_list="$(opkg list-installed 2>/dev/null)"
+    if [ -z "${pkg_list}" ]
+    then
+        /usr/bin/logger -t "adblock[${pid}]" "error: empty openwrt package list"
+        f_deltemp
+        exit 20
+    fi
+}
+
+######################################################
+# f_envparse: parse adblock config and set environment
+#
+f_envparse()
+{
+    # function to read/set global options by callback,
+    # prepare list items and build option list for all others
+    #
+    config_cb()
+    {
+        local type="${1}"
+        local name="${2}"
+        if [ "${type}" = "adblock" ]
+        then
+            option_cb()
+            {
+                local option="${1}"
+                local value="${2}"
+                eval "${option}=\"${value}\""
+            }
+        else
+            option_cb()
+            {
+                local option="${1}"
+                local value="${2}"
+                local opt_out="$(printf "${option}" | sed -n '/.*_ITEM[0-9]$/p; /.*_LENGTH$/p; /enabled/p')"
+                if [ -z "${opt_out}" ]
+                then
+                    all_options="${all_options} ${option}"
+                fi
+            }
+            list_cb()
+            {
+                local list="${1}"
+                local value="${2}"
+                if [ "${list}" = "adb_wanlist" ]
+                then
+                    adb_wandev="${adb_wandev} ${value}"
+                elif [ "${list}" = "adb_ntplist" ]
+                then
+                    adb_ntpsrv="${adb_ntpsrv} ${value}"
+                elif [ "${list}" = "adb_catlist" ]
+                then
+                    adb_cat_shalla="${adb_cat_shalla} ${value}"
+                fi
+            }
+        fi
+    }
+
+    # function to iterate through option list, read/set all options in "enabled" sections
+    #
+    parse_config()
+    {
+        local config="${1}"
+        config_get switch "${config}" "enabled"
+        if [ "${switch}" = "1" ]
+        then
+            for option in ${all_options}
+            do
+                config_get value "${config}" "${option}"
+                if [ -n "${value}" ]
+                then
+                    local opt_src="$(printf "${option}" | sed -n '/^adb_src_[a-z0-9]*$/p')"
+                    if [ -n "${opt_src}" ]
+                    then
+                        adb_sources="${adb_sources} ${value}"
+                    else
+                        eval "${option}=\"${value}\""
+                    fi
+                fi
+            done
+        elif [ "${config}" = "wancheck" ]
+        then
+           unset adb_wandev
+        elif [ "${config}" = "ntpcheck" ]
+        then
+           unset adb_ntpsrv
+        elif [ "${config}" = "shalla" ]
+        then
+           unset adb_cat_shalla
+        fi
+    }
+
+    # load adblock config and start parsing functions
+    #
+    config_load adblock
+    config_foreach parse_config service
+    config_foreach parse_config source
+
+    # set temp variables and counter
+    #
+    adb_tmpfile="$(mktemp -tu)"
+    adb_tmpdir="$(mktemp -d)"
+    cnt=0
+    max_cnt=30
+    max_time=60
+
+    # set adblock source ruleset definitions
+    #
+    rset_start="sed -r 's/[[:space:]]|[\[!#/:;_].*|[0-9\.]*localhost//g; s/[\^#/:;_\.\t ]*$//g'"
+    rset_end="sed '/^[#/:;_\s]*$/d'"
+    rset_default="${rset_start} | ${rset_end}"
+    rset_yoyo="${rset_start} | sed 's/,/\n/g' | ${rset_end}"
+    rset_shalla="${rset_start} | sed 's/\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}$//g' | ${rset_end}"
+    rset_spam404="${rset_start} | sed 's/^\|\|//g' | ${rset_end}"
+    rset_winhelp="${rset_start} | sed 's/\([0-9]\{1,3\}\.\)\{3\}[0-1]\{1,1\}//g' | ${rset_end}"
+
+    # set adblock/dnsmasq destination file and format
+    #
+    adb_dnsfile="/tmp/dnsmasq.d/adlist.conf"
+    adb_dnsformat="sed 's/^/address=\//;s/$/\/'${adb_ip}'/'"
+}
+
+#############################################
+# f_envcheck: check environment prerequisites
+#
+f_envcheck()
+{
+    # check adblock network device configuration
+    #
+    if [ ! -d "/sys/class/net/${adb_dev}" ]
+    then
+        /usr/bin/logger -t "adblock[${pid}]" "error: invalid adblock network device input (${adb_dev})"
+        f_deltemp
+        exit 25
+    fi
+
+    # check adblock network interface configuration
+    #
+    check_if="$(printf "${adb_if}" | sed -n '/[^_0-9A-Za-z]/p')"
+    banned_if="$(printf "${adb_if}" | sed -n '/.*lan.*\|.*wan.*\|.*switch.*\|main\|globals\|loopback\|px5g/p')"
+    if [ -n "${check_if}" ] || [ -n "${banned_if}" ]
+    then
+        /usr/bin/logger -t "adblock[${pid}]" "error: invalid adblock network interface input (${adb_if})"
+        f_deltemp
+        exit 30
+    fi
+
+    # check adblock ip address configuration
+    #
+    check_ip="$(printf "${adb_ip}" | sed -n '/\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}/p')"
+    if [ -z "${check_ip}" ]
+    then
+        /usr/bin/logger -t "adblock[${pid}]" "error: invalid adblock ip address input (${adb_ip})"
+        f_deltemp
+        exit 35
+    fi
+
+    # check adblock blacklist/whitelist configuration
+    #
+    if [ ! -r "${adb_blacklist}" ]
+    then
+        /usr/bin/logger -t "adblock[${pid}]" "error: adblock blacklist not found"
+        f_deltemp
+        exit 40
+    elif [ ! -r "${adb_whitelist}" ]
+    then
+        /usr/bin/logger -t "adblock[${pid}]" "error: adblock whitelist not found"
+        f_deltemp
+        exit 45
+    fi
+
+    # check wan update configuration
+    #
+    if [ -n "${adb_wandev}" ]
+    then
+        wan_ok="true"
+    else
+        wan_ok="false"
+        /usr/bin/logger -t "adblock[${pid}]" "info: wan update check will be disabled"
+    fi
+
+    # check ntp sync configuration
+    #
+    if [ -n "${adb_ntpsrv}" ]
+    then
+        ntp_ok="true"
+    else
+        ntp_ok="false"
+        /usr/bin/logger -t "adblock[${pid}]" "info: ntp time sync will be disabled"
+    fi
+
+    # check backup configuration
+    #
+    adb_backupdir="${adb_backupfile%/*}"
+    if [ -n "${adb_backupdir}" ] && [ -d "${adb_backupdir}" ]
+    then
+        backup_ok="true"
+        adb_mounts="${adb_backupdir} ${adb_tmpdir}"
+    else
+        backup_ok="false"
+        /usr/bin/logger -t "adblock[${pid}]" "info: backup/restore will be disabled"
+    fi
+
+    # check error log configuration
+    #
+    adb_logdir="${adb_logfile%/*}"
+    if [ -n "${adb_logfile}" ] && [ "${adb_logfile}" = "/dev/stdout" ]
+    then
+        log_ok="true"
+        adb_logfile="/proc/self/fd/1"
+    elif [ -n "${adb_logdir}" ] && [ -d "${adb_logdir}" ] && [ "${ntp_ok}" = "true" ]
+    then
+        log_ok="true"
+        adb_mounts="${adb_mounts} ${adb_logdir}"
+    else
+        log_ok="false"
+        adb_logfile="/dev/null"
+        /usr/bin/logger -t "adblock[${pid}]" "info: error logging will be disabled"
+    fi
+
+    # check dns query log configuration
+    #
+    adb_querydir="${adb_queryfile%/*}"
+    query_pid="/var/run/adb_query.pid"
+    if [ -n "${adb_querydir}" ] && [ -d "${adb_querydir}" ]
+    then
+        # check find capabilities
+        #
+        check="$(find --help 2>&1 | grep "mtime")"
+        if [ -z "${check}" ]
+        then
+            query_ok="false"
+            /usr/bin/logger -t "adblock[${pid}]" "info: busybox without 'find/mtime' support (min. r47362), dns query logging will be disabled"
+        else
+            query_ok="true"
+            query_name="${adb_queryfile##*/}"
+            query_ip="${adb_ip//./\\.}"
+            adb_mounts="${adb_mounts} ${adb_querydir}"
+        fi
+    else
+        query_ok="false"
+        if [ -s "${query_pid}" ]
+        then
+            kill -9 $(cat "${query_pid}") 2>/dev/null
+            > "${query_pid}"
+            /usr/bin/logger -t "adblock[${pid}]" "info: remove old dns query log background process"
+        fi
+        /usr/bin/logger -t "adblock[${pid}]" "info: dns query logging will be disabled"
+    fi
+
+    # check mount points & space requirements
+    #
+    adb_mounts="${adb_mounts} ${adb_tmpdir}"
+    for mp in ${adb_mounts}
+    do
+        df "${mp}" 2>/dev/null |\
+        tail -n1 |\
+        while read filesystem overall used available scrap
+        do
+            av_space="${available}"
+            if [ $((av_space)) -eq 0 ]
+            then
+                /usr/bin/logger -t "adblock[${pid}]" "error: no space left on device/not mounted (${mp})"
+                exit 50
+            elif [ $((av_space)) -lt $((adb_minspace)) ]
+            then
+                /usr/bin/logger -t "adblock[${pid}]" "error: not enough space left on device (${mp})"
+                exit 55
+            fi
+        done
+        # subshell return code handling
+        #
+        rc=$?
+        if [ $((rc)) -ne 0 ]
+        then
+            f_deltemp
+            exit ${rc}
+        fi
+    done
+
+    # check curl package dependency
+    #
+    check="$(printf "${pkg_list}" | grep "^curl")"
+    if [ -z "${check}" ]
+    then
+        /usr/bin/logger -t "adblock[${pid}]" "error: curl package not found"
+        f_deltemp
+        exit 60
+    fi
+
+    # check wget package dependency
+    #
+    check="$(printf "${pkg_list}" | grep "^wget")"
+    if [ -z "${check}" ]
+    then
+        /usr/bin/logger -t "adblock[${pid}]" "error: wget package not found"
+        f_deltemp
+        exit 65
+    fi
+
+    # check dynamic/volatile adblock network interface configuration
+    #
+    rc="$(ifstatus "${adb_if}" >/dev/null 2>&1; printf $?)"
+    if [ $((rc)) -ne 0 ]
+    then
+        json_init
+        json_add_string name "${adb_if}"
+        json_add_string ifname "${adb_dev}"
+        json_add_string proto "static"
+        json_add_array ipaddr
+        json_add_string "" "${adb_ip}"
+        json_close_array
+        json_close_object
+        ubus call network add_dynamic "$(json_dump)"
+        /usr/bin/logger -t "adblock[${pid}]" "info: created new dynamic/volatile network interface (${adb_if}, ${adb_ip})"
+    fi
+
+    # check dynamic/volatile adblock uhttpd instance configuration
+    #
+    rc="$(ps | grep "[u]httpd.*\-r ${adb_if}" >/dev/null 2>&1; printf $?)"
+    if [ $((rc)) -ne 0 ]
+    then
+        uhttpd -h "/www/adblock" -r "${adb_if}" -E "/adblock.html" -p "${adb_ip}:80"
+        /usr/bin/logger -t "adblock[${pid}]" "info: created new dynamic/volatile uhttpd instance (${adb_if}, ${adb_ip})"
+    fi
+}
+
+###################################################
+# f_deltemp: delete temporary files and directories
+#
+f_deltemp()
+{
+    if [ -f "${adb_tmpfile}" ]
+    then
+       rm -f "${adb_tmpfile}" 2>/dev/null
+    fi
+    if [ -d "${adb_tmpdir}" ]
+    then
+       rm -rf "${adb_tmpdir}" 2>/dev/null
+    fi
+}
+
+################################################################
+# f_remove: remove temporary files, start and maintain query log
+#
+f_remove()
+{
+    # delete temporary files and directories
+    #
+    f_deltemp
+
+    # remove existing domain query log background process,
+    # do housekeeping and start a new process on daily basis
+    #
+    if [ "${query_ok}" = "true" ] && [ "${ntp_ok}" = "true" ]
+    then
+        query_date="$(date "+%Y%m%d")"
+        if [ -s "${query_pid}" ] && [ ! -f "${adb_queryfile}.${query_date}" ]
+        then
+            kill -9 $(cat "${query_pid}") 2>/dev/null
+            > "${query_pid}"
+            find "${adb_backupdir}" -maxdepth 1 -type f -mtime +${adb_queryhistory} -name "${query_name}.*" -exec rm -f {} \; 2>/dev/null
+            /usr/bin/logger -t "adblock[${pid}]" "info: remove old dns query log background process and do logfile housekeeping"
+        fi
+        if [ ! -s "${query_pid}" ]
+        then
+            ( logread -f 2>/dev/null & printf "$!" > "${query_pid}" ) | egrep -o "(query\[A\].*)|([a-z0-9\.\-]* is ${query_ip}$)" >> "${adb_queryfile}.${query_date}" &
+            /usr/bin/logger -t "adblock[${pid}]" "info: start new domain query log background process"
+        fi
+    fi
+
+    # final log entry
+    #
+    /usr/bin/logger -t "adblock[${pid}]" "info: domain adblock processing finished (${adb_version})"
+}
+
+#####################################################
+# f_restore: if available, restore last adlist backup
+#
+f_restore()
+{
+    if [ -z "${restore_msg}" ]
+    then
+        restore_msg="unknown"
+    fi
+
+    if [ "${backup_ok}" = "true" ] && [ -f "${adb_backupfile}" ]
+    then
+        cp -f "${adb_backupfile}" "${adb_dnsfile}" 2>/dev/null
+        /usr/bin/logger -t "adblock[${pid}]" "error: ${restore_msg}, adlist backup restored"
+        printf "%s\n" "$(/bin/date "+%d.%m.%Y %H:%M:%S") - error: ${restore_msg}, adlist backup restored" >> "${adb_logfile}"
+    else
+        > "${adb_dnsfile}"
+        /usr/bin/logger -t "adblock[${pid}]" "error: ${restore_msg}, empty adlist generated"
+        printf "%s\n" "$(/bin/date "+%d.%m.%Y %H:%M:%S") - error: ${restore_msg}, empty adlist generated" >> "${adb_logfile}"
+    fi
+
+    # restart dnsmasq
+    #
+    /etc/init.d/dnsmasq restart >/dev/null 2>&1
+
+    # remove files and exit
+    #
+    f_remove
+    exit 100
+}
+
+#######################################################
+# f_wancheck: check for usable adblock update interface
+#
+f_wancheck()
+{
+    if [ "${wan_ok}" = "true" ]
+    then
+        # wait for wan update interface(s)
+        #
+        while [ $((cnt)) -le $((max_cnt)) ]
+        do
+            for dev in ${adb_wandev}
+            do
+                if [ -d "/sys/class/net/${dev}" ]
+                then
+                    dev_out="$(cat /sys/class/net/${dev}/operstate 2>/dev/null)"
+                    if [ "${dev_out}" = "up" ]
+                    then
+                        /usr/bin/logger -t "adblock[${pid}]" "info: get wan/update interface: ${dev}, after ${cnt} loops"
+                        break 2
+                    fi
+                fi
+                if [ $((cnt)) -eq $((max_cnt)) ]
+                then
+                    wan_ok="false"
+                    /usr/bin/logger -t "adblock[${pid}]" "error: no wan/update interface(s) found (${adb_wandev})"
+                    printf "%s\n" "$(/bin/date "+%d.%m.%Y %H:%M:%S") - error: no wan/update interface(s) found (${adb_wandev})" >> "${adb_logfile}"
+                    restore_msg="no wan/update interface(s)"
+                    f_restore
+                fi
+            done
+            sleep 1
+            cnt=$((cnt + 1))
+        done
+    fi
+}
+
+#####################################
+# f_ntpcheck: check/get ntp time sync
+#
+f_ntpcheck()
+{
+    if [ "${ntp_ok}" = "true" ]
+    then
+        # prepare ntp server pool
+        #
+        unset ntp_pool
+        for srv in ${adb_ntpsrv}
+        do
+            ntp_pool="${ntp_pool} -p ${srv}"
+        done
+
+        # wait for ntp time sync
+        #
+        while [ $((cnt)) -le $((max_cnt)) ]
+        do
+            /usr/sbin/ntpd -nq ${ntp_pool} >/dev/null 2>&1
+            rc=$?
+            if [ $((rc)) -eq 0 ]
+            then
+                /usr/bin/logger -t "adblock[${pid}]" "info: get ntp time sync (${adb_ntpsrv}), after ${cnt} loops"
+                break
+            fi
+            if [ $((cnt)) -eq $((max_cnt)) ]
+            then
+                ntp_ok="false"
+                /usr/bin/logger -t "adblock[${pid}]" "error: ntp time sync failed (${adb_ntpsrv})"
+                printf "%s\n" "$(/bin/date "+%d.%m.%Y %H:%M:%S") - error: ntp time sync failed (${adb_ntpsrv})" >> "${adb_logfile}"
+                restore_msg="time sync failed"
+                f_restore
+            fi
+            sleep 1
+            cnt=$((cnt + 1))
+        done
+    fi
+}
+
+#################################################################
+# f_dnscheck: dnsmasq health check with newly generated blocklist
+#
+f_dnscheck()
+{
+    # check 1: dnsmasq startup
+    #
+    dns_status="$(logread -l 20 -e "dnsmasq" -e "FAILED to start up")"
+    if [ -z "${dns_status}" ]
+    then
+        # check 2: nslookup probe
+        #
+        dns_status="$(nslookup "${adb_domain}" 2>/dev/null | grep "${adb_ip}")"
+        if [ -z "${dns_status}" ]
+        then
+            # create backup of new block list only, if both checks are OK and backup enabled
+            #
+            if [ "${backup_ok}" = "true" ]
+            then
+                cp -f "${adb_dnsfile}" "${adb_backupfile}" 2>/dev/null
+                /usr/bin/logger -t "adblock[${pid}]" "info: new block list with ${adb_count} domains loaded, backup generated"
+            else
+                /usr/bin/logger -t "adblock[${pid}]" "info: new block list with ${adb_count} domains loaded, no backup"
+            fi
+        else
+            restore_msg="nslookup probe failed"
+            f_restore
+        fi
+    else
+            restore_msg="dnsmasq probe failed"
+            f_restore
+    fi
+}
+
+##########################################################
+# f_footer: write footer with a few statistics to dns file
+#
+f_footer()
+{
+    adb_count="$(wc -l < "${adb_dnsfile}")"
+    printf "%s\n" "###################################################" >> "${adb_dnsfile}"
+    printf "%s\n" "# last adblock file update: $(date +"%d.%m.%Y - %T")" >> "${adb_dnsfile}"
+    printf "%s\n" "# ${0##*/} (${adb_version}) - ${adb_count} ad/abuse domains blocked" >> "${adb_dnsfile}"
+    printf "%s\n" "# domain blacklist sources:" >> "${adb_dnsfile}"
+    for src in ${adb_sources}
+    do
+        url="${src//\&ruleset=*/}"
+        printf "%s\n" "# ${url}" >> "${adb_dnsfile}"
+    done
+    printf "%s\n" "###################################################" >> "${adb_dnsfile}"
+    printf "%s\n" "# domain whitelist source:" >> "${adb_dnsfile}"
+    printf "%s\n" "# ${adb_whitelist}" >> "${adb_dnsfile}"
+    printf "%s\n" "###################################################" >> "${adb_dnsfile}"
+}
diff --git a/net/adblock/files/adblock-update.sh b/net/adblock/files/adblock-update.sh
new file mode 100755 (executable)
index 0000000..2fb49b6
--- /dev/null
@@ -0,0 +1,206 @@
+#!/bin/sh
+#######################################################
+# ad/abuse domain blocking script for dnsmasq/openwrt #
+# written by Dirk Brenken (dirk@brenken.org)          #
+#######################################################
+
+# LICENSE
+# ========
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+###############
+# environment #
+###############
+
+# set script version
+#
+adb_version="0.20.3"
+
+# get current pid and script directory
+#
+pid=$$
+adb_scriptdir="${0%/*}"
+
+# source in adblock function library
+#
+if [ -r "${adb_scriptdir}/adblock-helper.sh" ]
+then
+    . "${adb_scriptdir}/adblock-helper.sh"
+else
+    /usr/bin/logger -t "adblock[${pid}]" "error: adblock function library not found"
+    exit 200
+fi
+
+################
+# main program #
+################
+
+# call restore function on trap signals (HUP, INT, QUIT, BUS, SEGV, TERM)
+#
+trap "restore_msg='trap error'; f_restore" 1 2 3 10 11 15
+
+# start logging
+#
+/usr/bin/logger -t "adblock[${pid}]" "info: domain adblock processing started (${adb_version})"
+
+# load environment
+#
+f_envload
+
+# parse environment
+#
+f_envparse
+
+# check environment
+#
+f_envcheck
+
+# check ntp time sync
+#
+f_ntpcheck
+
+# check wan update interface(s)
+#
+f_wancheck
+
+# check/start shallalist (pre-)processing
+#
+if [ -n "${adb_arc_shalla}" ]
+then
+    # download shallalist archive
+    #
+    shalla_archive="${adb_tmpdir}/shallalist.tar.gz"
+    shalla_file="${adb_tmpdir}/shallalist.txt"
+    curl --insecure --max-time "${max_time}" "${adb_arc_shalla}" -o "${shalla_archive}" 2>/dev/null
+    rc=$?
+    if [ $((rc)) -eq 0 ]
+    then
+        /usr/bin/logger -t "adblock[${pid}]" "info: shallalist archive download finished"
+    else
+        /usr/bin/logger -t "adblock[${pid}]" "error: shallalist archive download failed (${adb_arc_shalla})"
+        printf "%s\n" "$(/bin/date "+%d.%m.%Y %H:%M:%S") - error: shallalist archive download failed (${adb_arc_shalla})" >> "${adb_logfile}"
+        restore_msg="archive download failed"
+        f_restore
+    fi
+
+    # extract shallalist archive
+    #
+    tar -xzf "${shalla_archive}" -C "${adb_tmpdir}" 2>/dev/null
+    rc=$?
+    if [ $((rc)) -eq 0 ]
+    then
+        /usr/bin/logger -t "adblock[${pid}]" "info: shallalist archive extraction finished"
+    else
+        /usr/bin/logger -t "adblock[${pid}]" "error: shallalist archive extraction failed"
+        printf "%s\n" "$(/bin/date "+%d.%m.%Y %H:%M:%S") - error: shallalist archive extraction failed" >> "${adb_logfile}"
+        restore_msg="archive extraction failed"
+        f_restore
+    fi
+
+    # merge selected shallalist categories
+    #
+    > "${shalla_file}"
+    for category in ${adb_cat_shalla}
+    do
+        if [ -f "${adb_tmpdir}/BL/${category}/domains" ]
+        then
+            cat "${adb_tmpdir}/BL/${category}/domains" >> "${shalla_file}" 2>/dev/null
+            rc=$?
+        else
+            rc=220
+        fi
+        if [ $((rc)) -ne 0 ]
+        then
+            break
+        fi
+    done
+
+    # finish shallalist (pre-)processing
+    #
+    if [ $((rc)) -eq 0 ]
+    then
+        adb_sources="${adb_sources} file:///${shalla_file}&ruleset=rset_shalla"
+        /usr/bin/logger -t "adblock[${pid}]" "info: shallalist (pre-)processing finished (${adb_cat_shalla})"
+    else
+        /usr/bin/logger -t "adblock[${pid}]" "error: shallalist (pre-)processing failed (${rc}, ${adb_cat_shalla})"
+        printf "%s\n" "$(/bin/date "+%d.%m.%Y %H:%M:%S") - error: shallalist (pre-)processing failed (${rc}, ${adb_cat_shalla})" >> "${adb_logfile}"
+        restore_msg="shallalist merge failed"
+        f_restore
+    fi
+fi
+
+# loop through active adblock domain sources,
+# prepare output and store all extracted domains in temp file
+#
+adb_sources="${adb_sources} file://${adb_blacklist}&ruleset=rset_default"
+for src in ${adb_sources}
+do
+    # download selected adblock sources
+    #
+    url="${src//\&ruleset=*/}"
+    check_url="$(printf "${url}" | sed -n '/^https:/p')"
+    if [ -n "${check_url}" ]
+    then
+        tmp_var="$(wget --timeout="${max_time}" --tries=1 --output-document=- "${url}" 2>/dev/null)"
+        rc=$?
+    else
+        tmp_var="$(curl --insecure --max-time "${max_time}" "${url}" 2>/dev/null)"
+        rc=$?
+    fi
+
+    # check download result and prepare domain output by regex patterns
+    #
+    if [ $((rc)) -eq 0 ] && [ -n "${tmp_var}" ]
+    then
+        eval "$(printf "${src}" | sed 's/\(.*\&ruleset=\)/ruleset=\$/g')"
+        tmp_var="$(printf "%s\n" "${tmp_var}" | tr '[A-Z]' '[a-z]')"
+        adb_count="$(printf "%s\n" "${tmp_var}" | eval "${ruleset}" | tee -a "${adb_tmpfile}" | wc -l)"
+        /usr/bin/logger -t "adblock[${pid}]" "info: source download finished (${url}, ${adb_count} entries)"
+    elif [ $((rc)) -eq 0 ] && [ -z "${tmp_var}" ]
+    then
+        /usr/bin/logger -t "adblock[${pid}]" "info: empty source download finished (${url})"
+    else
+        /usr/bin/logger -t "adblock[${pid}]" "error: source download failed (${url})"
+        printf "%s\n" "$(/bin/date "+%d.%m.%Y %H:%M:%S") - error: source download failed (${url})" >> "${adb_logfile}"
+        restore_msg="download failed"
+        f_restore
+    fi
+done
+
+# create empty destination file
+#
+> "${adb_dnsfile}"
+
+# rewrite ad/abuse domain information to dns file,
+# remove duplicates and whitelist entries
+#
+grep -vxf "${adb_whitelist}" < "${adb_tmpfile}" | eval "${adb_dnsformat}" | sort -u 2>/dev/null >> "${adb_dnsfile}"
+
+# write dns file footer
+#
+f_footer
+
+# restart dnsmasq with newly generated block list
+#
+/etc/init.d/dnsmasq restart >/dev/null 2>&1
+sleep 2
+
+# dnsmasq health check
+#
+f_dnscheck
+
+# remove files and exit
+#
+f_remove
+exit 0
diff --git a/net/adblock/files/adblock.blacklist b/net/adblock/files/adblock.blacklist
new file mode 100644 (file)
index 0000000..3df7583
--- /dev/null
@@ -0,0 +1 @@
+bild.de
diff --git a/net/adblock/files/adblock.conf b/net/adblock/files/adblock.conf
new file mode 100644 (file)
index 0000000..5fcacc0
--- /dev/null
@@ -0,0 +1,76 @@
+# adblock configuration
+#
+config adblock "global"
+       option adb_ip "192.168.2.1"
+       option adb_dev "eth0"
+       option adb_if "adblock"
+       option adb_domain "heise.de"
+       option adb_minspace "100000"
+       option adb_blacklist "/etc/adblock/adblock.blacklist"
+       option adb_whitelist "/etc/adblock/adblock.whitelist"
+
+config service "wancheck"
+       option enabled "0"
+       list adb_wanlist "wan"
+
+config service "ntpcheck"
+       option enabled "0"
+       list adb_ntplist "0.pool.ntp.org"
+       list adb_ntplist "1.pool.ntp.org"
+       list adb_ntplist "2.pool.ntp.org"
+       list adb_ntplist "3.pool.ntp.org"
+
+config service "backup"
+       option enabled "0"
+       option adb_backupfile "/tmp/adlist.backup"
+
+config service "errorlog"
+       option enabled "0"
+       option adb_logfile "/tmp/error.log"
+
+config service "querylog"
+       option enabled "0"
+       option adb_queryfile "/tmp/query.log"
+       option adb_queryhistory "1"
+
+config source "yoyo"
+       option enabled "1"
+       option adb_src_yoyo "http://pgl.yoyo.org/adservers/serverlist.php?hostformat=one-line&showintro=0&mimetype=plaintext&ruleset=rset_yoyo"
+
+config source "malware"
+       option enabled "0"
+       option adb_src_malware "http://mirror1.malwaredomains.com/files/justdomains&ruleset=rset_default"
+
+config source "zeus"
+       option enabled "0"
+       option adb_src_zeus "https://zeustracker.abuse.ch/blocklist.php?download=domainblocklist&ruleset=rset_default"
+
+config source "feodo"
+       option enabled "0"
+       option adb_src_feodo "https://feodotracker.abuse.ch/blocklist/?download=domainblocklist&ruleset=rset_default"
+
+config source "palevo"
+       option enabled "0"
+       option adb_src_palevo "https://palevotracker.abuse.ch/blocklists.php?download=domainblocklist&ruleset=rset_default"
+
+config source "dshield"
+       option enabled "0"
+       option adb_src_dshield "http://www.dshield.org/feeds/suspiciousdomains_Low.txt&ruleset=rset_default"
+
+config source "spam404"
+       option enabled "0"
+       option adb_src_spam404 "http://spam404bl.com/spam404scamlist.txt&ruleset=rset_spam404"
+
+config source "winhelp"
+       option enabled "0"
+       option adb_src_winhelp "http://winhelp2002.mvps.org/hosts.txt&ruleset=rset_winhelp"
+
+config source "shalla"
+       option enabled "0"
+       option adb_arc_shalla "http://www.shallalist.de/Downloads/shallalist.tar.gz"
+       list adb_catlist "adv"
+       list adb_catlist "costtraps"
+       list adb_catlist "downloads"
+       list adb_catlist "spyware"
+       list adb_catlist "tracker"
+       list adb_catlist "warez"
diff --git a/net/adblock/files/adblock.whitelist b/net/adblock/files/adblock.whitelist
new file mode 100644 (file)
index 0000000..42e0a57
--- /dev/null
@@ -0,0 +1,4 @@
+downloads.openwrt.org
+ftp.de.debian.org
+download.eclipse.org
+dl.sourceforge.net
diff --git a/net/adblock/files/samples/adblock.conf.sample b/net/adblock/files/samples/adblock.conf.sample
new file mode 100644 (file)
index 0000000..5fcacc0
--- /dev/null
@@ -0,0 +1,76 @@
+# adblock configuration
+#
+config adblock "global"
+       option adb_ip "192.168.2.1"
+       option adb_dev "eth0"
+       option adb_if "adblock"
+       option adb_domain "heise.de"
+       option adb_minspace "100000"
+       option adb_blacklist "/etc/adblock/adblock.blacklist"
+       option adb_whitelist "/etc/adblock/adblock.whitelist"
+
+config service "wancheck"
+       option enabled "0"
+       list adb_wanlist "wan"
+
+config service "ntpcheck"
+       option enabled "0"
+       list adb_ntplist "0.pool.ntp.org"
+       list adb_ntplist "1.pool.ntp.org"
+       list adb_ntplist "2.pool.ntp.org"
+       list adb_ntplist "3.pool.ntp.org"
+
+config service "backup"
+       option enabled "0"
+       option adb_backupfile "/tmp/adlist.backup"
+
+config service "errorlog"
+       option enabled "0"
+       option adb_logfile "/tmp/error.log"
+
+config service "querylog"
+       option enabled "0"
+       option adb_queryfile "/tmp/query.log"
+       option adb_queryhistory "1"
+
+config source "yoyo"
+       option enabled "1"
+       option adb_src_yoyo "http://pgl.yoyo.org/adservers/serverlist.php?hostformat=one-line&showintro=0&mimetype=plaintext&ruleset=rset_yoyo"
+
+config source "malware"
+       option enabled "0"
+       option adb_src_malware "http://mirror1.malwaredomains.com/files/justdomains&ruleset=rset_default"
+
+config source "zeus"
+       option enabled "0"
+       option adb_src_zeus "https://zeustracker.abuse.ch/blocklist.php?download=domainblocklist&ruleset=rset_default"
+
+config source "feodo"
+       option enabled "0"
+       option adb_src_feodo "https://feodotracker.abuse.ch/blocklist/?download=domainblocklist&ruleset=rset_default"
+
+config source "palevo"
+       option enabled "0"
+       option adb_src_palevo "https://palevotracker.abuse.ch/blocklists.php?download=domainblocklist&ruleset=rset_default"
+
+config source "dshield"
+       option enabled "0"
+       option adb_src_dshield "http://www.dshield.org/feeds/suspiciousdomains_Low.txt&ruleset=rset_default"
+
+config source "spam404"
+       option enabled "0"
+       option adb_src_spam404 "http://spam404bl.com/spam404scamlist.txt&ruleset=rset_spam404"
+
+config source "winhelp"
+       option enabled "0"
+       option adb_src_winhelp "http://winhelp2002.mvps.org/hosts.txt&ruleset=rset_winhelp"
+
+config source "shalla"
+       option enabled "0"
+       option adb_arc_shalla "http://www.shallalist.de/Downloads/shallalist.tar.gz"
+       list adb_catlist "adv"
+       list adb_catlist "costtraps"
+       list adb_catlist "downloads"
+       list adb_catlist "spyware"
+       list adb_catlist "tracker"
+       list adb_catlist "warez"
diff --git a/net/adblock/files/samples/dhcp.config.sample b/net/adblock/files/samples/dhcp.config.sample
new file mode 100644 (file)
index 0000000..40de7d4
--- /dev/null
@@ -0,0 +1,7 @@
+# tweaks for dnsmasq
+# configuration found in /etc/config/dhcp
+#
+config dnsmasq
+    option cachesize '1000'
+    option filterwin2k '0'
+    option logqueries '1'
diff --git a/net/adblock/files/samples/dnsmasq.conf.sample b/net/adblock/files/samples/dnsmasq.conf.sample
new file mode 100644 (file)
index 0000000..d92adc8
--- /dev/null
@@ -0,0 +1,5 @@
+# tell DHCP clients to not ask for proxy information
+# some clients - like Win7 - will constantly ask if not told "No!"
+# configuration found in /etc/dnsmasq
+#
+dhcp-option=252,"\n"
diff --git a/net/adblock/files/samples/firewall.user.sample b/net/adblock/files/samples/firewall.user.sample
new file mode 100644 (file)
index 0000000..823c014
--- /dev/null
@@ -0,0 +1,5 @@
+# redirect/force all dns queries to port 53 of your router
+# configuration found in /etc/firewall.user
+#
+iptables -t nat -I PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 53
+iptables -t nat -I PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 53
diff --git a/net/adblock/files/samples/rc.local.sample b/net/adblock/files/samples/rc.local.sample
new file mode 100644 (file)
index 0000000..890779e
--- /dev/null
@@ -0,0 +1,26 @@
+# sample startup script
+# configuration found in /etc/rc.local
+#
+
+# start logging
+#
+/usr/bin/logger -t rc.local "start rc.local processing"
+
+# set home directory
+#
+export HOME=/root
+
+# resize /tmp partition to 256 MB
+#
+/usr/bin/logger -t rc.local "resize /tmp partition to 256 MB"
+mount tmpfs /tmp -t tmpfs -o remount,nosuid,nodev,noatime,size=256M
+
+# start adblock script
+#
+/usr/bin/logger -t rc.local "start adblock script"
+/usr/bin/adblock-update.sh >/dev/null 2>&1
+
+# write log and exit
+#
+/usr/bin/logger -t rc.local "finish rc.local processing"
+exit 0
diff --git a/net/adblock/files/samples/root.crontab.sample b/net/adblock/files/samples/root.crontab.sample
new file mode 100644 (file)
index 0000000..bc7bde7
--- /dev/null
@@ -0,0 +1,8 @@
+# sample crontab script
+# configuration found in /etc/crontabs/root
+#
+
+# start adblock script twice a day
+#
+0 06 * * *    /usr/bin/adblock-update.sh &
+0 22 * * *    /usr/bin/adblock-update.sh &
diff --git a/net/adblock/files/www/adblock/adblock.html b/net/adblock/files/www/adblock/adblock.html
new file mode 100644 (file)
index 0000000..cc8d213
--- /dev/null
@@ -0,0 +1,6 @@
+<html>
+    <head></head>
+    <body>
+       <img src="/adblock.png" border=0 alt=""></img>
+    </body>
+</html>
diff --git a/net/adblock/files/www/adblock/adblock.png b/net/adblock/files/www/adblock/adblock.png
new file mode 100644 (file)
index 0000000..9da19ea
Binary files /dev/null and b/net/adblock/files/www/adblock/adblock.png differ
diff --git a/net/adblock/files/www/adblock/index.html b/net/adblock/files/www/adblock/index.html
new file mode 100644 (file)
index 0000000..cc8d213
--- /dev/null
@@ -0,0 +1,6 @@
+<html>
+    <head></head>
+    <body>
+       <img src="/adblock.png" border=0 alt=""></img>
+    </body>
+</html>
index 960ef856fdc56f853f9c1b4372c6394496a0af17..fed4ab22ae159d8f6b20877a0847a514e83ca9b0 100644 (file)
@@ -25,7 +25,7 @@ include $(INCLUDE_DIR)/package.mk
 define Package/aircrack-ng
   SECTION:=net
   CATEGORY:=Network
-  DEPENDS:=+libpcap +libpthread +libopenssl +libnl +wireless-tools +ethtool
+  DEPENDS:=+libpcap +libpthread +libopenssl +libnl-core +libnl-genl +wireless-tools +ethtool
   TITLE:=WLAN tools for breaking 802.11 WEP/WPA keys
   URL:=http://www.aircrack-ng.org/
   MAINTAINER:=Rick Farina <zerochaos@gentoo.org>
diff --git a/net/atftp/Makefile b/net/atftp/Makefile
new file mode 100644 (file)
index 0000000..f538ba2
--- /dev/null
@@ -0,0 +1,57 @@
+#
+# Copyright (C) 2006-2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=atftp
+PKG_VERSION:=0.7.1
+PKG_RELEASE:=4
+PKG_MAINTAINER:=Daniel Danzberger <daniel@dd-wrt.com>
+PKG_LICENSE:=GPL-2.0
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://freefr.dl.sourceforge.net/project/atftp/
+PKG_MD5SUM:=367bf401965fbed04585b1229c2191a8
+
+PKG_BUILD_DEPENDS:=libpcre libreadline
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/atftp/Default
+  SECTION:=net
+  CATEGORY:=Network
+  TITLE:=TFTP
+  SUBMENU:=File Transfer
+endef
+
+define Package/atftp
+  $(call Package/atftp/Default)
+  DEPENDS:=+libreadline +libncurses
+  TITLE+= client
+endef
+
+define Package/atftpd
+  $(call Package/atftp/Default)
+  DEPENDS:=+libpcre +libpthread
+  TITLE+= server
+endef
+
+CONFIGURE_ARGS += \
+       --disable-libwrap
+
+define Package/atftp/install
+       $(INSTALL_DIR) $(1)/usr/sbin
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/atftp $(1)/usr/sbin/
+endef
+
+define Package/atftpd/install
+       $(INSTALL_DIR) $(1)/etc
+       $(INSTALL_DIR) $(1)/usr/sbin
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/atftpd $(1)/usr/sbin/
+endef
+
+$(eval $(call BuildPackage,atftp))
+$(eval $(call BuildPackage,atftpd))
diff --git a/net/atftp/patches/01-missing-u_char-type-patch.patch b/net/atftp/patches/01-missing-u_char-type-patch.patch
new file mode 100644 (file)
index 0000000..081f4b3
--- /dev/null
@@ -0,0 +1,13 @@
+diff --git a/tftpd.h b/tftpd.h
+index 945065e..4c2f214 100644
+--- a/tftpd.h
++++ b/tftpd.h
+@@ -46,7 +46,7 @@ struct thread_data {
+      char *mc_addr;             /* multicast address */
+      struct sockaddr_storage sa_mcast;
+      union ip_mreq_storage mcastaddr;
+-     u_char mcast_ttl;
++     unsigned char mcast_ttl;
+      
+      /*
+       * Self can read/write until client_ready is set. Then only allowed to read.
diff --git a/net/atftp/patches/02-fix-invalid-read-in-tftp_send_request.patch b/net/atftp/patches/02-fix-invalid-read-in-tftp_send_request.patch
new file mode 100644 (file)
index 0000000..679af5c
--- /dev/null
@@ -0,0 +1,13 @@
+diff --git a/tftp_io.c b/tftp_io.c
+index 605a9c2..6cce1f4 100644
+--- a/tftp_io.c
++++ b/tftp_io.c
+@@ -64,7 +64,7 @@ int tftp_send_request(int socket, struct sockaddr_storage *sa, short type,
+      buf_index += strlen(mode);
+      buf_index++;
+      
+-     for (i = 2; ; i++)
++     for (i = 2; i < OPT_NUMBER; i++)
+      {
+           if (strlen(tftp_options[i].option) == 0)
+                break;
index 1eec28ca4f67d8851d177f86d0401903ec6e4b09..be4fc836c0624aa8f6824d9ef4ee76cf35af5a6d 100644 (file)
@@ -9,7 +9,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=bind
-PKG_VERSION:=9.9.7-P2
+PKG_VERSION:=9.9.7-P3
 PKG_RELEASE:=1
 USERID:=bind=57:bind=57
 
@@ -20,13 +20,15 @@ PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:= \
        ftp://ftp.isc.org/isc/bind9/$(PKG_VERSION) \
        http://www.mirrorservice.org/sites/ftp.isc.org/isc/bind9/$(PKG_VERSION)
-PKG_MD5SUM:=095ae241bfe06d50c0f2469a5fff46f0
+PKG_MD5SUM:=022a8aca9ca51e1027d77094094eecfd
 
 PKG_FIXUP:=autoreconf
 PKG_REMOVE_FILES:=aclocal.m4 libtool.m4
 
 PKG_INSTALL:=1
 
+PKG_CONFIG_DEPENDS := CONFIG_OPENSSL_WITH_EC
+
 include $(INCLUDE_DIR)/package.mk
 
 define Package/bind/Default
@@ -100,7 +102,7 @@ CONFIGURE_ARGS += \
        --enable-epoll=yes \
        --with-gost=no \
        --with-gssapi=no \
-       --with-ecdsa=no \
+       --with-ecdsa=$(if $(CONFIG_OPENSSL_WITH_EC),yes,no) \
        --with-readline=no
 
 CONFIGURE_VARS += \
index 44da26c09d3bbc2dff6d3f557a5f2a9d15f101a1..2a0fd0e44191ba3b690099cebf77343e73d378c7 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=bmon
-PKG_VERSION:=3.5
-PKG_RELEASE:=1
+PKG_VERSION:=3.8
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://github.com/tgraf/bmon/releases/download/v$(PKG_VERSION)/
-PKG_MD5SUM:=b7d0d055727f2cf1e452f26dfbf6a825
+PKG_MD5SUM:=162ce0d108ff32cbf44b874c5a7e8147
 PKG_MAINTAINER:=Baptiste Jonglez <openwrt-pkg@bitsofnetworks.org>
 PKG_LICENSE:=MIT
 
@@ -22,7 +22,7 @@ include $(INCLUDE_DIR)/package.mk
 define Package/bmon
   SECTION:=net
   CATEGORY:=Network
-  DEPENDS:=+PACKAGE_libncursesw:libncursesw +!PACKAGE_libncursesw:libncurses +libnl +confuse
+  DEPENDS:=+PACKAGE_libncursesw:libncursesw +!PACKAGE_libncursesw:libncurses +libnl-core +libnl-route +confuse +terminfo
   TITLE:=bmon is a portable bandwidth monitor
   URL:=https://github.com/tgraf/bmon/
 endef
@@ -40,6 +40,9 @@ CONFIGURE_ARGS += \
 CONFIGURE_VARS += \
        ac_cv_lib_nl_nl_connect=no \
 
+# Needed to compile some objects
+TARGET_CFLAGS+= -std=gnu99
+
 define Package/bmon/install
        $(INSTALL_DIR) $(1)/usr/sbin
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/bmon $(1)/usr/sbin/
diff --git a/net/cgi-io/Makefile b/net/cgi-io/Makefile
new file mode 100644 (file)
index 0000000..c36231a
--- /dev/null
@@ -0,0 +1,44 @@
+#
+# Copyright (C) 2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=cgi-io
+PKG_RELEASE:=1
+
+PKG_LICENSE:=GPL-2.0+
+
+PKG_MAINTAINER:=John Crispin <blogic@openwrt.org>
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/cmake.mk
+
+define Package/cgi-io
+  SECTION:=net
+  CATEGORY:=Network
+  SUBMENU:=Web Servers/Proxies
+  DEPENDS:=+libubox +libubus
+  TITLE:=CGI utility for handling up/downloading of files
+endef
+
+define Package/cgi-io/description
+  This package contains an cgi utility that is useful for up/downloading files
+endef
+
+define Build/Prepare
+       mkdir -p $(PKG_BUILD_DIR)
+       $(CP) ./src/* $(PKG_BUILD_DIR)/
+endef
+
+define Package/cgi-io/install
+       $(INSTALL_DIR) $(1)/usr/libexec $(1)/www/cgi-bin/
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/cgi-io $(1)/usr/libexec
+       $(LN) ../../usr/libexec/cgi-io $(1)/www/cgi-bin/cgi-upload 
+       $(LN) ../../usr/libexec/cgi-io $(1)/www/cgi-bin/cgi-download 
+endef
+
+$(eval $(call BuildPackage,cgi-io))
diff --git a/net/cgi-io/src/CMakeLists.txt b/net/cgi-io/src/CMakeLists.txt
new file mode 100644 (file)
index 0000000..8a4ca19
--- /dev/null
@@ -0,0 +1,19 @@
+cmake_minimum_required(VERSION 2.6)
+
+PROJECT(cgi-io C)
+
+INCLUDE(CheckFunctionExists)
+
+ADD_DEFINITIONS(-Os -Wall -Werror --std=gnu99 -g3 -Wmissing-declarations)
+
+SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "")
+
+IF(APPLE)
+  INCLUDE_DIRECTORIES(/opt/local/include)
+  LINK_DIRECTORIES(/opt/local/lib)
+ENDIF()
+
+ADD_EXECUTABLE(cgi-io main.c multipart_parser.c)
+TARGET_LINK_LIBRARIES(cgi-io ubox ubus)
+
+INSTALL(TARGETS cgi-io RUNTIME DESTINATION sbin)
diff --git a/net/cgi-io/src/main.c b/net/cgi-io/src/main.c
new file mode 100644 (file)
index 0000000..985831c
--- /dev/null
@@ -0,0 +1,644 @@
+/*
+ * cgi-io - LuCI non-RPC helper
+ *
+ *   Copyright (C) 2013 Jo-Philipp Wich <jow@openwrt.org>
+ *
+ * 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.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdbool.h>
+#include <unistd.h>
+#include <string.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <ctype.h>
+#include <sys/stat.h>
+#include <sys/wait.h>
+
+#include <libubus.h>
+#include <libubox/blobmsg.h>
+
+#include "multipart_parser.h"
+
+
+enum part {
+       PART_UNKNOWN,
+       PART_SESSIONID,
+       PART_FILENAME,
+       PART_FILEMODE,
+       PART_FILEDATA
+};
+
+const char *parts[] = {
+       "(bug)",
+       "sessionid",
+       "filename",
+       "filemode",
+       "filedata",
+};
+
+struct state
+{
+       bool is_content_disposition;
+       enum part parttype;
+       char *sessionid;
+       char *filename;
+       bool filedata;
+       int filemode;
+       int filefd;
+       int tempfd;
+};
+
+enum {
+       SES_ACCESS,
+       __SES_MAX,
+};
+
+static const struct blobmsg_policy ses_policy[__SES_MAX] = {
+       [SES_ACCESS] = { .name = "access", .type = BLOBMSG_TYPE_BOOL },
+};
+
+
+static struct state st;
+
+static void
+session_access_cb(struct ubus_request *req, int type, struct blob_attr *msg)
+{
+       struct blob_attr *tb[__SES_MAX];
+       bool *allow = (bool *)req->priv;
+
+       if (!msg)
+               return;
+
+       blobmsg_parse(ses_policy, __SES_MAX, tb, blob_data(msg), blob_len(msg));
+
+       if (tb[SES_ACCESS])
+               *allow = blobmsg_get_bool(tb[SES_ACCESS]);
+}
+
+static bool
+session_access(const char *sid, const char *obj, const char *func)
+{
+       uint32_t id;
+       bool allow = false;
+       struct ubus_context *ctx;
+       static struct blob_buf req;
+
+       ctx = ubus_connect(NULL);
+
+       if (!ctx || ubus_lookup_id(ctx, "session", &id))
+               goto out;
+
+       blob_buf_init(&req, 0);
+       blobmsg_add_string(&req, "ubus_rpc_session", sid);
+       blobmsg_add_string(&req, "scope", "cgi-io");
+       blobmsg_add_string(&req, "object", obj);
+       blobmsg_add_string(&req, "function", func);
+
+       ubus_invoke(ctx, id, "access", req.head, session_access_cb, &allow, 500);
+
+out:
+       if (ctx)
+               ubus_free(ctx);
+
+       return allow;
+}
+
+static char *
+md5sum(const char *file)
+{
+       pid_t pid;
+       int fds[2];
+       static char md5[33];
+
+       if (pipe(fds))
+               return NULL;
+
+       switch ((pid = fork()))
+       {
+       case -1:
+               return NULL;
+
+       case 0:
+               uloop_done();
+
+               dup2(fds[1], 1);
+
+               close(0);
+               close(2);
+               close(fds[0]);
+               close(fds[1]);
+
+               if (execl("/bin/busybox", "/bin/busybox", "md5sum", file, NULL));
+                       return NULL;
+
+               break;
+
+       default:
+               memset(md5, 0, sizeof(md5));
+               read(fds[0], md5, 32);
+               waitpid(pid, NULL, 0);
+               close(fds[0]);
+               close(fds[1]);
+       }
+
+       return md5;
+}
+
+static char *
+datadup(const void *in, size_t len)
+{
+       char *out = malloc(len + 1);
+
+       if (!out)
+               return NULL;
+
+       memcpy(out, in, len);
+
+       *(out + len) = 0;
+
+       return out;
+}
+
+static bool
+urldecode(char *buf)
+{
+       char *c, *p;
+
+       if (!buf || !*buf)
+               return true;
+
+#define hex(x) \
+       (((x) <= '9') ? ((x) - '0') : \
+               (((x) <= 'F') ? ((x) - 'A' + 10) : \
+                       ((x) - 'a' + 10)))
+
+       for (c = p = buf; *p; c++)
+       {
+               if (*p == '%')
+               {
+                       if (!isxdigit(*(p + 1)) || !isxdigit(*(p + 2)))
+                               return false;
+
+                       *c = (char)(16 * hex(*(p + 1)) + hex(*(p + 2)));
+
+                       p += 3;
+               }
+               else if (*p == '+')
+               {
+                       *c = ' ';
+                       p++;
+               }
+               else
+               {
+                       *c = *p++;
+               }
+       }
+
+       *c = 0;
+
+       return true;
+}
+
+static bool
+postdecode(char **fields, int n_fields)
+{
+       char *p;
+       const char *var;
+       static char buf[1024];
+       int i, len, field, found = 0;
+
+       var = getenv("CONTENT_TYPE");
+
+       if (!var || strncmp(var, "application/x-www-form-urlencoded", 33))
+               return false;
+
+       memset(buf, 0, sizeof(buf));
+
+       if ((len = read(0, buf, sizeof(buf) - 1)) > 0)
+       {
+               for (p = buf, i = 0; i <= len; i++)
+               {
+                       if (buf[i] == '=')
+                       {
+                               buf[i] = 0;
+
+                               for (field = 0; field < (n_fields * 2); field += 2)
+                               {
+                                       if (!strcmp(p, fields[field]))
+                                       {
+                                               fields[field + 1] = buf + i + 1;
+                                               found++;
+                                       }
+                               }
+                       }
+                       else if (buf[i] == '&' || buf[i] == '\0')
+                       {
+                               buf[i] = 0;
+
+                               if (found >= n_fields)
+                                       break;
+
+                               p = buf + i + 1;
+                       }
+               }
+       }
+
+       for (field = 0; field < (n_fields * 2); field += 2)
+               if (!urldecode(fields[field + 1]))
+                       return false;
+
+       return (found >= n_fields);
+}
+
+static int
+response(bool success, const char *message)
+{
+       char *md5;
+       struct stat s;
+
+       printf("Status: 200 OK\r\n");
+       printf("Content-Type: text/plain\r\n\r\n{\n");
+
+       if (success)
+       {
+               if (!stat(st.filename, &s) && (md5 = md5sum(st.filename)) != NULL)
+                       printf("\t\"size\": %u,\n\t\"checksum\": \"%s\"\n",
+                                  (unsigned int)s.st_size, md5);
+       }
+       else
+       {
+               if (message)
+                       printf("\t\"message\": \"%s\",\n", message);
+
+               printf("\t\"failure\": [ %u, \"%s\" ]\n", errno, strerror(errno));
+
+               if (st.filefd > -1)
+                       unlink(st.filename);
+       }
+
+       printf("}\n");
+
+       return -1;
+}
+
+static int
+failure(int e, const char *message)
+{
+       printf("Status: 500 Internal Server failure\r\n");
+       printf("Content-Type: text/plain\r\n\r\n");
+       printf("%s", message);
+
+       if (e)
+               printf(": %s", strerror(e));
+
+       return -1;
+}
+
+static int
+filecopy(void)
+{
+       int len;
+       char buf[4096];
+
+       if (!st.filedata)
+       {
+               close(st.tempfd);
+               errno = EINVAL;
+               return response(false, "No file data received");
+       }
+
+       if (lseek(st.tempfd, 0, SEEK_SET) < 0)
+       {
+               close(st.tempfd);
+               return response(false, "Failed to rewind temp file");
+       }
+
+       st.filefd = open(st.filename, O_CREAT | O_TRUNC | O_WRONLY, 0600);
+
+       if (st.filefd < 0)
+       {
+               close(st.tempfd);
+               return response(false, "Failed to open target file");
+       }
+
+       while ((len = read(st.tempfd, buf, sizeof(buf))) > 0)
+       {
+               if (write(st.filefd, buf, len) != len)
+               {
+                       close(st.tempfd);
+                       close(st.filefd);
+                       return response(false, "I/O failure while writing target file");
+               }
+       }
+
+       close(st.tempfd);
+       close(st.filefd);
+
+       if (chmod(st.filename, st.filemode))
+               return response(false, "Failed to chmod target file");
+
+       return 0;
+}
+
+static int
+header_field(multipart_parser *p, const char *data, size_t len)
+{
+       st.is_content_disposition = !strncasecmp(data, "Content-Disposition", len);
+       return 0;
+}
+
+static int
+header_value(multipart_parser *p, const char *data, size_t len)
+{
+       int i, j;
+
+       if (!st.is_content_disposition)
+               return 0;
+
+       if (len < 10 || strncasecmp(data, "form-data", 9))
+               return 0;
+
+       for (data += 9, len -= 9; *data == ' ' || *data == ';'; data++, len--);
+
+       if (len < 8 || strncasecmp(data, "name=\"", 6))
+               return 0;
+
+       for (data += 6, len -= 6, i = 0; i <= len; i++)
+       {
+               if (*(data + i) != '"')
+                       continue;
+
+               for (j = 1; j < sizeof(parts) / sizeof(parts[0]); j++)
+                       if (!strncmp(data, parts[j], i))
+                               st.parttype = j;
+
+               break;
+       }
+
+       return 0;
+}
+
+static int
+data_begin_cb(multipart_parser *p)
+{
+       char tmpname[24] = "/tmp/luci-upload.XXXXXX";
+
+       if (st.parttype == PART_FILEDATA)
+       {
+               if (!st.sessionid)
+                       return response(false, "File data without session");
+
+               if (!st.filename)
+                       return response(false, "File data without name");
+
+               st.tempfd = mkstemp(tmpname);
+
+               if (st.tempfd < 0)
+                       return response(false, "Failed to create temporary file");
+
+               unlink(tmpname);
+       }
+
+       return 0;
+}
+
+static int
+data_cb(multipart_parser *p, const char *data, size_t len)
+{
+       switch (st.parttype)
+       {
+       case PART_SESSIONID:
+               st.sessionid = datadup(data, len);
+               break;
+
+       case PART_FILENAME:
+               st.filename = datadup(data, len);
+               break;
+
+       case PART_FILEMODE:
+               st.filemode = strtoul(data, NULL, 8);
+               break;
+
+       case PART_FILEDATA:
+               if (write(st.tempfd, data, len) != len)
+               {
+                       close(st.tempfd);
+                       return response(false, "I/O failure while writing temporary file");
+               }
+
+               if (!st.filedata)
+                       st.filedata = !!len;
+
+               break;
+
+       default:
+               break;
+       }
+
+       return 0;
+}
+
+static int
+data_end_cb(multipart_parser *p)
+{
+       if (st.parttype == PART_SESSIONID)
+       {
+               if (!session_access(st.sessionid, "upload", "write"))
+               {
+                       errno = EPERM;
+                       return response(false, "Upload permission denied");
+               }
+       }
+       else if (st.parttype == PART_FILEDATA)
+       {
+               if (st.tempfd < 0)
+                       return response(false, "Internal program failure");
+
+#if 0
+               /* prepare directory */
+               for (ptr = st.filename; *ptr; ptr++)
+               {
+                       if (*ptr == '/')
+                       {
+                               *ptr = 0;
+
+                               if (mkdir(st.filename, 0755))
+                               {
+                                       unlink(st.tmpname);
+                                       return response(false, "Failed to create destination directory");
+                               }
+
+                               *ptr = '/';
+                       }
+               }
+#endif
+
+               if (filecopy())
+                       return -1;
+
+               return response(true, NULL);
+       }
+
+       st.parttype = PART_UNKNOWN;
+       return 0;
+}
+
+static multipart_parser *
+init_parser(void)
+{
+       char *boundary;
+       const char *var;
+
+       multipart_parser *p;
+       static multipart_parser_settings s = {
+               .on_part_data        = data_cb,
+               .on_headers_complete = data_begin_cb,
+               .on_part_data_end    = data_end_cb,
+               .on_header_field     = header_field,
+               .on_header_value     = header_value
+       };
+
+       var = getenv("CONTENT_TYPE");
+
+       if (!var || strncmp(var, "multipart/form-data;", 20))
+               return NULL;
+
+       for (var += 20; *var && *var != '='; var++);
+
+       if (*var++ != '=')
+               return NULL;
+
+       boundary = malloc(strlen(var) + 3);
+
+       if (!boundary)
+               return NULL;
+
+       strcpy(boundary, "--");
+       strcpy(boundary + 2, var);
+
+       st.tempfd = -1;
+       st.filefd = -1;
+       st.filemode = 0600;
+
+       p = multipart_parser_init(boundary, &s);
+
+       free(boundary);
+
+       return p;
+}
+
+static int
+main_upload(int argc, char *argv[])
+{
+       int rem, len;
+       char buf[4096];
+       multipart_parser *p;
+
+       p = init_parser();
+
+       if (!p)
+       {
+               errno = EINVAL;
+               return response(false, "Invalid request");
+       }
+
+       while ((len = read(0, buf, sizeof(buf))) > 0)
+       {
+               rem = multipart_parser_execute(p, buf, len);
+
+               if (rem < len)
+                       break;
+       }
+
+       multipart_parser_free(p);
+
+       /* read remaining post data */
+       while ((len = read(0, buf, sizeof(buf))) > 0);
+
+       return 0;
+}
+
+static int
+main_backup(int argc, char **argv)
+{
+       pid_t pid;
+       time_t now;
+       int len;
+       int fds[2];
+       char buf[4096];
+       char datestr[16] = { 0 };
+       char hostname[64] = { 0 };
+       char *fields[] = { "sessionid", NULL };
+
+       if (!postdecode(fields, 1) || !session_access(fields[1], "backup", "read"))
+               return failure(0, "Backup permission denied");
+
+       if (pipe(fds))
+               return failure(errno, "Failed to spawn pipe");
+
+       switch ((pid = fork()))
+       {
+       case -1:
+               return failure(errno, "Failed to fork process");
+
+       case 0:
+               dup2(fds[1], 1);
+
+               close(0);
+               close(2);
+               close(fds[0]);
+               close(fds[1]);
+
+               chdir("/");
+
+               execl("/sbin/sysupgrade", "/sbin/sysupgrade",
+                     "--create-backup", "-", NULL);
+
+               return -1;
+
+       default:
+               now = time(NULL);
+               strftime(datestr, sizeof(datestr) - 1, "%Y-%m-%d", localtime(&now));
+
+               if (gethostname(hostname, sizeof(hostname) - 1))
+                       sprintf(hostname, "OpenWrt");
+
+               printf("Status: 200 OK\r\n");
+               printf("Content-Type: application/x-targz\r\n");
+               printf("Content-Disposition: attachment; "
+                      "filename=\"backup-%s-%s.tar.gz\"\r\n\r\n", hostname, datestr);
+
+               while ((len = read(fds[0], buf, sizeof(buf))) > 0)
+                       fwrite(buf, len, 1, stdout);
+
+               waitpid(pid, NULL, 0);
+
+               close(fds[0]);
+               close(fds[1]);
+
+               return 0;
+       }
+}
+
+int main(int argc, char **argv)
+{
+       if (strstr(argv[0], "cgi-upload"))
+               return main_upload(argc, argv);
+       else if (strstr(argv[0], "cgi-backup"))
+               return main_backup(argc, argv);
+
+       return -1;
+}
diff --git a/net/cgi-io/src/multipart_parser.c b/net/cgi-io/src/multipart_parser.c
new file mode 100644 (file)
index 0000000..ee82c82
--- /dev/null
@@ -0,0 +1,309 @@
+/* Based on node-formidable by Felix Geisendörfer
+ * Igor Afonov - afonov@gmail.com - 2012
+ * MIT License - http://www.opensource.org/licenses/mit-license.php
+ */
+
+#include "multipart_parser.h"
+
+#include <stdio.h>
+#include <stdarg.h>
+#include <string.h>
+
+static void multipart_log(const char * format, ...)
+{
+#ifdef DEBUG_MULTIPART
+    va_list args;
+    va_start(args, format);
+
+    fprintf(stderr, "[HTTP_MULTIPART_PARSER] %s:%d: ", __FILE__, __LINE__);
+    vfprintf(stderr, format, args);
+    fprintf(stderr, "\n");
+#endif
+}
+
+#define NOTIFY_CB(FOR)                                                 \
+do {                                                                   \
+  if (p->settings->on_##FOR) {                                         \
+    if (p->settings->on_##FOR(p) != 0) {                               \
+      return i;                                                        \
+    }                                                                  \
+  }                                                                    \
+} while (0)
+
+#define EMIT_DATA_CB(FOR, ptr, len)                                    \
+do {                                                                   \
+  if (p->settings->on_##FOR) {                                         \
+    if (p->settings->on_##FOR(p, ptr, len) != 0) {                     \
+      return i;                                                        \
+    }                                                                  \
+  }                                                                    \
+} while (0)
+
+
+#define LF 10
+#define CR 13
+
+struct multipart_parser {
+  void * data;
+
+  size_t index;
+  size_t boundary_length;
+
+  unsigned char state;
+
+  const multipart_parser_settings* settings;
+
+  char* lookbehind;
+  char multipart_boundary[1];
+};
+
+enum state {
+  s_uninitialized = 1,
+  s_start,
+  s_start_boundary,
+  s_header_field_start,
+  s_header_field,
+  s_headers_almost_done,
+  s_header_value_start,
+  s_header_value,
+  s_header_value_almost_done,
+  s_part_data_start,
+  s_part_data,
+  s_part_data_almost_boundary,
+  s_part_data_boundary,
+  s_part_data_almost_end,
+  s_part_data_end,
+  s_part_data_final_hyphen,
+  s_end
+};
+
+multipart_parser* multipart_parser_init
+    (const char *boundary, const multipart_parser_settings* settings) {
+
+  multipart_parser* p = malloc(sizeof(multipart_parser) +
+                               strlen(boundary) +
+                               strlen(boundary) + 9);
+
+  strcpy(p->multipart_boundary, boundary);
+  p->boundary_length = strlen(boundary);
+
+  p->lookbehind = (p->multipart_boundary + p->boundary_length + 1);
+
+  p->index = 0;
+  p->state = s_start;
+  p->settings = settings;
+
+  return p;
+}
+
+void multipart_parser_free(multipart_parser* p) {
+  free(p);
+}
+
+void multipart_parser_set_data(multipart_parser *p, void *data) {
+    p->data = data;
+}
+
+void *multipart_parser_get_data(multipart_parser *p) {
+    return p->data;
+}
+
+size_t multipart_parser_execute(multipart_parser* p, const char *buf, size_t len) {
+  size_t i = 0;
+  size_t mark = 0;
+  char c, cl;
+  int is_last = 0;
+
+  while(i < len) {
+    c = buf[i];
+    is_last = (i == (len - 1));
+    switch (p->state) {
+      case s_start:
+        multipart_log("s_start");
+        p->index = 0;
+        p->state = s_start_boundary;
+
+      /* fallthrough */
+      case s_start_boundary:
+        multipart_log("s_start_boundary");
+        if (p->index == p->boundary_length) {
+          if (c != CR) {
+            return i;
+          }
+          p->index++;
+          break;
+        } else if (p->index == (p->boundary_length + 1)) {
+          if (c != LF) {
+            return i;
+          }
+          p->index = 0;
+          NOTIFY_CB(part_data_begin);
+          p->state = s_header_field_start;
+          break;
+        }
+        if (c != p->multipart_boundary[p->index]) {
+          return i;
+        }
+        p->index++;
+        break;
+
+      case s_header_field_start:
+        multipart_log("s_header_field_start");
+        mark = i;
+        p->state = s_header_field;
+
+      /* fallthrough */
+      case s_header_field:
+        multipart_log("s_header_field");
+        if (c == CR) {
+          p->state = s_headers_almost_done;
+          break;
+        }
+
+        if (c == '-') {
+          break;
+        }
+
+        if (c == ':') {
+          EMIT_DATA_CB(header_field, buf + mark, i - mark);
+          p->state = s_header_value_start;
+          break;
+        }
+
+        cl = tolower(c);
+        if (cl < 'a' || cl > 'z') {
+          multipart_log("invalid character in header name");
+          return i;
+        }
+        if (is_last)
+            EMIT_DATA_CB(header_field, buf + mark, (i - mark) + 1);
+        break;
+
+      case s_headers_almost_done:
+        multipart_log("s_headers_almost_done");
+        if (c != LF) {
+          return i;
+        }
+
+        p->state = s_part_data_start;
+        break;
+
+      case s_header_value_start:
+        multipart_log("s_header_value_start");
+        if (c == ' ') {
+          break;
+        }
+
+        mark = i;
+        p->state = s_header_value;
+
+      /* fallthrough */
+      case s_header_value:
+        multipart_log("s_header_value");
+        if (c == CR) {
+          EMIT_DATA_CB(header_value, buf + mark, i - mark);
+          p->state = s_header_value_almost_done;
+        }
+        if (is_last)
+            EMIT_DATA_CB(header_value, buf + mark, (i - mark) + 1);
+        break;
+
+      case s_header_value_almost_done:
+        multipart_log("s_header_value_almost_done");
+        if (c != LF) {
+          return i;
+        }
+        p->state = s_header_field_start;
+        break;
+
+      case s_part_data_start:
+        multipart_log("s_part_data_start");
+        NOTIFY_CB(headers_complete);
+        mark = i;
+        p->state = s_part_data;
+
+      /* fallthrough */
+      case s_part_data:
+        multipart_log("s_part_data");
+        if (c == CR) {
+            EMIT_DATA_CB(part_data, buf + mark, i - mark);
+            mark = i;
+            p->state = s_part_data_almost_boundary;
+            p->lookbehind[0] = CR;
+            break;
+        }
+        if (is_last)
+            EMIT_DATA_CB(part_data, buf + mark, (i - mark) + 1);
+        break;
+
+      case s_part_data_almost_boundary:
+        multipart_log("s_part_data_almost_boundary");
+        if (c == LF) {
+            p->state = s_part_data_boundary;
+            p->lookbehind[1] = LF;
+            p->index = 0;
+            break;
+        }
+        EMIT_DATA_CB(part_data, p->lookbehind, 1);
+        p->state = s_part_data;
+        mark = i --;
+        break;
+
+      case s_part_data_boundary:
+        multipart_log("s_part_data_boundary");
+        if (p->multipart_boundary[p->index] != c) {
+          EMIT_DATA_CB(part_data, p->lookbehind, 2 + p->index);
+          p->state = s_part_data;
+          mark = i --;
+          break;
+        }
+        p->lookbehind[2 + p->index] = c;
+        if ((++ p->index) == p->boundary_length) {
+            NOTIFY_CB(part_data_end);
+            p->state = s_part_data_almost_end;
+        }
+        break;
+
+      case s_part_data_almost_end:
+        multipart_log("s_part_data_almost_end");
+        if (c == '-') {
+            p->state = s_part_data_final_hyphen;
+            break;
+        }
+        if (c == CR) {
+            p->state = s_part_data_end;
+            break;
+        }
+        return i;
+
+      case s_part_data_final_hyphen:
+        multipart_log("s_part_data_final_hyphen");
+        if (c == '-') {
+            NOTIFY_CB(body_end);
+            p->state = s_end;
+            break;
+        }
+        return i;
+
+      case s_part_data_end:
+        multipart_log("s_part_data_end");
+        if (c == LF) {
+            p->state = s_header_field_start;
+            NOTIFY_CB(part_data_begin);
+            break;
+        }
+        return i;
+
+      case s_end:
+        multipart_log("s_end: %02X", (int) c);
+        break;
+
+      default:
+        multipart_log("Multipart parser unrecoverable error");
+        return 0;
+    }
+    ++ i;
+  }
+
+  return len;
+}
diff --git a/net/cgi-io/src/multipart_parser.h b/net/cgi-io/src/multipart_parser.h
new file mode 100644 (file)
index 0000000..87e67f4
--- /dev/null
@@ -0,0 +1,48 @@
+/* Based on node-formidable by Felix Geisendörfer
+ * Igor Afonov - afonov@gmail.com - 2012
+ * MIT License - http://www.opensource.org/licenses/mit-license.php
+ */
+#ifndef _multipart_parser_h
+#define _multipart_parser_h
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#include <stdlib.h>
+#include <ctype.h>
+
+typedef struct multipart_parser multipart_parser;
+typedef struct multipart_parser_settings multipart_parser_settings;
+typedef struct multipart_parser_state multipart_parser_state;
+
+typedef int (*multipart_data_cb) (multipart_parser*, const char *at, size_t length);
+typedef int (*multipart_notify_cb) (multipart_parser*);
+
+struct multipart_parser_settings {
+  multipart_data_cb on_header_field;
+  multipart_data_cb on_header_value;
+  multipart_data_cb on_part_data;
+
+  multipart_notify_cb on_part_data_begin;
+  multipart_notify_cb on_headers_complete;
+  multipart_notify_cb on_part_data_end;
+  multipart_notify_cb on_body_end;
+};
+
+multipart_parser* multipart_parser_init
+    (const char *boundary, const multipart_parser_settings* settings);
+
+void multipart_parser_free(multipart_parser* p);
+
+size_t multipart_parser_execute(multipart_parser* p, const char *buf, size_t len);
+
+void multipart_parser_set_data(multipart_parser* p, void* data);
+void * multipart_parser_get_data(multipart_parser* p);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif
diff --git a/net/chaosvpn/Makefile b/net/chaosvpn/Makefile
new file mode 100644 (file)
index 0000000..0205752
--- /dev/null
@@ -0,0 +1,56 @@
+#
+# Copyright (C) 2010-2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=chaosvpn
+
+PKG_REV:=2eb24810b5aa0b2d56f21562e52927020dc3090a
+PKG_VERSION:=2014-01-24
+PKG_RELEASE=1
+
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL:=https://github.com/ryd/chaosvpn.git
+PKG_SOURCE_VERSION:=$(PKG_REV)
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_REV).tar.gz
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
+PKG_LICENSE:=Apache-2.0
+PKG_MAINTAINER:Norbert Summer <git@o-g.at>
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/chaosvpn
+               TITLE:=Config generator for chaos vpn
+               SECTION:=net
+               CATEGORY:=Network
+               URL:=https://wiki.hamburg.ccc.de/index.php/ChaosVPN::DebianHowto
+               SUBMENU:=VPN
+               DEPENDS:=+tinc +ip +kmod-tun +libopenssl
+endef
+
+define Package/chaosvpn/description
+               Configure tincd for the chaosvpn network
+endef
+
+define Package/chaosvpn/conffiles
+/etc/tinc/chaosvpn.conf
+endef
+
+MAKE_FLAGS += \
+               COPT="$(TARGET_CFLAGS) $(TARGET_CPPFLAGS) $(TARGET_LDFLAGS)"
+
+define Package/chaosvpn/install
+               $(INSTALL_DIR) $(1)/etc/tinc/chaos/ $(1)/usr/sbin/ $(1)/etc/init.d/ $(1)/etc/hotplug.d/iface/
+               $(INSTALL_BIN) $(PKG_BUILD_DIR)/chaosvpn $(1)/usr/sbin/
+               $(INSTALL_BIN) ./files/chaosvpn.init $(1)/etc/init.d/chaosvpn
+               $(INSTALL_BIN) ./files/chaosvpn.hotplug $(1)/etc/hotplug.d/iface/40-chaosvpn
+               sed  -i -e 's/"\/sbin\/ip /"\/usr\/sbin\/ip /' $(PKG_BUILD_DIR)/chaosvpn.conf
+               $(INSTALL_CONF) $(PKG_BUILD_DIR)/chaosvpn.conf $(1)/etc/tinc/chaosvpn.conf
+endef
+
+$(eval $(call BuildPackage,chaosvpn))
+
diff --git a/net/chaosvpn/files/chaosvpn.hotplug b/net/chaosvpn/files/chaosvpn.hotplug
new file mode 100755 (executable)
index 0000000..3044e53
--- /dev/null
@@ -0,0 +1,3 @@
+[ "$INTERFACE" == "wan" ] || return
+[ "$ACTION" == "ifup" ] && /etc/init.d/chaosvpn restart
+
diff --git a/net/chaosvpn/files/chaosvpn.init b/net/chaosvpn/files/chaosvpn.init
new file mode 100755 (executable)
index 0000000..f847a9a
--- /dev/null
@@ -0,0 +1,31 @@
+#!/bin/sh /etc/rc.common
+START=99
+
+USE_PROCD=1
+
+start_service()
+{
+  #check if chaosvpn is configured
+  if [ ! -f "/etc/tinc/chaos/rsa_key.pub" -o ! -f "/etc/tinc/chaos/rsa_key.priv" ]; then
+    logger -t chaosvpn "please generate rsa key pair"
+    logger -t chaosvpn "tincd -n chaos --generate-keys=2048"
+    exit 1
+  fi
+
+  if [ "`grep unique_name /etc/tinc/chaosvpn.conf  | wc -l`" != "0" ]; then
+    logger -t chaosvpn "/etc/tinc/chaosvpn.conf is not configured yet or contains 'unique_name'"
+    exit 1
+  fi
+
+  procd_open_instance
+  procd_set_param command /usr/sbin/chaosvpn -r -c /etc/tinc/chaosvpn.conf
+  procd_close_instance
+}
+
+stop_service()
+{
+  #force remove tinc pid
+  if [ -f "/var/run/tinc.chaos.pid" ]; then
+    rm "/var/run/tinc.chaos.pid"
+  fi
+}
diff --git a/net/chrony/Makefile b/net/chrony/Makefile
new file mode 100644 (file)
index 0000000..d0bf9ba
--- /dev/null
@@ -0,0 +1,76 @@
+#
+# Copyright (C) 2006-2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=chrony
+PKG_VERSION:=2.2
+PKG_RELEASE:=2
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://download.tuxfamily.org/chrony/
+PKG_MD5SUM:=17bc77d3d2ce942675f9600b60452717
+
+PKG_MAINTAINER:=Miroslav Lichvar <mlichvar0@gmail.com>
+PKG_LICENSE:=GPL-2.0
+PKG_LICENSE_FILES:=COPYING
+
+PKG_BUILD_DEPENDS:=+pps-tools
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/chrony
+  SUBMENU:=Time Synchronization
+  SECTION:=net
+  CATEGORY:=Network
+  DEPENDS:=+libcap
+  USERID:=chrony=323:chrony=323
+  TITLE:=A versatile NTP client and server
+  URL:=http://chrony.tuxfamily.org/
+endef
+
+define Package/chrony/description
+       An NTP client and server designed to perform well in a wide range
+       of conditions. It can synchronize the system clock with NTP servers,
+       reference clocks, and manual input using wristwatch and keyboard.
+endef
+
+define Package/chrony/conffiles
+/etc/chrony/chrony.conf
+/etc/config/chrony
+endef
+
+CONFIGURE_ARGS+= \
+       --host-machine=$(shell echo $(GNU_TARGET_NAME) | sed -e 's/-.*//') \
+       --host-release="" \
+       --host-system=Linux \
+       --sysconfdir=/etc/chrony \
+       --prefix=/usr \
+       --chronysockdir=/var/run/chrony \
+       --disable-readline \
+       --disable-rtc \
+       --disable-asyncdns \
+       --with-user=chrony
+
+CONFIGURE_VARS+=CPPFLAGS=-DNDEBUG
+
+define Package/chrony/install
+       $(INSTALL_DIR) $(1)/usr/bin/
+       $(INSTALL_DIR) $(1)/usr/sbin/
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/chronyd $(1)/usr/sbin
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/chronyc $(1)/usr/bin
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_DIR) $(1)/etc/config
+       $(INSTALL_DIR) $(1)/etc/chrony
+       $(INSTALL_DIR) $(1)/etc/hotplug.d/iface
+       $(INSTALL_BIN) ./files/chrony.hotplug $(1)/etc/hotplug.d/iface/20-chrony
+       $(INSTALL_BIN) ./files/chronyd.init $(1)/etc/init.d/chronyd
+       $(INSTALL_CONF) ./files/chrony.config $(1)/etc/config/chrony
+       $(INSTALL_CONF) ./files/chrony.conf $(1)/etc/chrony/chrony.conf
+endef
+
+$(eval $(call BuildPackage,chrony))
diff --git a/net/chrony/files/chrony.conf b/net/chrony/files/chrony.conf
new file mode 100644 (file)
index 0000000..b207c94
--- /dev/null
@@ -0,0 +1,7 @@
+# This file is included from config file generated from /etc/config/chrony
+
+# Log clock errors above 0.5 seconds
+logchange 0.5
+
+# Don't log client accesses
+noclientlog
diff --git a/net/chrony/files/chrony.config b/net/chrony/files/chrony.config
new file mode 100644 (file)
index 0000000..63f494d
--- /dev/null
@@ -0,0 +1,14 @@
+config pool
+       option hostname '2.openwrt.pool.ntp.org'
+       option maxpoll '12'
+       option iburst 'yes'
+
+config dhcp_ntp_server
+       option iburst 'yes'
+
+config allow
+       option interface 'lan'
+
+config makestep
+       option threshold '1.0'
+       option limit '3'
diff --git a/net/chrony/files/chrony.hotplug b/net/chrony/files/chrony.hotplug
new file mode 100644 (file)
index 0000000..6ab2104
--- /dev/null
@@ -0,0 +1,44 @@
+#!/bin/sh
+# Set chronyd online/offline status, allow NTP access and add servers from DHCP
+
+[ "$ACTION" = ifup -o "$ACTION" = ifdown ] || exit 0
+
+run_command() {
+       /usr/bin/chronyc -n "$*" > /dev/null 2>&1
+}
+
+run_command tracking || exit 0
+
+. /lib/functions/network.sh
+
+network_find_wan iface4
+network_find_wan6 iface6
+run_command $([ -n "$iface4" ] && echo online || echo offline) 0.0.0.0/0.0.0.0
+run_command $([ -n "$iface6" ] && echo online || echo offline) ::/0
+
+[ "$ACTION" = ifup ] || exit 0
+
+. /lib/functions.sh
+. /etc/init.d/chronyd
+
+config_load chrony
+
+config_foreach handle_allow allow | while read command; do
+       run_command "$command"
+done
+
+# Add servers from DHCP only if the config has a dhcp_ntp_server section
+[ -z "$(config_foreach echo dhcp_ntp_server)" ] && exit 0
+
+. /usr/share/libubox/jshn.sh
+
+for iface in $iface4 $iface6; do
+       json_load "$(ifstatus $iface)"
+       json_select data
+       json_get_var dhcp_ntp_servers ntpserver
+
+       for server in $dhcp_ntp_servers; do
+               run_command add $(NTP_SOURCE_HOSTNAME=$server config_foreach \
+                               handle_source dhcp_ntp_server server)
+       done
+done
diff --git a/net/chrony/files/chronyd.init b/net/chrony/files/chronyd.init
new file mode 100644 (file)
index 0000000..f7aee0a
--- /dev/null
@@ -0,0 +1,76 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2006-2015 OpenWrt.org
+
+START=15
+USE_PROCD=1
+PROG=/usr/sbin/chronyd
+CONFIGFILE=/var/etc/chrony.conf
+INCLUDEFILE=/etc/chrony/chrony.conf
+
+handle_source() {
+       local cfg=$1 sourcetype=$2 hostname minpoll maxpoll iburst
+
+       hostname=$NTP_SOURCE_HOSTNAME
+       [ -z "$hostname" ] && config_get hostname "$cfg" hostname
+       [ -z "$hostname" ] && return
+       config_get minpoll "$cfg" minpoll
+       config_get maxpoll "$cfg" maxpoll
+       config_get_bool iburst "$cfg" iburst 0
+       echo $(
+               echo $sourcetype $hostname
+               [ -n "$minpoll" ] && echo minpoll $minpoll
+               [ -n "$maxpoll" ] && echo maxpoll $maxpoll
+               [ "$iburst" = "1" ] && echo iburst
+       )
+}
+
+handle_allow() {
+       local cfg=$1 iface wan_iface wan6_iface subnet subnets subnets6
+
+       network_find_wan wan_iface true
+       network_find_wan6 wan6_iface true
+       config_get iface "$cfg" interface
+
+       if [ "$wan_iface" = "$iface" ]; then
+               echo allow 0/0
+       elif [ "$wan6_iface" = "$iface" ]; then
+               echo allow ::/0
+       else
+               network_get_subnets subnets $iface || \
+                       network_get_subnets subnets6 $iface || continue
+               for subnet in $subnets $subnets6; do
+                       echo allow $subnet
+               done
+       fi
+}
+
+handle_makestep() {
+       local cfg=$1 threshold limit
+
+       config_get threshold "$cfg" threshold
+       config_get limit "$cfg" limit
+       [ -z "$threshold" -o -z "$limit" ] && return
+       echo makestep $threshold $limit
+}
+
+start_service() {
+       . /lib/functions/network.sh
+
+       procd_open_instance
+       procd_set_param command $PROG -n -f $CONFIGFILE
+       procd_set_param file $CONFIGFILE
+       procd_set_param file $INCLUDEFILE
+       procd_close_instance
+
+       config_load chrony
+       mkdir -p $(dirname $CONFIGFILE)
+
+       (
+               echo include $INCLUDEFILE
+               config_foreach handle_source server server
+               config_foreach handle_source pool pool
+               config_foreach handle_source peer peer
+               config_foreach handle_allow allow
+               config_foreach handle_makestep makestep
+       ) > $CONFIGFILE
+}
diff --git a/net/chrony/patches/001-freebind_uclibc.patch b/net/chrony/patches/001-freebind_uclibc.patch
new file mode 100644 (file)
index 0000000..e18d07e
--- /dev/null
@@ -0,0 +1,13 @@
+diff --git a/sysincl.h b/sysincl.h
+index 30e9b48..8fe16c0 100644
+--- a/sysincl.h
++++ b/sysincl.h
+@@ -70,4 +70,8 @@
+ #include <arpa/inet.h>
+ #endif
++#if defined(LINUX) && !defined(IP_FREEBIND)
++#define IP_FREEBIND 15
++#endif
++
+ #endif /* GOT_SYSINCL_H */
diff --git a/net/coova-chilli/patches/400-fix-compile-with-musl.patch b/net/coova-chilli/patches/400-fix-compile-with-musl.patch
new file mode 100644 (file)
index 0000000..a810a73
--- /dev/null
@@ -0,0 +1,61 @@
+--- a/src/system.h
++++ b/src/system.h
+@@ -78,11 +78,6 @@
+ #include <sys/stat.h>
+ #endif
+-#ifdef HAVE_LINUX_SYSINFO_H
+-#define _LINUX_KERNEL_H
+-#include <linux/sysinfo.h>
+-#endif
+-
+ #ifdef HAVE_TIME_H
+ #include <time.h>
+ #endif
+@@ -123,6 +118,11 @@
+ #include <signal.h>
+ #endif
++#ifdef HAVE_SYS_SYSINFO_H
++#define _LINUX_SYSINFO_H
++#include <sys/sysinfo.h>
++#endif
++
+ #if defined(__linux__)
+ #include <asm/types.h>
+ #include <linux/if.h>
+@@ -135,10 +135,6 @@
+ #include <linux/un.h>
+ #endif
+-#ifdef HAVE_SYS_SYSINFO_H
+-#include <sys/sysinfo.h>
+-#endif
+-
+ #elif defined (__FreeBSD__)  || defined (__APPLE__) || defined (__OpenBSD__) || defined (__NetBSD__) 
+ #include <net/if.h>
+ #include <net/bpf.h>
+@@ -170,10 +166,6 @@
+ #include <net/if_tun.h>
+ #endif
+-#ifdef HAVE_NET_ETHERNET_H
+-#include <net/ethernet.h>
+-#endif
+-
+ #ifdef HAVE_ASM_TYPES_H
+ #include <asm/types.h>
+ #endif
+--- a/src/chilli_limits.h
++++ b/src/chilli_limits.h
+@@ -18,8 +18,8 @@
+  * 
+  */
+-#ifndef _LIMITS_H
+-#define _LIMITS_H
++#ifndef _CHILLI_LIMITS_H
++#define _CHILLI_LIMITS_H
+ /*
+  * extracted from various .h files, needs some cleanup.
index 1ca475661b74d7e135e81de7b7598b78ae582301..3cc98ad14573bc5c507bae34280fde955282c036 100755 (executable)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 PKG_NAME:=ddns-scripts
 # Version == major.minor.patch
 # increase on new functionality (minor) or patches (patch)
-PKG_VERSION:=2.4.3
+PKG_VERSION:=2.5.0
 # Release == build
 # increase on changes of services files or tld_names.dat
 PKG_RELEASE:=1
index 5d69bb17cc590e6243d9c20a03de043d76e5d2ff..05eda79c4dc7707126db0c945ffd6a209e64cae8 100644 (file)
@@ -1,6 +1,5 @@
 #
-# Please read ddns.sample
-# or http://wiki.openwrt.org/doc/uci/ddns
+# Please read http://wiki.openwrt.org/doc/uci/ddns
 #
 config ddns "global"
        option date_format "%F %R"
@@ -12,6 +11,7 @@ config ddns "global"
 
 config service "myddns_ipv4"
        option service_name     "dyndns.com"
+       option lookup_host      "yourhost.example.com"
        option domain           "yourhost.example.com"
        option username         "your_username"
        option password         "your_password"
@@ -21,6 +21,7 @@ config service "myddns_ipv4"
 
 config service "myddns_ipv6"
        option update_url       "http://[USERNAME]:[PASSWORD]@your.provider.net/nic/update?hostname=[DOMAIN]&myip=[IP]"
+       option lookup_host      "yourhost.example.com"
        option domain           "yourhost.example.com"
        option username         "your_username"
        option password         "your_password"
index cb0db9ac3886b7d866f8c390b177fb3d19d565a7..951b41b49b620f952833b101d6b081422860a556 100755 (executable)
@@ -29,6 +29,7 @@
 . /lib/functions/network.sh
 
 # GLOBAL VARIABLES #
+VERSION="2.5.0-1"
 SECTION_ID=""          # hold config's section name
 VERBOSE_MODE=1         # default mode is log to console, but easily changed with parameter
 
@@ -53,6 +54,9 @@ LOCAL_IP=""           # holds the local IP read from the box
 
 URL_USER=""            # url encoded $username from config file
 URL_PASS=""            # url encoded $password from config file
+URL_PENC=""            # url encoded $param_enc from config file
+
+SRV_ANSWER=""          # Answer given by service on success
 
 ERR_LAST=0             # used to save $? return code of program and function calls
 ERR_UPDATE=0           # error counter on different local and registered ip
@@ -299,40 +303,38 @@ urlencode() {
 # file /usr/lib/ddns/services_ipv6 for IPv6
 # $1   Name of Variable to store url to
 # $2   Name of Variable to store script to
+# $3   Name of Variable to store service answer to
 get_service_data() {
-       local __LINE __FILE __NAME __URL __SERVICES __DATA
-       local __SCRIPT=""
-       local __OLD_IFS=$IFS
-       local __NEWLINE_IFS='
-' # __NEWLINE_IFS
-       [ $# -ne 2 ] && write_log 12 "Error calling 'get_service_data()' - wrong number of parameters"
+       [ $# -ne 3 ] && write_log 12 "Error calling 'get_service_data()' - wrong number of parameters"
 
        __FILE="/usr/lib/ddns/services"                                 # IPv4
        [ $use_ipv6 -ne 0 ] && __FILE="/usr/lib/ddns/services_ipv6"     # IPv6
 
-       # remove any lines not containing data, and then make sure fields are enclosed in double quotes
-       __SERVICES=$(cat $__FILE | grep "^[\t ]*[^#]" | \
-               awk ' gsub("\x27", "\"") { if ($1~/^[^\"]*$/) $1="\""$1"\"" }; { if ( $NF~/^[^\"]*$/) $NF="\""$NF"\""  }; { print $0 }')
-
-       IFS=$__NEWLINE_IFS
-       for __LINE in $__SERVICES; do
-               # grep out proper parts of data and use echo to remove quotes
-               __NAME=$(echo $__LINE | grep -o "^[\t ]*\"[^\"]*\"" | xargs -r -n1 echo)
-               __DATA=$(echo $__LINE | grep -o "\"[^\"]*\"[\t ]*$" | xargs -r -n1 echo)
-
-               if [ "$__NAME" = "$service_name" ]; then
-                       break                   # found so leave for loop
+       # workaround with variables; pipe create subshell with no give back of variable content
+       mkfifo pipe_$$
+       # only grep without # or whitespace at linestart | remove "
+#      grep -v -E "(^#|^[[:space:]]*$)" $__FILE | sed -e s/\"//g > pipe_$$ &
+       sed '/^#/d/^[ \t]*$/ds/\"//g' $__FILE  > pipe_$$ &
+
+       while read __SERVICE __DATA __ANSWER; do
+               if [ "$__SERVICE" = "$service_name" ]; then
+                       # check if URL or SCRIPT is given
+                       __URL=$(echo "$__DATA" | grep "^http")
+                       [ -z "$__URL" ] && __SCRIPT="/usr/lib/ddns/$__DATA"
+
+                       eval "$1=\"$__URL\""
+                       eval "$2=\"$__SCRIPT\""
+                       eval "$3=\"$__ANSWER\""
+                       rm pipe_$$
+                       return 0
                fi
-       done
-       IFS=$__OLD_IFS
+       done < pipe_$$
+       rm pipe_$$
 
-       # check if URL or SCRIPT is given
-       __URL=$(echo "$__DATA" | grep "^http")
-       [ -z "$__URL" ] && __SCRIPT="/usr/lib/ddns/$__DATA"
-
-       eval "$1=\"$__URL\""
-       eval "$2=\"$__SCRIPT\""
-       return 0
+       eval "$1=\"\""  # no service match clear variables
+       eval "$2=\"\""
+       eval "$3=\"\""
+       return 1
 }
 
 # Calculate seconds from interval and unit
@@ -793,19 +795,19 @@ send_update() {
                local __URL __ERR
 
                # do replaces in URL
-               __URL=$(echo $update_url | sed -e "s#\[USERNAME\]#$URL_USER#g" -e "s#\[PASSWORD\]#$URL_PASS#g" \
-                                              -e "s#\[DOMAIN\]#$domain#g" -e "s#\[IP\]#$__IP#g")
+               __URL=$(echo $update_url | sed -e "s#\[USERNAME\]#$URL_USER#g"  -e "s#\[PASSWORD\]#$URL_PASS#g" \
+                                              -e "s#\[PARAMENC\]#$URL_PENC#g"  -e "s#\[PARAMOPT\]#$param_opt#g" \
+                                              -e "s#\[DOMAIN\]#$domain#g"      -e "s#\[IP\]#$__IP#g")
                [ $use_https -ne 0 ] && __URL=$(echo $__URL | sed -e 's#^http:#https:#')
 
                do_transfer "$__URL" || return 1
 
                write_log 7 "DDNS Provider answered:\n$(cat $DATFILE)"
 
-               return 0
-               # TODO analyze providers answer
-               # "good" or "nochg"             = dyndns.com compatible API
-               # grep -i -E "good|nochg" $DATFILE >/dev/null 2>&1
-               # return $?     # "0" if found
+               [ -z "$SRV_ANSWER" ] && return 0        # not set then ignore
+
+               grep -i -E "$SRV_ANSWER" $DATFILE >/dev/null 2>&1
+               return $?       # "0" if found
        fi
 }
 
@@ -943,13 +945,13 @@ get_registered_ip() {
                fi
                [ $force_dnstcp -eq 1 ] && __PROG="$__PROG -T"  # force TCP
 
-               __RUNPROG="$__PROG $domain $dns_server >$DATFILE 2>$ERRFILE"
+               __RUNPROG="$__PROG $lookup_host $dns_server >$DATFILE 2>$ERRFILE"
                __PROG="BIND host"
        elif [ -x /usr/bin/nslookup ]; then     # last use BusyBox nslookup
                [ $force_ipversion -ne 0 -o $force_dnstcp -ne 0 ] && \
                        write_log 14 "Busybox nslookup - no support to 'force IP Version' or 'DNS over TCP'"
 
-               __RUNPROG="/usr/bin/nslookup $domain $dns_server >$DATFILE 2>$ERRFILE"
+               __RUNPROG="/usr/bin/nslookup $lookup_host $dns_server >$DATFILE 2>$ERRFILE"
                __PROG="BusyBox nslookup"
        else    # there must be an error
                write_log 12 "Error in 'get_registered_ip()' - no supported Name Server lookup software accessible"
@@ -981,16 +983,16 @@ get_registered_ip() {
                [ -n "$2" ] && return $__ERR            # $2 is given -> no retry
                [ $VERBOSE_MODE -gt 1 ] && {
                        # VERBOSE_MODE > 1 then NO retry
-                       write_log 4 "Get registered/public IP for '$domain' failed - Verbose Mode: $VERBOSE_MODE - NO retry on error"
+                       write_log 4 "Get registered/public IP for '$lookup_host' failed - Verbose Mode: $VERBOSE_MODE - NO retry on error"
                        return $__ERR
                }
 
                __CNT=$(( $__CNT + 1 )) # increment error counter
                # if error count > retry_count leave here
                [ $retry_count -gt 0 -a $__CNT -gt $retry_count ] && \
-                       write_log 14 "Get registered/public IP for '$domain' failed after $retry_count retries"
+                       write_log 14 "Get registered/public IP for '$lookup_host' failed after $retry_count retries"
 
-               write_log 4 "Get registered/public IP for '$domain' failed - retry $__CNT/$retry_count in $RETRY_SECONDS seconds"
+               write_log 4 "Get registered/public IP for '$lookup_host' failed - retry $__CNT/$retry_count in $RETRY_SECONDS seconds"
                sleep $RETRY_SECONDS &
                PID_SLEEP=$!
                wait $PID_SLEEP # enable trap-handler
index 0f8bb5aa8597038615a208b3daf0d22f51dfae47..e58f978551205d0dc0c87acb25fe58d4d16bed6f 100755 (executable)
@@ -33,7 +33,7 @@ __RET=0
 case "$1" in
        get_registered_ip)
                local IP
-               domain=$2                       # Hostname/Domain
+               lookup_host=$2                  # FQDN of host registered at DDNS
                use_ipv6=${3:-"0"}              # Use IPv6 - default IPv4
                force_ipversion=${4:-"0"}       # Force IP Version - default 0 - No
                force_dnstcp=${5:-"0"}          # Force TCP on DNS - default 0 - No
@@ -99,4 +99,4 @@ esac
 # remove out and err file
 [ -f $DATFILE ] && rm -f $DATFILE
 [ -f $ERRFILE ] && rm -f $ERRFILE
-return $__RET
\ No newline at end of file
+return $__RET
old mode 100644 (file)
new mode 100755 (executable)
index 95d2c94..9acb9c4
 # variables in big chars beginning with "__" are local defined inside functions only
 # set -vx      #script debugger
 
+. /usr/lib/ddns/dynamic_dns_functions.sh       # global vars are also defined here
+
 [ $# -lt 1 -o -n "${2//[0-3]/}" -o ${#2} -gt 1 ] && {
+       echo -e "\n  ddns-scripts Version: $VERSION"
        echo -e "\n  USAGE:"
-       echo -e "  $0 [SECTION] [VERBOSE_MODE]\n"
+       echo    "  $0 [OPTION]"
+       echo    "  [OPTION]       '-V' or '--version' display version and exit"
+       echo -e "\n  $0 [SECTION] [VERBOSE_MODE]\n"
        echo    "  [SECTION]      - service section as defined in /etc/config/ddns"
        echo    "  [VERBOSE_MODE] - '0' NO output to console"
        echo    "                   '1' output to console"
        exit 1
 }
 
-. /usr/lib/ddns/dynamic_dns_functions.sh       # global vars are also defined here
+[ "$1" = "-V" -o "$1" = "--version" ] && {
+       echo -e "ddns-scripts $VERSION\n"
+       exit 0
+}
 
 SECTION_ID="$1"
 VERBOSE_MODE=${2:-1}   # default mode is log to console
@@ -77,9 +85,12 @@ trap "trap_handler 15" 15    # SIGTERM       Termination
 # update_url   URL to use to update your "custom" DDNS service
 # update_script SCRIPT to use to update your "custom" DDNS service
 #
-# domain       Your DNS name / replace [DOMAIN] in update_url
-# username     Username of your DDNS service account / replace [USERNAME] in update_url
-# password     Password of your DDNS service account / replace [PASSWORD] in update_url
+# lookup_host  FQDN of ONE of your at DDNS service defined host / required to validate if IP update happen/necessary
+# domain       Nomally your DDNS hostname / replace [DOMAIN] in update_url
+# username     Username of your DDNS service account / urlenceded and replace [USERNAME] in update_url
+# password     Password of your DDNS service account / urlencoded and replace [PASSWORD] in update_url
+# param_enc    Optional parameter for (later) usage  / urlencoded and replace [PARAMENC] in update_url
+# param_opt    Optional parameter for (later) usage  / replace [PARAMOPT] in update_url
 #
 # use_https    use HTTPS to update DDNS service
 # cacert       file or directory where HTTPS can find certificates to verify server; 'IGNORE' ignore check of server certificate
@@ -140,14 +151,16 @@ ERR_LAST=$?       # save return code - equal 0 if SECTION_ID found
        [ -f $LOGFILE ] && rm -f $LOGFILE               # clear logfile before first entry
        write_log  7 "************ ************** ************** **************"
        write_log  5 "PID '$$' started at $(eval $DATE_PROG)"
+       write_log  7 "ddns version  : $VERSION"
        write_log  7 "uci configuration:\n$(uci -q show ddns | grep '=service' | sort)"
        write_log 14 "Service section '$SECTION_ID' not defined"
 }
 
 write_log 7 "************ ************** ************** **************"
 write_log 5 "PID '$$' started at $(eval $DATE_PROG)"
+write_log 7 "ddns version  : $VERSION"
 write_log 7 "uci configuration:\n$(uci -q show ddns.$SECTION_ID | sort)"
-write_log 7 "ddns version  : $(opkg list-installed ddns-scripts | cut -d ' ' -f 3)"
+write_log 7 "ddns version  : $(opkg list-installed ddns-scripts | cut -d ' ' -f 3)"
 case $VERBOSE_MODE in
        0) write_log  7 "verbose mode  : 0 - run normal, NO console output";;
        1) write_log  7 "verbose mode  : 1 - run normal, console mode";;
@@ -162,24 +175,41 @@ esac
 # determine what update url we're using if a service_name is supplied
 # otherwise update_url is set inside configuration (custom update url)
 # or update_script is set inside configuration (custom update script)
-[ -n "$service_name" ] && get_service_data update_url update_script
+[ -n "$service_name" ] && get_service_data update_url update_script SRV_ANSWER
 [ -z "$update_url" -a -z "$update_script" ] && write_log 14 "No update_url found/defined or no update_script found/defined!"
 [ -n "$update_script" -a ! -f "$update_script" ] && write_log 14 "Custom update_script not found!"
 
-# without domain and possibly username and password we can do nothing for you
-[ -z "$domain" ] && write_log 14 "Service section not configured correctly! Missing 'domain'"
+# temporary needed to convert existing uci settings
+[ -z "$lookup_host" ] && {
+       uci -q set ddns.$SECTION_ID.lookup_host="$domain"
+       uci -q commit ddns
+       lookup_host="$domain"
+}
+# later versions only check if configured correctly
+
+# without lookup host and possibly other required options we can do nothing for you
+[ -z "$lookup_host" ] && write_log 14 "Service section not configured correctly! Missing 'lookup_host'"
+
 [ -n "$update_url" ] && {
        # only check if update_url is given, update_scripts have to check themselves
+       [ -z "$domain" ] && $(echo "$update_url" | grep "\[DOMAIN\]" >/dev/null 2>&1) && \
+               write_log 14 "Service section not configured correctly! Missing 'domain'"
        [ -z "$username" ] && $(echo "$update_url" | grep "\[USERNAME\]" >/dev/null 2>&1) && \
                write_log 14 "Service section not configured correctly! Missing 'username'"
        [ -z "$password" ] && $(echo "$update_url" | grep "\[PASSWORD\]" >/dev/null 2>&1) && \
                write_log 14 "Service section not configured correctly! Missing 'password'"
+       [ -z "$param_enc" ] && $(echo "$update_url" | grep "\[PARAMENC\]" >/dev/null 2>&1) && \
+               write_log 14 "Service section not configured correctly! Missing 'param_enc'"
+       [ -z "$param_opt" ] && $(echo "$update_url" | grep "\[PARAMOPT\]" >/dev/null 2>&1) && \
+               write_log 14 "Service section not configured correctly! Missing 'param_opt'"
 }
 
 # url encode username (might be email or something like this)
 # and password (might have special chars for security reason)
+# and optional parameter "param_enc"
 [ -n "$username" ] && urlencode URL_USER "$username"
 [ -n "$password" ] && urlencode URL_PASS "$password"
+[ -n "$param_enc" ] && urlencode URL_PENC "$param_enc"
 
 # verify ip_source 'script' if script is configured and executable
 if [ "$ip_source" = "script" ]; then
@@ -289,7 +319,7 @@ while : ; do
                                && write_log 6 "Update successful - IP '$LOCAL_IP' send" \
                                || write_log 6 "Forced update successful - IP: '$LOCAL_IP' send"
                else
-                       write_log 3 "Can not update IP at DDNS Provider"
+                       write_log 3 "IP update not accepted by DDNS Provider"
                fi
        fi
 
index b3ac40564c3601ff5fbbc7b25d1efedde843f74b..28797f3ee95c44b631a817cd5f799b8c5dcfaa0c 100644 (file)
 "dnsexit.com"  "http://www.dnsexit.com/RemoteUpdate.sv?login=[USERNAME]&password=[PASSWORD]&host=[DOMAIN]&myip=[IP]"
 
 # OVH
-"ovh.com" "http://[USERNAME]:[PASSWORD]@www.ovh.com/nic/update?system=dyndns&hostname=[DOMAIN]&myip=[IP]"
+"ovh.com"      "http://[USERNAME]:[PASSWORD]@www.ovh.com/nic/update?system=dyndns&hostname=[DOMAIN]&myip=[IP]"
 
 # dns-o-matic is a free service by opendns.com for updating multiple hosts and
 # dynamic dns services in one api call. To update all your configured services
 # at once, use "all.dnsomatic.com as the hostname.
-"dnsomatic.com" "http://[USERNAME]:[PASSWORD]@updates.dnsomatic.com/nic/update?hostname=[DOMAIN]&myip=[IP]"
+"dnsomatic.com"        "http://[USERNAME]:[PASSWORD]@updates.dnsomatic.com/nic/update?hostname=[DOMAIN]&myip=[IP]"
 
 # 3322.org
-"3322.org"  "http://[USERNAME]:[PASSWORD]@members.3322.org/dyndns/update?system=dyndns&hostname=[DOMAIN]&myip=[IP]"
+"3322.org"     "http://[USERNAME]:[PASSWORD]@members.3322.org/dyndns/update?system=dyndns&hostname=[DOMAIN]&myip=[IP]"
 
 # namecheap.com
-"namecheap.com" "http://dynamicdns.park-your-domain.com/update?host=[USERNAME]&domain=[DOMAIN]&password=[PASSWORD]&ip=[IP]"
+"namecheap.com"        "http://dynamicdns.park-your-domain.com/update?host=[USERNAME]&domain=[DOMAIN]&password=[PASSWORD]&ip=[IP]"
 
 # easydns.com dynamic DNS
 "easydns.com"  "http://[USERNAME]:[PASSWORD]@api.cp.easydns.com/dyn/tomato.php?hostname=[DOMAIN]&myip=[IP]"
 "mythic-beasts.com"    "http://dnsapi4.mythic-beasts.com/?domain=[USERNAME]&password=[PASSWORD]&command=REPLACE%20[DOMAIN]%2060%20A%20DYNAMIC_IP"
 
 # Securepoint Dynamic-DNS-Service      (http://www.spdns.de)
-"spdns.de"     "http://[USERNAME]:[PASSWORD]@update.spdns.de/nic/update?hostname=[DOMAIN]&myip=[IP]"
+"spdns.de"     "http://[USERNAME]:[PASSWORD]@update.spdns.de/nic/update?hostname=[DOMAIN]&myip=[IP]"       "good|nochg"
 
 # duiadns.net - free dynamic DNS
-"duiadns.net"   "http://ipv4.duia.ro/dynamic.duia?host=[DOMAIN]&password=[PASSWORD]&ip4=[IP]"
+"duiadns.net"  "http://ipv4.duia.ro/dynamic.duia?host=[DOMAIN]&password=[PASSWORD]&ip4=[IP]"
 
 # Two-DNS - Simply. Connected. Everywhere.
-"twodns.de" "http://[USERNAME]:[PASSWORD]@update.twodns.de/update?hostname=[DOMAIN]&ip=[IP]"
+"twodns.de"    "http://[USERNAME]:[PASSWORD]@update.twodns.de/update?hostname=[DOMAIN]&ip=[IP]"
 
 # MyDNS.JP
 "mydns.jp"     "http://www.mydns.jp/directip.html?MID=[USERNAME]&PWD=[PASSWORD]&IPV4ADDR=[IP]"
 
 # LoopiaDNS
-"loopia.se" "http://[USERNAME]:[PASSWORD]@dns.loopia.se/XDynDNSServer/XDynDNS.php?system=custom&hostname=[DOMAIN]&myip=[IP]"
+"loopia.se"    "http://[USERNAME]:[PASSWORD]@dns.loopia.se/XDynDNSServer/XDynDNS.php?system=custom&hostname=[DOMAIN]&myip=[IP]"
 
 # SelfHost.de
-"selfhost.de"  "http://carol.selfhost.de/update?username=[USERNAME]&password=[PASSWORD]&myip=[IP]&hostname=1"
+"selfhost.de"  "http://carol.selfhost.de/update?username=[USERNAME]&password=[PASSWORD]&myip=[IP]&hostname=1"      "good|nochg"
 
 # no-ip.pl nothing to do with no-ip.com (domain registered to www.domeny.tv) (IP autodetected by provider)
 "no-ip.pl"     "http://[USERNAME]:[PASSWORD]@update.no-ip.pl/?hostname=[DOMAIN]"
 
 # domains.google.com   non free service - require HTTPS communication
-"domains.google.com"   "https://[USERNAME]:[PASSWORD]@domains.google.com/nic/update?hostname=[DOMAIN]&myip=[IP]"
+"domains.google.com"   "http://[USERNAME]:[PASSWORD]@domains.google.com/nic/update?hostname=[DOMAIN]&myip=[IP]"
+
+# Schokokeks Hosting, schokokeks.org
+"schokokeks.org"       "http://[USERNAME]:[PASSWORD]@dyndns.schokokeks.org/nic/update?myip=[IP]"
+
+# STRATO AG
+"strato.de"            "http://[USERNAME]:[PASSWORD]@dyndns.strato.com/nic/update?hostname=[DOMAIN]&myip=[IP]"
+
+# Variomedia AG
+"variomedia.de"        "http://[USERNAME]:[PASSWORD]@dyndns.variomedia.de/nic/update?hostname=[DOMAIN]&myip=[IP]"
+
index a0781a24fb7bdef597fd196f4ac46d0ef37403cd..df3c897bf5f06ae0ae77969f92062ea171ba9451 100644 (file)
@@ -25,7 +25,7 @@
 # 66666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
 
 # IPv6 @ Securepoint Dynamic-DNS-Service
-"spdns.de"     "http://[USERNAME]:[PASSWORD]@update.spdns.de/nic/update?hostname=[DOMAIN]&myip=[IP]"
+"spdns.de"     "http://[USERNAME]:[PASSWORD]@update.spdns.de/nic/update?hostname=[DOMAIN]&myip=[IP]"       "good|nochg"
 
 # IPv6 @ Hurricane Electric Dynamic DNS
 "he.net"       "http://[DOMAIN]:[PASSWORD]@dyn.dns.he.net/nic/update?hostname=[DOMAIN]&myip=[IP]"
@@ -41,3 +41,7 @@
 
 # IPv6 @ LoopiaDNS
 "loopia.se" "http://[USERNAME]:[PASSWORD]@dns.loopia.se/XDynDNSServer/XDynDNS.php?system=custom&hostname=[DOMAIN]&myip=[IP]"
+
+# Variomedia AG
+"variomedia.de"        "http://[USERNAME]:[PASSWORD]@dyndns.variomedia.de/nic/update?hostname=[DOMAIN]&myip=[IP]"
+
index 1d848b41b5ddc7fd3b4d9e111716da0f7c831ea9..08b05fcb2fefe09ddd0d26a6142277e43adb7e8d 100644 (file)
@@ -717,7 +717,19 @@ cx
 gov.cx
 
 // cy : http://en.wikipedia.org/wiki/.cy
-*.cy
+ac.cy
+biz.cy
+com.cy
+ekloges.cy
+gov.cy
+ltd.cy
+name.cy
+net.cy
+org.cy
+parliament.cy
+press.cy
+pro.cy
+tm.cy
 
 // cz : http://en.wikipedia.org/wiki/.cz
 cz
@@ -1138,8 +1150,16 @@ web.id
 ie
 gov.ie
 
-// il : http://en.wikipedia.org/wiki/.il
-*.il
+// il : http://www.isoc.org.il/domains/
+il
+ac.il
+co.il
+gov.il
+idf.il
+k12.il
+muni.il
+net.il
+org.il
 
 // im : https://www.nic.im/
 // Submitted by registry <info@nic.im> 2013-11-15
@@ -3722,7 +3742,7 @@ gov.me
 its.me
 priv.me
 
-// mg : http://www.nic.mg/tarif.htm
+// mg : http://nic.mg/nicmg/?page_id=39
 mg
 org.mg
 nom.mg
@@ -3732,6 +3752,7 @@ tm.mg
 edu.mg
 mil.mg
 com.mg
+co.mg
 
 // mh : http://en.wikipedia.org/wiki/.mh
 mh
@@ -6540,10 +6561,6 @@ zhytomyr.ua
 zp.ua
 zt.ua
 
-// Private registries in .ua
-co.ua
-pp.ua
-
 // ug : https://www.registry.co.ug/
 ug
 co.ug
@@ -7195,8 +7212,24 @@ xxx
 // ye : http://www.y.net.ye/services/domain_name.htm
 *.ye
 
-// za : http://www.zadna.org.za/slds.html
-*.za
+// za : http://www.zadna.org.za/content/page/domain-information
+ac.za
+agrica.za
+alt.za
+co.za
+edu.za
+gov.za
+grondar.za
+law.za
+mil.za
+net.za
+ngo.za
+nis.za
+nom.za
+org.za
+school.za
+tm.za
+web.za
 
 // zm : http://en.wikipedia.org/wiki/.zm
 *.zm
@@ -7205,20 +7238,38 @@ xxx
 *.zw
 
 
-// List of new gTLDs imported from https://newgtlds.icann.org/newgtlds.csv on 2015-05-06T09:31:08Z
+// List of new gTLDs imported from https://newgtlds.icann.org/newgtlds.csv on 2015-10-11T22:21:58Z
 
 // aaa : 2015-02-26 American Automobile Association, Inc.
 aaa
 
+// aarp : 2015-05-21 AARP
+aarp
+
+// abarth : 2015-07-30 Fiat Chrysler Automobiles N.V.
+abarth
+
 // abb : 2014-10-24 ABB Ltd
 abb
 
 // abbott : 2014-07-24 Abbott Laboratories, Inc.
 abbott
 
+// abbvie : 2015-07-30 AbbVie Inc.
+abbvie
+
+// abc : 2015-07-30 Disney Enterprises, Inc.
+abc
+
+// able : 2015-06-25 Able Inc.
+able
+
 // abogado : 2014-04-24 Top Level Domain Holdings Limited
 abogado
 
+// abudhabi : 2015-07-30 Abu Dhabi Systems and Information Centre
+abudhabi
+
 // academy : 2013-11-07 Half Oaks, LLC
 academy
 
@@ -7240,6 +7291,9 @@ active
 // actor : 2013-12-12 United TLD Holdco Ltd.
 actor
 
+// adac : 2015-07-16 Allgemeiner Deutscher Automobil-Club e.V. (ADAC)
+adac
+
 // ads : 2014-12-04 Charleston Road Registry Inc.
 ads
 
@@ -7249,6 +7303,12 @@ adult
 // aeg : 2015-03-19 Aktiebolaget Electrolux
 aeg
 
+// aetna : 2015-05-21 Aetna Life Insurance Company
+aetna
+
+// afamilycompany : 2015-07-23 Johnson Shareholdings, Inc.
+afamilycompany
+
 // afl : 2014-10-02 Australian Football League
 afl
 
@@ -7267,6 +7327,12 @@ agency
 // aig : 2014-12-18 American International Group, Inc.
 aig
 
+// aigo : 2015-08-06 aigo Digital Technology Co,Ltd.
+aigo
+
+// airbus : 2015-07-30 Airbus S.A.S.
+airbus
+
 // airforce : 2014-03-06 United TLD Holdco Ltd.
 airforce
 
@@ -7276,6 +7342,9 @@ airtel
 // akdn : 2015-04-23 Fondation Aga Khan (Aga Khan Foundation)
 akdn
 
+// alfaromeo : 2015-07-31 Fiat Chrysler Automobiles N.V.
+alfaromeo
+
 // alibaba : 2015-01-15 Alibaba Group Holding Limited
 alibaba
 
@@ -7285,9 +7354,33 @@ alipay
 // allfinanz : 2014-07-03 Allfinanz Deutsche Vermögensberatung Aktiengesellschaft
 allfinanz
 
+// allstate : 2015-07-31 Allstate Fire and Casualty Insurance Company
+allstate
+
+// ally : 2015-06-18 Ally Financial Inc.
+ally
+
 // alsace : 2014-07-02 REGION D ALSACE
 alsace
 
+// alstom : 2015-07-30 ALSTOM
+alstom
+
+// americanexpress : 2015-07-31 American Express Travel Related Services Company, Inc.
+americanexpress
+
+// americanfamily : 2015-07-23 AmFam, Inc.
+americanfamily
+
+// amex : 2015-07-31 American Express Travel Related Services Company, Inc.
+amex
+
+// amfam : 2015-07-23 AmFam, Inc.
+amfam
+
+// amica : 2015-05-28 Amica Mutual Insurance Company
+amica
+
 // amsterdam : 2014-07-24 Gemeente Amsterdam
 amsterdam
 
@@ -7300,9 +7393,21 @@ android
 // anquan : 2015-01-08 QIHOO 360 TECHNOLOGY CO. LTD.
 anquan
 
+// anz : 2015-07-31 Australia and New Zealand Banking Group Limited
+anz
+
+// aol : 2015-09-17 AOL Inc.
+aol
+
 // apartments : 2014-12-11 June Maple, LLC
 apartments
 
+// app : 2015-05-14 Charleston Road Registry Inc.
+app
+
+// apple : 2015-05-14 Apple Inc.
+apple
+
 // aquarelle : 2014-07-24 Aquarelle.com
 aquarelle
 
@@ -7318,22 +7423,37 @@ army
 // arte : 2014-12-11 Association Relative à la Télévision Européenne G.E.I.E.
 arte
 
+// asda : 2015-07-31 Wal-Mart Stores, Inc.
+asda
+
 // associates : 2014-03-06 Baxter Hill, LLC
 associates
 
+// athleta : 2015-07-30 The Gap, Inc.
+athleta
+
 // attorney : 2014-03-20
 attorney
 
 // auction : 2014-03-20
 auction
 
+// audi : 2015-05-21 AUDI Aktiengesellschaft
+audi
+
+// audible : 2015-06-25 Amazon EU S.à r.l.
+audible
+
 // audio : 2014-03-20 Uniregistry, Corp.
 audio
 
+// auspost : 2015-08-13 Australian Postal Corporation
+auspost
+
 // author : 2014-12-18 Amazon EU S.à r.l.
 author
 
-// auto : 2014-11-13 Uniregistry, Corp.
+// auto : 2014-11-13
 auto
 
 // autos : 2014-01-09 DERAutos, LLC
@@ -7342,6 +7462,9 @@ autos
 // avianca : 2015-01-08 Aerovias del Continente Americano S.A. Avianca
 avianca
 
+// aws : 2015-06-25 Amazon EU S.à r.l.
+aws
+
 // axa : 2013-12-19 AXA SA
 axa
 
@@ -7354,6 +7477,12 @@ baby
 // baidu : 2015-01-08 Baidu, Inc.
 baidu
 
+// banamex : 2015-07-30 Citigroup Inc.
+banamex
+
+// bananarepublic : 2015-07-31 The Gap, Inc.
+bananarepublic
+
 // band : 2014-06-12
 band
 
@@ -7372,9 +7501,15 @@ barclaycard
 // barclays : 2014-11-20 Barclays Bank PLC
 barclays
 
+// barefoot : 2015-06-11 Gallo Vineyards, Inc.
+barefoot
+
 // bargains : 2013-11-14 Half Hallow, LLC
 bargains
 
+// basketball : 2015-08-20 Fédération Internationale de Basketball (FIBA)
+basketball
+
 // bauhaus : 2014-04-17 Werkhaus GmbH
 bauhaus
 
@@ -7384,6 +7519,9 @@ bayern
 // bbc : 2014-12-18 British Broadcasting Corporation
 bbc
 
+// bbt : 2015-07-23 BB&T Corporation
+bbt
+
 // bbva : 2014-10-02 BANCO BILBAO VIZCAYA ARGENTARIA, S.A.
 bbva
 
@@ -7393,6 +7531,9 @@ bcg
 // bcn : 2014-07-24 Municipi de Barcelona
 bcn
 
+// beats : 2015-05-14 Beats Electronics, LLC
+beats
+
 // beer : 2014-01-09 Top Level Domain Holdings Limited
 beer
 
@@ -7405,6 +7546,12 @@ berlin
 // best : 2013-12-19 BestTLD Pty Ltd
 best
 
+// bestbuy : 2015-07-31 BBY Solutions, Inc.
+bestbuy
+
+// bet : 2015-05-07 Afilias plc
+bet
+
 // bharti : 2014-01-09 Bharti Enterprises (Holding) Private Limited
 bharti
 
@@ -7432,6 +7579,15 @@ black
 // blackfriday : 2014-01-16 Uniregistry, Corp.
 blackfriday
 
+// blanco : 2015-07-16 BLANCO GmbH + Co KG
+blanco
+
+// blockbuster : 2015-07-30 Dish DBS Corporation
+blockbuster
+
+// blog : 2015-05-14 PRIMER NIVEL S.A.
+blog
+
 // bloomberg : 2014-07-17 Bloomberg IP Holdings LLC
 bloomberg
 
@@ -7453,6 +7609,12 @@ bnpparibas
 // boats : 2014-12-04 DERBoats, LLC
 boats
 
+// boehringer : 2015-07-09 Boehringer Ingelheim International GmbH
+boehringer
+
+// bofa : 2015-07-31 NMS Services, Inc.
+bofa
+
 // bom : 2014-10-16 Núcleo de Informação e Coordenação do Ponto BR - NIC.br
 bom
 
@@ -7462,9 +7624,21 @@ bond
 // boo : 2014-01-30 Charleston Road Registry Inc.
 boo
 
+// book : 2015-08-27 Amazon EU S.à r.l.
+book
+
+// booking : 2015-07-16 Booking.com B.V.
+booking
+
 // boots : 2015-01-08 THE BOOTS COMPANY PLC
 boots
 
+// bosch : 2015-06-18 Robert Bosch GMBH
+bosch
+
+// bostik : 2015-05-28 Bostik SA
+bostik
+
 // bot : 2014-12-18 Amazon EU S.à r.l.
 bot
 
@@ -7492,6 +7666,9 @@ brussels
 // budapest : 2013-11-21 Top Level Domain Holdings Limited
 budapest
 
+// bugatti : 2015-07-23 Bugatti International SA
+bugatti
+
 // build : 2013-11-07 Plan Bee LLC
 build
 
@@ -7522,6 +7699,9 @@ cal
 // call : 2014-12-18 Amazon EU S.à r.l.
 call
 
+// calvinklein : 2015-07-30 PVH gTLD Holdings LLC
+calvinklein
+
 // camera : 2013-08-27 Atomic Maple, LLC
 camera
 
@@ -7540,7 +7720,10 @@ capetown
 // capital : 2014-03-06 Delta Mill, LLC
 capital
 
-// car : 2015-01-22 Charleston Road Registry Inc.
+// capitalone : 2015-08-06 Capital One Financial Corporation
+capitalone
+
+// car : 2015-01-22
 car
 
 // caravan : 2013-12-12 Caravan International, Inc.
@@ -7558,7 +7741,7 @@ career
 // careers : 2013-10-02 Wild Corner, LLC
 careers
 
-// cars : 2014-11-13 Uniregistry, Corp.
+// cars : 2014-11-13
 cars
 
 // cartier : 2014-06-23 Richemont DNS Inc.
@@ -7567,6 +7750,12 @@ cartier
 // casa : 2013-11-21 Top Level Domain Holdings Limited
 casa
 
+// case : 2015-09-03 CNH Industrial N.V.
+case
+
+// caseih : 2015-09-03 CNH Industrial N.V.
+caseih
+
 // cash : 2014-03-06 Delta Lake, LLC
 cash
 
@@ -7582,6 +7771,12 @@ cba
 // cbn : 2014-08-22 The Christian Broadcasting Network, Inc.
 cbn
 
+// cbre : 2015-07-02 CBRE, Inc.
+cbre
+
+// cbs : 2015-08-06 CBS Domains Inc.
+cbs
+
 // ceb : 2015-04-09 The Corporate Executive Board Company
 ceb
 
@@ -7615,6 +7810,9 @@ chat
 // cheap : 2013-11-14 Sand Cover, LLC
 cheap
 
+// chintai : 2015-06-11 CHINTAI Corporation
+chintai
+
 // chloe : 2014-10-16 Richemont DNS Inc.
 chloe
 
@@ -7624,6 +7822,9 @@ christmas
 // chrome : 2014-07-24 Charleston Road Registry Inc.
 chrome
 
+// chrysler : 2015-07-30 FCA US LLC.
+chrysler
+
 // church : 2014-02-06 Holly Fields, LLC
 church
 
@@ -7636,6 +7837,12 @@ circle
 // cisco : 2014-12-22 Cisco Technology, Inc.
 cisco
 
+// citadel : 2015-07-23 Citadel Domain LLC
+citadel
+
+// citi : 2015-07-30 Citigroup Inc.
+citi
+
 // citic : 2014-01-09 CITIC Group Corporation
 citic
 
@@ -7657,6 +7864,9 @@ click
 // clinic : 2014-03-20 Goose Park, LLC
 clinic
 
+// clinique : 2015-10-01 The Estée Lauder Companies Inc.
+clinique
+
 // clothing : 2013-08-27 Steel Lake, LLC
 clothing
 
@@ -7666,6 +7876,9 @@ cloud
 // club : 2013-11-08 .CLUB DOMAINS, LLC
 club
 
+// clubmed : 2015-06-25 Club Méditerranée S.A.
+clubmed
+
 // coach : 2014-10-09 Koko Island, LLC
 coach
 
@@ -7681,6 +7894,9 @@ college
 // cologne : 2014-02-05 NetCologne Gesellschaft für Telekommunikation mbH
 cologne
 
+// comcast : 2015-07-23 Comcast IP Holdings I, LLC
+comcast
+
 // commbank : 2014-06-26 COMMONWEALTH BANK OF AUSTRALIA
 commbank
 
@@ -7690,6 +7906,9 @@ community
 // company : 2013-11-07 Silver Avenue, LLC
 company
 
+// compare : 2015-10-08 iSelect Ltd
+compare
+
 // computer : 2013-10-24 Pine Mill, LLC
 computer
 
@@ -7714,6 +7933,9 @@ contractors
 // cooking : 2013-11-21 Top Level Domain Holdings Limited
 cooking
 
+// cookingchannel : 2015-07-02 Lifestyle Domain Holdings, Inc.
+cookingchannel
+
 // cool : 2013-11-14 Koko Lake, LLC
 cool
 
@@ -7789,6 +8011,12 @@ day
 // dclk : 2014-11-20 Charleston Road Registry Inc.
 dclk
 
+// dds : 2015-05-07 Top Level Domain Holdings Limited
+dds
+
+// deal : 2015-06-25 Amazon EU S.à r.l.
+deal
+
 // dealer : 2014-12-22 Dealer Dot Com, Inc.
 dealer
 
@@ -7804,6 +8032,9 @@ delivery
 // dell : 2014-10-24 Dell Inc.
 dell
 
+// deloitte : 2015-07-31 Deloitte Touche Tohmatsu
+deloitte
+
 // delta : 2015-02-19 Delta Air Lines, Inc.
 delta
 
@@ -7825,6 +8056,9 @@ design
 // dev : 2014-10-16 Charleston Road Registry Inc.
 dev
 
+// dhl : 2015-07-23 Deutsche Post AG
+dhl
+
 // diamonds : 2013-09-22 John Edge, LLC
 diamonds
 
@@ -7843,12 +8077,21 @@ directory
 // discount : 2014-03-06 Holly Hill, LLC
 discount
 
+// discover : 2015-07-23 Discover Financial Services
+discover
+
+// dish : 2015-07-30 Dish DBS Corporation
+dish
+
 // dnp : 2013-12-13 Dai Nippon Printing Co., Ltd.
 dnp
 
 // docs : 2014-10-16 Charleston Road Registry Inc.
 docs
 
+// dodge : 2015-07-30 FCA US LLC.
+dodge
+
 // dog : 2014-12-04 Koko Mill, LLC
 dog
 
@@ -7861,6 +8104,9 @@ domains
 // doosan : 2014-04-03 Doosan Corporation
 doosan
 
+// dot : 2015-05-21 Dish DBS Corporation
+dot
+
 // download : 2014-11-20 dot Support Limited
 download
 
@@ -7870,15 +8116,33 @@ drive
 // dstv : 2015-03-12 MultiChoice (Proprietary) Limited
 dstv
 
+// dtv : 2015-06-04 Dish DBS Corporation
+dtv
+
 // dubai : 2015-01-01 Dubai Smart Government Department
 dubai
 
+// duck : 2015-07-23 Johnson Shareholdings, Inc.
+duck
+
+// dunlop : 2015-07-02 The Goodyear Tire & Rubber Company
+dunlop
+
+// duns : 2015-08-06 The Dun & Bradstreet Corporation
+duns
+
+// dupont : 2015-06-25 E.I. du Pont de Nemours and Company
+dupont
+
 // durban : 2014-03-24 ZA Central Registry NPC trading as ZA Central Registry
 durban
 
 // dvag : 2014-06-23 Deutsche Vermögensberatung Aktiengesellschaft DVAG
 dvag
 
+// dwg : 2015-07-23 Autodesk, Inc.
+dwg
+
 // earth : 2014-12-04 Interlink Co., Ltd.
 earth
 
@@ -7897,6 +8161,9 @@ email
 // emerck : 2014-04-03 Merck KGaA
 emerck
 
+// emerson : 2015-07-23 Emerson Electric Co.
+emerson
+
 // energy : 2014-09-11 Binky Birch, LLC
 energy
 
@@ -7909,12 +8176,18 @@ engineering
 // enterprises : 2013-09-20 Snow Oaks, LLC
 enterprises
 
+// epost : 2015-07-23 Deutsche Post AG
+epost
+
 // epson : 2014-12-04 Seiko Epson Corporation
 epson
 
 // equipment : 2013-08-27 Corn Station, LLC
 equipment
 
+// ericsson : 2015-07-09 Telefonaktiebolaget L M Ericsson
+ericsson
+
 // erni : 2014-04-03 ERNI Group Holding AG
 erni
 
@@ -7924,6 +8197,12 @@ esq
 // estate : 2013-08-27 Trixy Park, LLC
 estate
 
+// esurance : 2015-07-23 Esurance Insurance Company
+esurance
+
+// etisalat : 2015-09-03 Emirates Telecommunications Corporation (trading as Etisalat)
+etisalat
+
 // eurovision : 2014-04-24 European Broadcasting Union (EBU)
 eurovision
 
@@ -7948,6 +8227,9 @@ exposed
 // express : 2015-02-11 Sea Sunset, LLC
 express
 
+// extraspace : 2015-05-14 Extra Space Storage LLC
+extraspace
+
 // fage : 2014-12-18 Fage International S.A.
 fage
 
@@ -7960,7 +8242,7 @@ fairwinds
 // faith : 2014-11-20 dot Faith Limited
 faith
 
-// family : 2015-04-02 Bitter Galley, LLC
+// family : 2015-04-02
 family
 
 // fan : 2014-03-06
@@ -7972,18 +8254,36 @@ fans
 // farm : 2013-11-07 Just Maple, LLC
 farm
 
+// farmers : 2015-07-09 Farmers Insurance Exchange
+farmers
+
 // fashion : 2014-07-03 Top Level Domain Holdings Limited
 fashion
 
 // fast : 2014-12-18 Amazon EU S.à r.l.
 fast
 
+// fedex : 2015-08-06 Federal Express Corporation
+fedex
+
 // feedback : 2013-12-19 Top Level Spectrum, Inc.
 feedback
 
+// ferrari : 2015-07-31 Fiat Chrysler Automobiles N.V.
+ferrari
+
 // ferrero : 2014-12-18 Ferrero Trading Lux S.A.
 ferrero
 
+// fiat : 2015-07-31 Fiat Chrysler Automobiles N.V.
+fiat
+
+// fidelity : 2015-07-30 Fidelity Brokerage Services LLC
+fidelity
+
+// fido : 2015-08-06 Rogers Communications Partnership
+fido
+
 // film : 2015-01-08 Motion Picture Domain Registry Pty Ltd
 film
 
@@ -7996,6 +8296,9 @@ finance
 // financial : 2014-03-06 Just Cover, LLC
 financial
 
+// fire : 2015-06-25 Amazon EU S.à r.l.
+fire
+
 // firestone : 2014-12-18 Bridgestone Corporation
 firestone
 
@@ -8020,6 +8323,9 @@ flickr
 // flights : 2013-12-05 Fox Station, LLC
 flights
 
+// flir : 2015-07-23 FLIR Systems, Inc.
+flir
+
 // florist : 2013-11-07 Half Cypress, LLC
 florist
 
@@ -8035,6 +8341,9 @@ fly
 // foo : 2014-01-23 Charleston Road Registry Inc.
 foo
 
+// foodnetwork : 2015-07-02 Lifestyle Domain Holdings, Inc.
+foodnetwork
+
 // football : 2014-12-18 Foggy Farms, LLC
 football
 
@@ -8053,15 +8362,33 @@ forum
 // foundation : 2013-12-05 John Dale, LLC
 foundation
 
+// fox : 2015-09-11 FOX Registry, LLC
+fox
+
+// fresenius : 2015-07-30 Fresenius Immobilien-Verwaltungs-GmbH
+fresenius
+
 // frl : 2014-05-15 FRLregistry B.V.
 frl
 
 // frogans : 2013-12-19 OP3FT
 frogans
 
+// frontdoor : 2015-07-02 Lifestyle Domain Holdings, Inc.
+frontdoor
+
 // frontier : 2015-02-05 Frontier Communications Corporation
 frontier
 
+// ftr : 2015-07-16 Frontier Communications Corporation
+ftr
+
+// fujitsu : 2015-07-30 Fujitsu Limited
+fujitsu
+
+// fujixerox : 2015-07-23 Xerox DNHC LLC
+fujixerox
+
 // fund : 2014-03-20 John Castle, LLC
 fund
 
@@ -8080,9 +8407,21 @@ gal
 // gallery : 2013-09-13 Sugar House, LLC
 gallery
 
+// gallo : 2015-06-11 Gallo Vineyards, Inc.
+gallo
+
 // gallup : 2015-02-19 Gallup, Inc.
 gallup
 
+// game : 2015-05-28 Uniregistry, Corp.
+game
+
+// games : 2015-05-28 Foggy Beach, LLC
+games
+
+// gap : 2015-07-31 The Gap, Inc.
+gap
+
 // garden : 2014-06-26 Top Level Domain Holdings Limited
 garden
 
@@ -8101,6 +8440,9 @@ gent
 // genting : 2015-03-12 Resorts World Inc Pte. Ltd.
 genting
 
+// george : 2015-07-31 Wal-Mart Stores, Inc.
+george
+
 // ggee : 2014-01-09 GMO Internet, Inc.
 ggee
 
@@ -8116,6 +8458,9 @@ gives
 // giving : 2014-11-13 Giving Limited
 giving
 
+// glade : 2015-07-23 Johnson Shareholdings, Inc.
+glade
+
 // glass : 2013-11-07 Black Cover, LLC
 glass
 
@@ -8137,6 +8482,9 @@ gmo
 // gmx : 2014-04-24 1&1 Mail & Media GmbH
 gmx
 
+// godaddy : 2015-07-23 Go Daddy East, LLC
+godaddy
+
 // gold : 2015-01-22 June Edge, LLC
 gold
 
@@ -8149,6 +8497,12 @@ golf
 // goo : 2014-12-18 NTT Resonant Inc.
 goo
 
+// goodhands : 2015-07-31 Allstate Fire and Casualty Insurance Company
+goodhands
+
+// goodyear : 2015-07-02 The Goodyear Tire & Rubber Company
+goodyear
+
 // goog : 2014-11-20 Charleston Road Registry Inc.
 goog
 
@@ -8164,6 +8518,9 @@ got
 // gotv : 2015-03-12 MultiChoice (Proprietary) Limited
 gotv
 
+// grainger : 2015-05-07 Grainger Registry Services, LLC
+grainger
+
 // graphics : 2013-09-13 Over Madison, LLC
 graphics
 
@@ -8179,6 +8536,9 @@ gripe
 // group : 2014-08-15 Romeo Town, LLC
 group
 
+// guardian : 2015-07-30 The Guardian Life Insurance Company of America
+guardian
+
 // gucci : 2014-11-13 Guccio Gucci S.p.a.
 gucci
 
@@ -8203,6 +8563,12 @@ hangout
 // haus : 2013-12-05
 haus
 
+// hbo : 2015-07-30 HBO Registry Services, Inc.
+hbo
+
+// hdfc : 2015-07-30 HOUSING DEVELOPMENT FINANCE CORPORATION LIMITED
+hdfc
+
 // hdfcbank : 2015-02-12 HDFC Bank Limited
 hdfcbank
 
@@ -8224,15 +8590,24 @@ here
 // hermes : 2014-07-10 HERMES INTERNATIONAL
 hermes
 
+// hgtv : 2015-07-02 Lifestyle Domain Holdings, Inc.
+hgtv
+
 // hiphop : 2014-03-06 Uniregistry, Corp.
 hiphop
 
+// hisamitsu : 2015-07-16 Hisamitsu Pharmaceutical Co.,Inc.
+hisamitsu
+
 // hitachi : 2014-10-31 Hitachi, Ltd.
 hitachi
 
 // hiv : 2014-03-13 dotHIV gemeinnuetziger e.V.
 hiv
 
+// hkt : 2015-05-14 PCCW-HKT DataCom Services Limited
+hkt
+
 // hockey : 2015-03-19 Half Willow, LLC
 hockey
 
@@ -8245,12 +8620,21 @@ holiday
 // homedepot : 2015-04-02 Homer TLC, Inc.
 homedepot
 
+// homegoods : 2015-07-16 The TJX Companies, Inc.
+homegoods
+
 // homes : 2014-01-09 DERHomes, LLC
 homes
 
+// homesense : 2015-07-16 The TJX Companies, Inc.
+homesense
+
 // honda : 2014-12-18 Honda Motor Co., Ltd.
 honda
 
+// honeywell : 2015-07-23 Honeywell GTLD LLC
+honeywell
+
 // horse : 2013-11-21 Top Level Domain Holdings Limited
 horse
 
@@ -8260,6 +8644,9 @@ host
 // hosting : 2014-05-29 Uniregistry, Corp.
 hosting
 
+// hot : 2015-08-27 Amazon EU S.à r.l.
+hot
+
 // hoteles : 2015-03-05 Travel Reservations SRL
 hoteles
 
@@ -8278,6 +8665,15 @@ hsbc
 // htc : 2015-04-02 HTC corporation
 htc
 
+// hughes : 2015-07-30 Hughes Satellite Systems Corporation
+hughes
+
+// hyatt : 2015-07-30 Hyatt GTLD, L.L.C.
+hyatt
+
+// hyundai : 2015-07-09 Hyundai Motor Company
+hyundai
+
 // ibm : 2014-07-31 International Business Machines Corporation
 ibm
 
@@ -8290,12 +8686,24 @@ ice
 // icu : 2015-01-08 One.com A/S
 icu
 
+// ieee : 2015-07-23 IEEE Global LLC
+ieee
+
 // ifm : 2014-01-30 ifm electronic gmbh
 ifm
 
 // iinet : 2014-07-03 Connect West Pty. Ltd.
 iinet
 
+// ikano : 2015-07-09 Ikano S.A.
+ikano
+
+// imamat : 2015-08-06 Fondation Aga Khan (Aga Khan Foundation)
+imamat
+
+// imdb : 2015-06-25 Amazon EU S.à r.l.
+imdb
+
 // immo : 2014-07-10 Auburn Bloom, LLC
 immo
 
@@ -8323,9 +8731,15 @@ insurance
 // insure : 2014-03-20 Pioneer Willow, LLC
 insure
 
+// intel : 2015-08-06 Intel Corporation
+intel
+
 // international : 2013-11-07 Wild Way, LLC
 international
 
+// intuit : 2015-07-30 Intuit Administrative Services, Inc.
+intuit
+
 // investments : 2014-03-20 Holly Glen, LLC
 investments
 
@@ -8338,6 +8752,9 @@ irish
 // iselect : 2015-02-11 iSelect Ltd
 iselect
 
+// ismaili : 2015-08-06 Fondation Aga Khan (Aga Khan Foundation)
+ismaili
+
 // ist : 2014-08-28 Istanbul Metropolitan Municipality
 ist
 
@@ -8347,6 +8764,12 @@ istanbul
 // itau : 2014-10-02 Itau Unibanco Holding S.A.
 itau
 
+// itv : 2015-07-09 ITV Services Limited
+itv
+
+// iveco : 2015-09-03 CNH Industrial N.V.
+iveco
+
 // iwc : 2014-06-23 Richemont DNS Inc.
 iwc
 
@@ -8362,6 +8785,9 @@ jcb
 // jcp : 2015-04-23 JCP Media, Inc.
 jcp
 
+// jeep : 2015-07-30 FCA US LLC.
+jeep
+
 // jetzt : 2014-01-09 New TLD Company AB
 jetzt
 
@@ -8380,6 +8806,9 @@ jll
 // jmp : 2015-03-26 Matrix IP LLC
 jmp
 
+// jnj : 2015-06-18 Johnson & Johnson Services, Inc.
+jnj
+
 // joburg : 2014-03-24 ZA Central Registry NPC trading as ZA Central Registry
 joburg
 
@@ -8398,6 +8827,9 @@ jprs
 // juegos : 2014-03-20 Uniregistry, Corp.
 juegos
 
+// juniper : 2015-07-30 JUNIPER NETWORKS, INC.
+juniper
+
 // kaufen : 2013-11-07 United TLD Holdco Ltd.
 kaufen
 
@@ -8416,12 +8848,18 @@ kerryproperties
 // kfh : 2014-12-04 Kuwait Finance House
 kfh
 
+// kia : 2015-07-09 KIA MOTORS CORPORATION
+kia
+
 // kim : 2013-09-23 Afilias Limited
 kim
 
 // kinder : 2014-11-07 Ferrero Trading Lux S.A.
 kinder
 
+// kindle : 2015-06-25 Amazon EU S.à r.l.
+kindle
+
 // kitchen : 2013-09-20 Just Goodbye, LLC
 kitchen
 
@@ -8434,6 +8872,9 @@ koeln
 // komatsu : 2015-01-08 Komatsu Ltd.
 komatsu
 
+// kosher : 2015-08-20 Kosher Marketing Assets LLC
+kosher
+
 // kpmg : 2015-04-23 KPMG International Cooperative (KPMG International Genossenschaft)
 kpmg
 
@@ -8458,21 +8899,42 @@ kyoto
 // lacaixa : 2014-01-09 CAIXA D'ESTALVIS I PENSIONS DE BARCELONA
 lacaixa
 
+// ladbrokes : 2015-08-06 LADBROKES INTERNATIONAL PLC
+ladbrokes
+
+// lamborghini : 2015-06-04 Automobili Lamborghini S.p.A.
+lamborghini
+
+// lamer : 2015-10-01 The Estée Lauder Companies Inc.
+lamer
+
 // lancaster : 2015-02-12 LANCASTER
 lancaster
 
+// lancia : 2015-07-31 Fiat Chrysler Automobiles N.V.
+lancia
+
+// lancome : 2015-07-23 L'Oréal
+lancome
+
 // land : 2013-09-10 Pine Moon, LLC
 land
 
 // landrover : 2014-11-13 Jaguar Land Rover Ltd
 landrover
 
+// lanxess : 2015-07-30 LANXESS Corporation
+lanxess
+
 // lasalle : 2015-04-02 Jones Lang LaSalle Incorporated
 lasalle
 
 // lat : 2014-10-16 ECOM-LAC Federaciòn de Latinoamèrica y el Caribe para Internet y el Comercio Electrònico
 lat
 
+// latino : 2015-07-30 Dish DBS Corporation
+latino
+
 // latrobe : 2014-06-16 La Trobe University
 latrobe
 
@@ -8491,9 +8953,15 @@ lease
 // leclerc : 2014-08-07 A.C.D. LEC Association des Centres Distributeurs Edouard Leclerc
 leclerc
 
+// lefrak : 2015-07-16 LeFrak Organization, Inc.
+lefrak
+
 // legal : 2014-10-16 Blue Falls, LLC
 legal
 
+// lego : 2015-07-16 LEGO Juris A/S
+lego
+
 // lexus : 2015-04-23 TOYOTA MOTOR CORPORATION
 lexus
 
@@ -8521,6 +8989,9 @@ lighting
 // like : 2014-12-18 Amazon EU S.à r.l.
 like
 
+// lilly : 2015-07-31 Eli Lilly and Company
+lilly
+
 // limited : 2014-03-06 Big Fest, LLC
 limited
 
@@ -8536,9 +9007,15 @@ linde
 // link : 2013-11-14 Uniregistry, Corp.
 link
 
-// live : 2014-12-04 Half Woods, LLC
+// lipsy : 2015-06-25 Lipsy Ltd
+lipsy
+
+// live : 2014-12-04
 live
 
+// living : 2015-07-30 Lifestyle Domain Holdings, Inc.
+living
+
 // lixil : 2015-03-19 LIXIL Group Corporation
 lixil
 
@@ -8548,6 +9025,15 @@ loan
 // loans : 2014-03-20 June Woods, LLC
 loans
 
+// locker : 2015-06-04 Dish DBS Corporation
+locker
+
+// locus : 2015-06-25 Locus Analytics LLC
+locus
+
+// loft : 2015-07-30 Annco, Inc.
+loft
+
 // lol : 2015-01-30 Uniregistry, Corp.
 lol
 
@@ -8563,12 +9049,21 @@ lotto
 // love : 2014-12-22 Merchant Law Group LLP
 love
 
+// lpl : 2015-07-30 LPL Holdings, Inc.
+lpl
+
+// lplfinancial : 2015-07-30 LPL Holdings, Inc.
+lplfinancial
+
 // ltd : 2014-09-25 Over Corner, LLC
 ltd
 
 // ltda : 2014-04-17 DOMAIN ROBOT SERVICOS DE HOSPEDAGEM NA INTERNET LTDA
 ltda
 
+// lundbeck : 2015-08-06 H. Lundbeck A/S
+lundbeck
+
 // lupin : 2014-11-07 LUPIN LIMITED
 lupin
 
@@ -8578,6 +9073,9 @@ luxe
 // luxury : 2013-10-17 Luxury Partners, LLC
 luxury
 
+// macys : 2015-07-31 Macys, Inc.
+macys
+
 // madrid : 2014-05-01 Comunidad de Madrid
 madrid
 
@@ -8611,9 +9109,30 @@ markets
 // marriott : 2014-10-09 Marriott Worldwide Corporation
 marriott
 
+// marshalls : 2015-07-16 The TJX Companies, Inc.
+marshalls
+
+// maserati : 2015-07-31 Fiat Chrysler Automobiles N.V.
+maserati
+
+// mattel : 2015-08-06 Mattel Sites, Inc.
+mattel
+
 // mba : 2015-04-02 Lone Hollow, LLC
 mba
 
+// mcd : 2015-07-30 McDonald’s Corporation
+mcd
+
+// mcdonalds : 2015-07-30 McDonald’s Corporation
+mcdonalds
+
+// mckinsey : 2015-07-31 McKinsey Holdings, Inc.
+mckinsey
+
+// med : 2015-08-06 Medistry LLC
+med
+
 // media : 2014-03-06 Grand Glen, LLC
 media
 
@@ -8638,6 +9157,9 @@ menu
 // meo : 2014-11-07 PT Comunicacoes S.A.
 meo
 
+// metlife : 2015-05-07 MetLife Services and Solutions, LLC
+metlife
+
 // miami : 2013-12-19 Top Level Domain Holdings Limited
 miami
 
@@ -8647,6 +9169,18 @@ microsoft
 // mini : 2014-01-09 Bayerische Motoren Werke Aktiengesellschaft
 mini
 
+// mint : 2015-07-30 Intuit Administrative Services, Inc.
+mint
+
+// mit : 2015-07-02 Massachusetts Institute of Technology
+mit
+
+// mitsubishi : 2015-07-23 Mitsubishi Corporation
+mitsubishi
+
+// mlb : 2015-05-21 MLB Advanced Media DH, LLC
+mlb
+
 // mls : 2015-04-23 The Canadian Real Estate Association
 mls
 
@@ -8677,9 +9211,15 @@ monash
 // money : 2014-10-16 Outer McCook, LLC
 money
 
+// monster : 2015-09-11 Monster Worldwide, Inc.
+monster
+
 // montblanc : 2014-06-23 Richemont DNS Inc.
 montblanc
 
+// mopar : 2015-07-30 FCA US LLC.
+mopar
+
 // mormon : 2013-12-05 IRI Domain Management, LLC ("Applicant")
 mormon
 
@@ -8689,6 +9229,9 @@ mortgage
 // moscow : 2013-12-19 Foundation for Assistance for Internet Technologies and Infrastructure Development (FAITID)
 moscow
 
+// moto : 2015-06-04 Charleston Road Registry Inc.
+moto
+
 // motorcycles : 2014-01-09 DERMotorcycles, LLC
 motorcycles
 
@@ -8701,6 +9244,9 @@ movie
 // movistar : 2014-10-16 Telefónica S.A.
 movistar
 
+// msd : 2015-07-23 MSD Registry Holdings, Inc.
+msd
+
 // mtn : 2014-12-04 MTN Dubai Limited
 mtn
 
@@ -8716,9 +9262,15 @@ multichoice
 // mutual : 2015-04-02 Northwestern Mutual MU TLD Registry, LLC
 mutual
 
+// mutuelle : 2015-06-18 Fédération Nationale de la Mutualité Française
+mutuelle
+
 // mzansimagic : 2015-03-05 Electronic Media Network (Pty) Ltd
 mzansimagic
 
+// nab : 2015-08-20 National Australia Bank Limited
+nab
+
 // nadex : 2014-12-11 IG Group Holdings PLC
 nadex
 
@@ -8728,18 +9280,27 @@ nagoya
 // naspers : 2015-02-12 Intelprop (Proprietary) Limited
 naspers
 
+// nationwide : 2015-07-23 Nationwide Mutual Insurance Company
+nationwide
+
 // natura : 2015-03-12 NATURA COSMÉTICOS S.A.
 natura
 
 // navy : 2014-03-06 United TLD Holdco Ltd.
 navy
 
+// nba : 2015-07-31 NBA REGISTRY, LLC
+nba
+
 // nec : 2015-01-08 NEC Corporation
 nec
 
 // netbank : 2014-06-26 COMMONWEALTH BANK OF AUSTRALIA
 netbank
 
+// netflix : 2015-06-18 Netflix, Inc.
+netflix
+
 // network : 2013-11-14 Trixy Manor, LLC
 network
 
@@ -8749,12 +9310,24 @@ neustar
 // new : 2014-01-30 Charleston Road Registry Inc.
 new
 
+// newholland : 2015-09-03 CNH Industrial N.V.
+newholland
+
 // news : 2014-12-18
 news
 
+// next : 2015-06-18 Next plc
+next
+
+// nextdirect : 2015-06-18 Next plc
+nextdirect
+
 // nexus : 2014-07-24 Charleston Road Registry Inc.
 nexus
 
+// nfl : 2015-07-23 NFL Reg Ops LLC
+nfl
+
 // ngo : 2014-03-06 Public Interest Registry
 ngo
 
@@ -8764,6 +9337,12 @@ nhk
 // nico : 2014-12-04 DWANGO Co., Ltd.
 nico
 
+// nike : 2015-07-23 NIKE, Inc.
+nike
+
+// nikon : 2015-05-21 NIKON CORPORATION
+nikon
+
 // ninja : 2013-11-07 United TLD Holdco Ltd.
 ninja
 
@@ -8773,12 +9352,21 @@ nissan
 // nokia : 2015-01-08 Nokia Corporation
 nokia
 
+// northwesternmutual : 2015-06-18 Northwestern Mutual Registry, LLC
+northwesternmutual
+
 // norton : 2014-12-04 Symantec Corporation
 norton
 
+// now : 2015-06-25 Amazon EU S.à r.l.
+now
+
 // nowruz : 2014-09-04 Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti.
 nowruz
 
+// nowtv : 2015-05-14 Starbucks (HK) Limited
+nowtv
+
 // nra : 2014-05-22 NRA Holdings Company, INC.
 nra
 
@@ -8797,12 +9385,27 @@ obi
 // observer : 2015-04-30 Guardian News and Media Limited
 observer
 
+// off : 2015-07-23 Johnson Shareholdings, Inc.
+off
+
 // office : 2015-03-12 Microsoft Corporation
 office
 
 // okinawa : 2013-12-05 BusinessRalliart Inc.
 okinawa
 
+// olayan : 2015-05-14 Crescent Holding GmbH
+olayan
+
+// olayangroup : 2015-05-14 Crescent Holding GmbH
+olayangroup
+
+// oldnavy : 2015-07-31 The Gap, Inc.
+oldnavy
+
+// ollo : 2015-06-04 Dish DBS Corporation
+ollo
+
 // omega : 2015-01-08 The Swatch Group Ltd
 omega
 
@@ -8818,9 +9421,15 @@ onl
 // online : 2015-01-15 DotOnline Inc.
 online
 
+// onyourside : 2015-07-23 Nationwide Mutual Insurance Company
+onyourside
+
 // ooo : 2014-01-09 INFIBEAM INCORPORATION LIMITED
 ooo
 
+// open : 2015-07-31 American Express Travel Related Services Company, Inc.
+open
+
 // oracle : 2014-06-19 Oracle Corporation
 oracle
 
@@ -8833,12 +9442,18 @@ organic
 // orientexpress : 2015-02-05 Belmond Ltd.
 orientexpress
 
+// origins : 2015-10-01 The Estée Lauder Companies Inc.
+origins
+
 // osaka : 2014-09-04 Interlink Co., Ltd.
 osaka
 
 // otsuka : 2013-10-11 Otsuka Holdings Co., Ltd.
 otsuka
 
+// ott : 2015-06-04 Dish DBS Corporation
+ott
+
 // ovh : 2014-01-16 OVH SAS
 ovh
 
@@ -8848,6 +9463,9 @@ page
 // pamperedchef : 2015-02-05 The Pampered Chef, Ltd.
 pamperedchef
 
+// panasonic : 2015-07-30 Panasonic Corporation
+panasonic
+
 // panerai : 2014-11-07 Richemont DNS Inc.
 panerai
 
@@ -8869,9 +9487,21 @@ party
 // passagens : 2015-03-05 Travel Reservations SRL
 passagens
 
+// pay : 2015-08-27 Amazon EU S.à r.l.
+pay
+
 // payu : 2015-02-12 MIH PayU B.V.
 payu
 
+// pccw : 2015-05-14 PCCW Enterprises Limited
+pccw
+
+// pet : 2015-05-07 Afilias plc
+pet
+
+// pfizer : 2015-09-11 Pfizer Inc.
+pfizer
+
 // pharmacy : 2014-06-19 National Association of Boards of Pharmacy
 pharmacy
 
@@ -8908,9 +9538,15 @@ pid
 // pin : 2014-12-18 Amazon EU S.à r.l.
 pin
 
+// ping : 2015-06-11 Ping Registry Provider, Inc.
+ping
+
 // pink : 2013-10-01 Afilias Limited
 pink
 
+// pioneer : 2015-07-16 Pioneer Corporation
+pioneer
+
 // pizza : 2014-06-26 Foggy Moon, LLC
 pizza
 
@@ -8920,27 +9556,42 @@ place
 // play : 2015-03-05 Charleston Road Registry Inc.
 play
 
+// playstation : 2015-07-02 Sony Computer Entertainment Inc.
+playstation
+
 // plumbing : 2013-09-10 Spring Tigers, LLC
 plumbing
 
 // plus : 2015-02-05 Sugar Mill, LLC
 plus
 
+// pnc : 2015-07-02 PNC Domain Co., LLC
+pnc
+
 // pohl : 2014-06-23 Deutsche Vermögensberatung Aktiengesellschaft DVAG
 pohl
 
 // poker : 2014-07-03 Afilias Domains No. 5 Limited
 poker
 
+// politie : 2015-08-20 Politie Nederland
+politie
+
 // porn : 2014-10-16 ICM Registry PN LLC
 porn
 
+// pramerica : 2015-07-30 Prudential Financial, Inc.
+pramerica
+
 // praxi : 2013-12-05 Praxi S.p.A.
 praxi
 
 // press : 2014-04-03 DotPress Inc.
 press
 
+// prime : 2015-06-25 Amazon EU S.à r.l.
+prime
+
 // prod : 2014-01-23 Charleston Road Registry Inc.
 prod
 
@@ -8950,6 +9601,9 @@ productions
 // prof : 2014-07-24 Charleston Road Registry Inc.
 prof
 
+// progressive : 2015-07-23 Progressive Casualty Insurance Company
+progressive
+
 // promo : 2014-12-18 Play.PROMO Oy
 promo
 
@@ -8959,9 +9613,15 @@ properties
 // property : 2014-05-22 Uniregistry, Corp.
 property
 
-// protection : 2015-04-23 Symantec Corporation
+// protection : 2015-04-23
 protection
 
+// pru : 2015-07-30 Prudential Financial, Inc.
+pru
+
+// prudential : 2015-07-30 Prudential Financial, Inc.
+prudential
+
 // pub : 2013-12-12 United TLD Holdco Ltd.
 pub
 
@@ -8974,12 +9634,21 @@ quebec
 // quest : 2015-03-26 Quest ION Limited
 quest
 
+// qvc : 2015-07-30 QVC, Inc.
+qvc
+
 // racing : 2014-12-04 Premier Registry Limited
 racing
 
+// raid : 2015-07-23 Johnson Shareholdings, Inc.
+raid
+
 // read : 2014-12-18 Amazon EU S.à r.l.
 read
 
+// realestate : 2015-09-11 dotRealEstate LLC
+realestate
+
 // realtor : 2014-05-29 Real Estate Domains LLC
 realtor
 
@@ -9001,7 +9670,7 @@ redumbrella
 // rehab : 2014-03-06 United TLD Holdco Ltd.
 rehab
 
-// reise : 2014-03-13 dotreise GmbH
+// reise : 2014-03-13
 reise
 
 // reisen : 2014-03-06 New Cypress, LLC
@@ -9043,12 +9712,21 @@ review
 // reviews : 2013-09-13
 reviews
 
+// rexroth : 2015-06-18 Robert Bosch GMBH
+rexroth
+
 // rich : 2013-11-21 I-Registry Ltd.
 rich
 
+// richardli : 2015-05-14 Pacific Century Asset Management (HK) Limited
+richardli
+
 // ricoh : 2014-11-20 Ricoh Company, Ltd.
 ricoh
 
+// rightathome : 2015-07-23 Johnson Shareholdings, Inc.
+rightathome
+
 // ril : 2015-04-02 Reliance Industries Limited
 ril
 
@@ -9067,6 +9745,9 @@ rocks
 // rodeo : 2013-12-19 Top Level Domain Holdings Limited
 rodeo
 
+// rogers : 2015-08-06 Rogers Communications Partnership
+rogers
+
 // room : 2014-12-18 Amazon EU S.à r.l.
 room
 
@@ -9103,6 +9784,9 @@ sale
 // salon : 2014-12-11 Outer Orchard, LLC
 salon
 
+// samsclub : 2015-07-31 Wal-Mart Stores, Inc.
+samsclub
+
 // samsung : 2014-04-03 SAMSUNG SDS CO., LTD
 samsung
 
@@ -9127,6 +9811,9 @@ sarl
 // sas : 2015-04-02 Research IP LLC
 sas
 
+// save : 2015-06-25 Amazon EU S.à r.l.
+save
+
 // saxo : 2014-10-31 Saxo Bank A/S
 saxo
 
@@ -9142,6 +9829,9 @@ sca
 // scb : 2014-02-20 The Siam Commercial Bank Public Company Limited ("SCB")
 scb
 
+// schaeffler : 2015-08-06 Schaeffler Technologies AG & Co. KG
+schaeffler
+
 // schmidt : 2014-04-03 SALM S.A.S.
 schmidt
 
@@ -9160,6 +9850,9 @@ schwarz
 // science : 2014-09-11 dot Science Limited
 science
 
+// scjohnson : 2015-07-23 Johnson Shareholdings, Inc.
+scjohnson
+
 // scor : 2014-10-31 SCOR SE
 scor
 
@@ -9169,15 +9862,30 @@ scot
 // seat : 2014-05-22 SEAT, S.A. (Sociedad Unipersonal)
 seat
 
+// secure : 2015-08-27 Amazon EU S.à r.l.
+secure
+
+// security : 2015-05-14
+security
+
 // seek : 2014-12-04 Seek Limited
 seek
 
+// select : 2015-10-08 iSelect Ltd
+select
+
 // sener : 2014-10-24 Sener Ingeniería y Sistemas, S.A.
 sener
 
 // services : 2014-02-27 Fox Castle, LLC
 services
 
+// ses : 2015-07-23 SES
+ses
+
+// seven : 2015-08-06 Seven West Media Ltd
+seven
+
 // sew : 2014-07-17 SEW-EURODRIVE GmbH & Co KG
 sew
 
@@ -9187,12 +9895,21 @@ sex
 // sexy : 2013-09-11 Uniregistry, Corp.
 sexy
 
+// sfr : 2015-08-13 Societe Francaise du Radiotelephone - SFR
+sfr
+
+// shangrila : 2015-09-03 Shangri‐La International Hotel Management Limited
+shangrila
+
 // sharp : 2014-05-01 Sharp Corporation
 sharp
 
 // shaw : 2015-04-23 Shaw Cablesystems G.P.
 shaw
 
+// shell : 2015-07-30 Shell Information Technology International Inc
+shell
+
 // shia : 2014-09-04 Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti.
 shia
 
@@ -9208,9 +9925,15 @@ shouji
 // show : 2015-03-05 Snow Beach, LLC
 show
 
+// showtime : 2015-08-06 CBS Domains Inc.
+showtime
+
 // shriram : 2014-01-23 Shriram Capital Ltd.
 shriram
 
+// silk : 2015-06-25 Amazon EU S.à r.l.
+silk
+
 // sina : 2015-03-12 Sina Corporation
 sina
 
@@ -9232,6 +9955,12 @@ sky
 // skype : 2014-12-18 Microsoft Corporation
 skype
 
+// sling : 2015-07-30 Hughes Satellite Systems Corporation
+sling
+
+// smart : 2015-07-09 Smart Communications, Inc. (SMART)
+smart
+
 // smile : 2014-12-18 Amazon EU S.à r.l.
 smile
 
@@ -9244,6 +9973,9 @@ soccer
 // social : 2013-11-07 United TLD Holdco Ltd.
 social
 
+// softbank : 2015-07-02 SoftBank Corp.
+softbank
+
 // software : 2014-03-20
 software
 
@@ -9277,18 +10009,30 @@ spot
 // spreadbetting : 2014-12-11 IG Group Holdings PLC
 spreadbetting
 
+// srl : 2015-05-07 mySRL GmbH
+srl
+
+// srt : 2015-07-30 FCA US LLC.
+srt
+
 // stada : 2014-11-13 STADA Arzneimittel AG
 stada
 
+// staples : 2015-07-30 Staples, Inc.
+staples
+
 // star : 2015-01-08 Star India Private Limited
 star
 
-// starhub : 2015-02-05 StarHub Limited
+// starhub : 2015-02-05 StarHub Ltd
 starhub
 
 // statebank : 2015-03-12 STATE BANK OF INDIA
 statebank
 
+// statefarm : 2015-07-30 State Farm Mutual Automobile Insurance Company
+statefarm
+
 // statoil : 2014-12-04 Statoil ASA
 statoil
 
@@ -9307,7 +10051,7 @@ storage
 // store : 2015-04-09 DotStore Inc.
 store
 
-// studio : 2015-02-11 Spring Goodbye, LLC
+// studio : 2015-02-11
 studio
 
 // study : 2014-12-11 OPEN UNIVERSITIES AUSTRALIA PTY LTD
@@ -9343,6 +10087,9 @@ suzuki
 // swatch : 2015-01-08 The Swatch Group Ltd
 swatch
 
+// swiftcover : 2015-07-23 Swiftcover Insurance Services Limited
+swiftcover
+
 // swiss : 2014-10-16 Swiss Confederation
 swiss
 
@@ -9367,6 +10114,9 @@ talk
 // taobao : 2015-01-15 Alibaba Group Holding Limited
 taobao
 
+// target : 2015-07-31 Target Domain Holdings, LLC
+target
+
 // tatamotors : 2015-03-12 Tata Motors Ltd
 tatamotors
 
@@ -9385,6 +10135,9 @@ taxi
 // tci : 2014-09-12 Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti.
 tci
 
+// tdk : 2015-06-11 TDK Corporation
+tdk
+
 // team : 2015-03-05 Atomic Lake, LLC
 team
 
@@ -9406,15 +10159,24 @@ temasek
 // tennis : 2014-12-04 Cotton Bloom, LLC
 tennis
 
+// teva : 2015-07-02 Teva Pharmaceutical Industries Limited
+teva
+
 // thd : 2015-04-02 Homer TLC, Inc.
 thd
 
 // theater : 2015-03-19 Blue Tigers, LLC
 theater
 
+// theatre : 2015-05-07
+theatre
+
 // theguardian : 2015-04-30 Guardian News and Media Limited
 theguardian
 
+// tiaa : 2015-07-23 Teachers Insurance and Annuity Association of America
+tiaa
+
 // tickets : 2015-02-05 Accent Media Limited
 tickets
 
@@ -9433,6 +10195,15 @@ tires
 // tirol : 2014-04-24 punkt Tirol GmbH
 tirol
 
+// tjmaxx : 2015-07-16 The TJX Companies, Inc.
+tjmaxx
+
+// tjx : 2015-07-16 The TJX Companies, Inc.
+tjx
+
+// tkmaxx : 2015-07-16 The TJX Companies, Inc.
+tkmaxx
+
 // tmall : 2015-01-15 Alibaba Group Holding Limited
 tmall
 
@@ -9454,6 +10225,9 @@ toray
 // toshiba : 2014-04-10 TOSHIBA Corporation
 toshiba
 
+// total : 2015-08-06 Total SA
+total
+
 // tours : 2015-01-22 Sugar Station, LLC
 tours
 
@@ -9475,6 +10249,9 @@ trading
 // training : 2013-11-07 Wild Willow, LLC
 training
 
+// travelchannel : 2015-07-02 Lifestyle Domain Holdings, Inc.
+travelchannel
+
 // travelers : 2015-03-26 Travelers TLD, LLC
 travelers
 
@@ -9487,6 +10264,9 @@ trust
 // trv : 2015-03-26 Travelers TLD, LLC
 trv
 
+// tube : 2015-06-11 Latin American Telecom LLC
+tube
+
 // tui : 2014-07-03 TUI AG
 tui
 
@@ -9499,9 +10279,15 @@ tushu
 // tvs : 2015-02-19 T V SUNDRAM IYENGAR & SONS LIMITED
 tvs
 
+// ubank : 2015-08-20 National Australia Bank Limited
+ubank
+
 // ubs : 2014-12-11 UBS AG
 ubs
 
+// uconnect : 2015-07-30 FCA US LLC.
+uconnect
+
 // university : 2014-03-06 Little Station, LLC
 university
 
@@ -9511,18 +10297,27 @@ uno
 // uol : 2014-05-01 UBN INTERNET LTDA.
 uol
 
+// ups : 2015-06-25 UPS Market Driver, Inc.
+ups
+
 // vacations : 2013-12-05 Atomic Tigers, LLC
 vacations
 
 // vana : 2014-12-11 Lifestyle Domain Holdings, Inc.
 vana
 
+// vanguard : 2015-09-03 The Vanguard Group, Inc.
+vanguard
+
 // vegas : 2014-01-16 Dot Vegas, Inc.
 vegas
 
 // ventures : 2013-08-27 Binky Lake, LLC
 ventures
 
+// verisign : 2015-08-13 VeriSign, Inc.
+verisign
+
 // versicherung : 2014-03-20 dotversicherung-registry GmbH
 versicherung
 
@@ -9535,18 +10330,27 @@ viajes
 // video : 2014-10-16
 video
 
+// vig : 2015-05-14 VIENNA INSURANCE GROUP AG Wiener Versicherung Gruppe
+vig
+
 // viking : 2015-04-02 Viking River Cruises (Bermuda) Ltd.
 viking
 
 // villas : 2013-12-05 New Sky, LLC
 villas
 
+// vin : 2015-06-18 Holly Shadow, LLC
+vin
+
 // vip : 2015-01-22 Minds + Machines Group Limited
 vip
 
 // virgin : 2014-09-25 Virgin Enterprises Limited
 virgin
 
+// visa : 2015-07-30 Visa Worldwide Pte. Limited
+visa
+
 // vision : 2013-12-05 Koko Station, LLC
 vision
 
@@ -9559,12 +10363,18 @@ vistaprint
 // viva : 2014-11-07 Saudi Telecom Company
 viva
 
+// vivo : 2015-07-31 Telefonica Brasil S.A.
+vivo
+
 // vlaanderen : 2014-02-06 DNS.be vzw
 vlaanderen
 
 // vodka : 2013-12-19 Top Level Domain Holdings Limited
 vodka
 
+// volkswagen : 2015-05-14 Volkswagen Group of America Inc.
+volkswagen
+
 // vote : 2013-11-21 Monolith Registry LLC
 vote
 
@@ -9583,6 +10393,9 @@ vuelos
 // wales : 2014-05-08 Nominet UK
 wales
 
+// walmart : 2015-07-31 Wal-Mart Stores, Inc.
+walmart
+
 // walter : 2014-11-13 Sandvik AB
 walter
 
@@ -9592,6 +10405,9 @@ wang
 // wanggou : 2014-12-18 Amazon EU S.à r.l.
 wanggou
 
+// warman : 2015-06-18 Weir Group IP Limited
+warman
+
 // watch : 2013-11-14 Sand Shadow, LLC
 watch
 
@@ -9607,6 +10423,9 @@ weatherchannel
 // webcam : 2014-01-23 dot Webcam Limited
 webcam
 
+// weber : 2015-06-04 Saint-Gobain Weber SA
+weber
+
 // website : 2014-04-03 DotWebsite Inc.
 website
 
@@ -9640,9 +10459,21 @@ win
 // windows : 2014-12-18 Microsoft Corporation
 windows
 
+// wine : 2015-06-18 June Station, LLC
+wine
+
+// winners : 2015-07-16 The TJX Companies, Inc.
+winners
+
 // wme : 2014-02-13 William Morris Endeavor Entertainment, LLC
 wme
 
+// wolterskluwer : 2015-08-06 Wolters Kluwer N.V.
+wolterskluwer
+
+// woodside : 2015-07-09 Woodside Petroleum Limited
+woodside
+
 // work : 2013-12-19 Top Level Domain Holdings Limited
 work
 
@@ -9652,6 +10483,9 @@ works
 // world : 2014-06-12 Bitter Fields, LLC
 world
 
+// wow : 2015-10-08 Amazon EU S.à r.l.
+wow
+
 // wtc : 2013-12-19 World Trade Centers Association, Inc.
 wtc
 
@@ -9664,6 +10498,9 @@ xbox
 // xerox : 2014-10-24 Xerox DNHC LLC
 xerox
 
+// xfinity : 2015-07-09 Comcast IP Holdings I, LLC
+xfinity
+
 // xihuan : 2015-01-08 QIHOO 360 TECHNOLOGY CO. LTD.
 xihuan
 
@@ -9694,6 +10531,10 @@ xn--3bst00m
 在线
 xn--3ds443g
 
+// xn--3oq18vl8pn36a : 2015-07-02 Volkswagen (China) Investment Co., Ltd.
+大众汽车
+xn--3oq18vl8pn36a
+
 // xn--3pxu8k : 2015-01-15 VeriSign Sarl
 点看
 xn--3pxu8k
@@ -9710,6 +10551,10 @@ xn--45q11c
 موقع
 xn--4gbrim
 
+// xn--4gq48lf9j : 2015-07-31 Wal-Mart Stores, Inc.
+一号店
+xn--4gq48lf9j
+
 // xn--55qw42g : 2013-11-08 China Organizational Name Administration Center
 公益
 xn--55qw42g
@@ -9718,6 +10563,10 @@ xn--55qw42g
 公司
 xn--55qx5d
 
+// xn--5su34j936bgsg : 2015-09-03 Shangri‐La International Hotel Management Limited
+香格里拉
+xn--5su34j936bgsg
+
 // xn--5tzm5g : 2014-12-22 Global Website TLD Asia Limited
 网站
 xn--5tzm5g
@@ -9782,7 +10631,7 @@ xn--cck2b3b
 삼성
 xn--cg4bki
 
-// xn--czr694b : 2014-01-16 HU YI GLOBAL INFORMATION RESOURCES (HOLDING) COMPANY.HONGKONG LIMITED
+// xn--czr694b : 2014-01-16 HU YI GLOBAL INFORMATION RESOURCES (HOLDING) COMPANY. HONGKONG LIMITED
 商标
 xn--czr694b
 
@@ -9834,6 +10683,10 @@ xn--fjq720a
 谷歌
 xn--flw351e
 
+// xn--fzys8d69uvgm : 2015-05-14 PCCW Enterprises Limited
+電訊盈科
+xn--fzys8d69uvgm
+
 // xn--g2xx48c : 2015-01-30 Minds + Machines Group Limited
 购物
 xn--g2xx48c
@@ -9842,6 +10695,10 @@ xn--g2xx48c
 クラウド
 xn--gckr3f0f
 
+// xn--gk3at1e : 2015-10-08 Amazon EU S.à r.l.
+通販
+xn--gk3at1e
+
 // xn--hxt814e : 2014-05-15 Zodiac Libra Limited
 网店
 xn--hxt814e
@@ -9886,6 +10743,14 @@ xn--kput3i
 ارامكو
 xn--mgba3a3ejt
 
+// xn--mgba7c0bbn0a : 2015-05-14 Crescent Holding GmbH
+العليان
+xn--mgba7c0bbn0a
+
+// xn--mgbaakc7dvf : 2015-09-03 Emirates Telecommunications Corporation (trading as Etisalat)
+اتصالات
+xn--mgbaakc7dvf
+
 // xn--mgbab2bd : 2013-10-31 CORE Association
 بازار
 xn--mgbab2bd
@@ -9894,6 +10759,10 @@ xn--mgbab2bd
 موبايلي
 xn--mgbb9fbpob
 
+// xn--mgbca7dzdo : 2015-07-30 Abu Dhabi Systems and Information Centre
+ابوظبي
+xn--mgbca7dzdo
+
 // xn--mgbt3dhd : 2014-09-04 Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti.
 همراه
 xn--mgbt3dhd
@@ -9990,6 +10859,10 @@ xn--vuq861b
 嘉里大酒店
 xn--w4r85el8fhu5dnra
 
+// xn--w4rs40l : 2015-07-30 Kerry Trading Co. Limited
+嘉里
+xn--w4rs40l
+
 // xn--xhq521b : 2013-11-14 Guangzhou YU Wei Information Technology Co., Ltd.
 广东
 xn--xhq521b
@@ -9998,6 +10871,9 @@ xn--xhq521b
 政务
 xn--zfr164b
 
+// xperia : 2015-05-14 Sony Mobile Communications AB
+xperia
+
 // xyz : 2013-12-05 XYZ.COM LLC
 xyz
 
@@ -10031,6 +10907,9 @@ youtube
 // yun : 2015-01-08 QIHOO 360 TECHNOLOGY CO. LTD.
 yun
 
+// zappos : 2015-06-25 Amazon EU S.à r.l.
+zappos
+
 // zara : 2014-11-07 Industria de Diseño Textil, S.A. (INDITEX, S.A.)
 zara
 
@@ -10040,6 +10919,9 @@ zero
 // zip : 2014-05-08 Charleston Road Registry Inc.
 zip
 
+// zippo : 2015-07-02 Zadco Company
+zippo
+
 // zone : 2013-11-14 Outer Falls, LLC
 zone
 
@@ -10083,26 +10965,22 @@ elasticbeanstalk.com
 elb.amazonaws.com
 
 // Amazon S3 : https://aws.amazon.com/s3/
-// Submitted by Courtney Eckhardt <coec@amazon.com> 2013-03-22
+// Submitted by Eric Kinolik <kilo@amazon.com> 2015-04-08
 s3.amazonaws.com
-s3-us-west-2.amazonaws.com
-s3-us-west-1.amazonaws.com
-s3-eu-west-1.amazonaws.com
+s3-ap-northeast-1.amazonaws.com
 s3-ap-southeast-1.amazonaws.com
 s3-ap-southeast-2.amazonaws.com
-s3-ap-northeast-1.amazonaws.com
+s3-external-1.amazonaws.com
+s3-external-2.amazonaws.com
+s3-fips-us-gov-west-1.amazonaws.com
+s3-eu-central-1.amazonaws.com
+s3-eu-west-1.amazonaws.com
 s3-sa-east-1.amazonaws.com
 s3-us-gov-west-1.amazonaws.com
-s3-fips-us-gov-west-1.amazonaws.com
-s3-website-us-east-1.amazonaws.com
-s3-website-us-west-2.amazonaws.com
-s3-website-us-west-1.amazonaws.com
-s3-website-eu-west-1.amazonaws.com
-s3-website-ap-southeast-1.amazonaws.com
-s3-website-ap-southeast-2.amazonaws.com
-s3-website-ap-northeast-1.amazonaws.com
-s3-website-sa-east-1.amazonaws.com
-s3-website-us-gov-west-1.amazonaws.com
+s3-us-west-1.amazonaws.com
+s3-us-west-2.amazonaws.com
+s3.cn-north-1.amazonaws.com.cn
+s3.eu-central-1.amazonaws.com
 
 // BetaInABox
 // Submitted by adrian@betainabox.com 2012-09-13
@@ -10170,6 +11048,14 @@ cloudcontrolapp.com
 // co.ca : http://registry.co.ca/
 co.ca
 
+// CDN77.com : http://www.cdn77.com
+// Submitted by Jan Krpes <jan.krpes@cdn77.com> 2015-07-13
+c.cdn77.org
+cdn77-ssl.net
+r.cdn77.net
+rsc.cdn77.org
+ssl.origin.cdn77-secure.org
+
 // CoDNS B.V.
 co.nl
 co.no
@@ -10186,6 +11072,10 @@ cupcake.is
 // Submitted by Andrew Farmer <andrew.farmer@dreamhost.com> 2012-10-02
 dreamhosters.com
 
+// DuckDNS : http://www.duckdns.org/
+// Submitted by Richard Harper <richard@duckdns.org> 2015-05-17
+duckdns.org
+
 // DynDNS.com : http://www.dyndns.com/services/dns/dyndns/
 dyndns-at-home.com
 dyndns-at-work.com
@@ -10560,21 +11450,37 @@ ro.com
 // Submitted by Eduardo Vela <evn@google.com> 2014-12-19
 appspot.com
 blogspot.ae
+blogspot.al
+blogspot.am
+blogspot.ba
 blogspot.be
+blogspot.bg
 blogspot.bj
 blogspot.ca
 blogspot.cf
 blogspot.ch
+blogspot.cl
 blogspot.co.at
+blogspot.co.id
 blogspot.co.il
+blogspot.co.ke
 blogspot.co.nz
 blogspot.co.uk
+blogspot.co.za
 blogspot.com
 blogspot.com.ar
 blogspot.com.au
 blogspot.com.br
+blogspot.com.by
+blogspot.com.co
+blogspot.com.cy
+blogspot.com.ee
+blogspot.com.eg
 blogspot.com.es
+blogspot.com.mt
+blogspot.com.ng
 blogspot.com.tr
+blogspot.com.uy
 blogspot.cv
 blogspot.cz
 blogspot.de
@@ -10583,30 +11489,46 @@ blogspot.fi
 blogspot.fr
 blogspot.gr
 blogspot.hk
+blogspot.hr
 blogspot.hu
 blogspot.ie
 blogspot.in
+blogspot.is
 blogspot.it
 blogspot.jp
 blogspot.kr
+blogspot.li
+blogspot.lt
+blogspot.lu
+blogspot.md
+blogspot.mk
 blogspot.mr
 blogspot.mx
+blogspot.my
 blogspot.nl
 blogspot.no
+blogspot.pe
 blogspot.pt
+blogspot.qa
 blogspot.re
 blogspot.ro
+blogspot.rs
 blogspot.ru
 blogspot.se
 blogspot.sg
+blogspot.si
 blogspot.sk
+blogspot.sn
 blogspot.td
 blogspot.tw
+blogspot.ug
+blogspot.vn
 codespot.com
 googleapis.com
 googlecode.com
 pagespeedmobilizer.com
 withgoogle.com
+withyoutube.com
 
 // Heroku : https://www.heroku.com/
 // Submitted by Tom Maher <tmaher@heroku.com> 2013-05-02
@@ -10630,6 +11552,10 @@ azurewebsites.net
 azure-mobile.net
 cloudapp.net
 
+// Mozilla Foundation : https://mozilla.org/
+// Submited by glob <glob@mozilla.com> 2015-07-06
+bmoattachments.org
+
 // Neustar Inc.
 // Submitted by Trung Tran <Trung.Tran@neustar.biz> 2015-04-23
 4u.com
@@ -10662,14 +11588,33 @@ poznan.pl
 wroc.pl
 zakopane.pl
 
+// Pantheon Systems, Inc. : https://pantheon.io/
+// Submitted by Gary Dylina <gary@pantheon.io> 2015-09-14
+pantheon.io
+gotpantheon.com
+
 // priv.at : http://www.nic.priv.at/
 // Submitted by registry <lendl@nic.at> 2008-06-09
 priv.at
 
+// QA2
+// Submitted by Daniel Dent (https://www.danieldent.com/) 2015-07-16
+qa2.com
+
 // Red Hat, Inc. OpenShift : https://openshift.redhat.com/
 // Submitted by Tim Kramer <tkramer@rhcloud.com> 2012-10-24
 rhcloud.com
 
+// Sandstorm Development Group, Inc. : https://sandcats.io/
+// Submitted by Asheesh Laroia <asheesh@sandstorm.io> 2015-07-21
+sandcats.io
+
+// Service Online LLC : http://drs.ua/
+// Submitted by Serhii Bulakh <support@drs.ua> 2015-07-30
+biz.ua
+co.ua
+pp.ua
+
 // SinaAppEngine : http://sae.sina.com.cn/
 // Submitted by SinaAppEngine <saesupport@sinacloud.com> 2015-02-02
 sinaapp.com
index b96a7af4547ab6a5b57d177642059f96b30b0604..4be03bb7e04af25bab313a20fef5911682583a1b 100644 (file)
@@ -115,9 +115,13 @@ config service "myddns"
 #      option update_script   ""
 
        ###########
-       # You must specify your domain/host name, your username and your password
-       # as you get from you DDNS provider. Keep an eye on providers help pages.
+       # Keep an eye on providers help pages.
        #
+       # FQDN of ONE of your defined host at DDNS provider
+       # REQUIRED to verify what the current IP at DNS using nslookup/host command
+       # default: none
+       option lookup_host ""
+
        # Your DNS name / replace [DOMAIN] in update_url
        # default: none
        option domain ""
@@ -126,10 +130,21 @@ config service "myddns"
        # default: none
        option username ""
 
-       # Password of your DDNS service account / replace [PASSWORD] in update_url
+       # Password of your DDNS service account / replace [PASSWORD] in update url
        # default: none
        option password ""
 
+       ###########
+       # Optional parameters for use inside update_url
+       #
+       # parameter that will be urlencoded before replacement of [PARAMENC] inside update url
+       # default: none
+       option param_enc ""
+
+       # parameter that repace [PARAMOPT] inside update url
+       # default: none
+       option param_opt ""
+
        ###########
        # use HTTPS for secure communication with you DDNS provider
        # personally found some providers having problems when not sending
index 1799d229f15f12d8ca90eff2b3b209d33719d15a..00b51cbd2ec894bbd719b8cf5ba0f715877015e3 100644 (file)
 #
 # tested with spdns.de
 local __URL="http://[USERNAME]:[PASSWORD]@update.spdns.de/nic/update?hostname=[DOMAIN]&myip=[IP]"
-# inside url we need username and password
+# inside url we need domain, username and password
+[ -z "$domain" ]   && write_log 14 "Service section not configured correctly! Missing 'domain'"
 [ -z "$username" ] && write_log 14 "Service section not configured correctly! Missing 'username'"
 [ -z "$password" ] && write_log 14 "Service section not configured correctly! Missing 'password'"
 
 # do replaces in URL
-__URL=$(echo $__URL | sed -e "s#\[USERNAME\]#$URL_USER#g" -e "s#\[PASSWORD\]#$URL_PASS#g" \
-                              -e "s#\[DOMAIN\]#$domain#g" -e "s#\[IP\]#$__IP#g")
+__URL=$(echo $__URL |  | sed -e "s#\[USERNAME\]#$URL_USER#g" -e "s#\[PASSWORD\]#$URL_PASS#g" \
+                            -e "s#\[PARAMENC\]#$URL_PENC#g" -e "s#\[PARAMOPT\]#$param_opt#g" \
+                            -e "s#\[DOMAIN\]#$domain#g"     -e "s#\[IP\]#$__IP#g")
 [ $use_https -ne 0 ] && __URL=$(echo $__URL | sed -e 's#^http:#https:#')
 
 do_transfer "$__URL" || return 1
@@ -34,6 +36,6 @@ write_log 7 "DDNS Provider answered:\n$(cat $DATFILE)"
 # analyse provider answers
 # "good [IP_ADR]"      = successful
 # "nochg [IP_ADR]"     = no change but OK
-grep -E "good|nochg" $DATFILE >/dev/null 2>&1
+grep -i -E "good|nochg" $DATFILE >/dev/null 2>&1
 return $?      # "0" if "good" or "nochg" found
 
index 10a41b91e942638b8d400132c447fd96e7a42677..fac9737e0d54f123d033b032c2ae587e37588e0c 100644 (file)
@@ -8,15 +8,16 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=e2guardian
-PKG_VERSION:=3.1.2
+PKG_VERSION:=3.2.0
 PKG_RELEASE:=1
 
 PKG_LICENSE:=GPL-2.0
 PKG_MAINTAINER:=Luka Perkov <luka@openwrt.org>
 
 PKG_SOURCE:=v$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://github.com/e2guardian/e2guardian/archive/
-PKG_MD5SUM:=85cfa16074737dbc3935f93dfcded285
+PKG_SOURCE_URL:=https://github.com/$(PKG_NAME)/$(PKG_NAME)/archive/
+PKG_MD5SUM:=70613669ef00a480e3ebb62e12427cf4
+
 PKG_FIXUP:=autoreconf
 PKG_BUILD_PARALLEL:=1
 PKG_INSTALL:=1
@@ -53,6 +54,7 @@ CONFIGURE_ARGS += \
                --enable-sslmitm=no
 
 define Build/Configure
+       ( cd $(PKG_BUILD_DIR); ./autogen.sh )
        $(call Build/Configure/Default,$CONFIGURE_ARGS)
 endef
 
index 1a0d832b6f9f38d9e70dc74c007093d3ed62a32b..110765407202755fb266466b979ec18a22665b1b 100644 (file)
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=ethtool
-PKG_VERSION:=4.0
+PKG_VERSION:=4.2
 PKG_RELEASE:=1
 
 PKG_MAINTAINER:=Matthias Schiffer <mschiffer@universe-factory.net>
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@KERNEL/software/network/ethtool
-PKG_MD5SUM:=37c77b02556255e4122c3636f75a8646
+PKG_MD5SUM:=8433e71a256678d859ecc264132063c5
 
 PKG_LICENSE:=GPL-2.0
 PKG_LICENSE_FILES:=COPYING
diff --git a/net/fossil/Makefile b/net/fossil/Makefile
new file mode 100644 (file)
index 0000000..3faf458
--- /dev/null
@@ -0,0 +1,72 @@
+#
+# Copyright (C) 2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=fossil
+PKG_VERSION:=1.34
+PKG_RELEASE:=1
+
+PKG_LICENSE:=BSD-2-Clause
+PKG_MAINTAINER:=Luka Perkov <luka@openwrt.org>
+
+PKG_SOURCE:=$(PKG_NAME)-src-${PKG_VERSION}.tar.gz
+PKG_SOURCE_URL:=http://www.fossil-scm.org/download/
+PKG_MD5SUM:=3d5a7da5c506a47784942236a788b29b
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-src-$(PKG_VERSION)
+
+PKG_INSTALL:=1
+PKG_BUILD_PARALLEL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/fossil
+  SECTION:=net
+  CATEGORY:=Network
+  SUBMENU:=Version Control Systems
+  TITLE:=Simple distributed software configuration management
+  URL:=http://www.fossil-scm.org
+  DEPENDS:=+zlib
+endef
+
+define Package/fossil/description
+  Fossil is a distributed version control system, bug tracking system
+  and wiki software server for use in software development.
+endef
+
+MAKE_FLAGS := \
+       TCC="$(TARGET_CC)" \
+       CFLAGS="$(TARGET_CFLAGS) -I$(STAGING_DIR)/usr/include -DFOSSIL_ENABLE_JSON" \
+       LDFLAGS="$(TARGET_LDFLAGS) -Wl,-rpath=$(TOOLCHAIN_DIR)/lib -L$(STAGING_DIR)/lib -L$(STAGING_DIR)/usr/lib" \
+
+define Build/Configure
+endef
+
+define Build/Compile
+       $(call Build/Compile/Default, \
+               -f Makefile.classic $(MAKE_FLAGS) all \
+       )
+endef
+
+define Build/Install
+endef
+
+define Package/fossil/conffiles
+/etc/config/fossil
+endef
+
+define Package/fossil/install
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(PKG_NAME) $(1)/usr/bin/
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_BIN) ./files/fossil.init $(1)/etc/init.d/fossil
+       $(INSTALL_DIR) $(1)/etc/config
+       $(INSTALL_CONF) ./files/fossil.config $(1)/etc/config/fossil
+endef
+
+$(eval $(call BuildPackage,fossil))
diff --git a/net/fossil/files/fossil.config b/net/fossil/files/fossil.config
new file mode 100644 (file)
index 0000000..f35876c
--- /dev/null
@@ -0,0 +1,5 @@
+config server 'dummy'
+       option repository '/tmp/fossil/dummy'
+       option port 8008
+       option localhost 0
+       option create 1
diff --git a/net/fossil/files/fossil.init b/net/fossil/files/fossil.init
new file mode 100644 (file)
index 0000000..f5a17b9
--- /dev/null
@@ -0,0 +1,54 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2015 OpenWrt.org
+
+START=90
+USE_PROCD=1
+
+start_instance() {
+       local cfg="$1"
+
+       config_get repository "$cfg" repository
+       if [ -z "$repository" ]; then
+               echo "repository is not defined in $1, skipping"
+               return
+       fi
+
+       config_get_bool create "$cfg" create 0
+
+       if [ "$create" -eq 0 -a ! -f "$repository" ]; then
+               echo "in $1 create option is '$create' and repository '$repository' is not a regular file, skipping"
+               return
+       fi
+
+       if [ "$create" -eq 1 -a ! -d `dirname $repository` ]; then
+               mkdir -p `dirname $repository`
+               if [ "$?" -ne 0 ]; then
+                       echo "could not create directory, skipping"
+                       return
+               fi
+       fi
+
+       config_get port "$cfg" port ""
+       if [ -z "$port" ]; then
+               echo "port is not defined in $1, skipping"
+               return
+       fi
+
+       config_get_bool debug "$cfg" debug 0
+       config_get_bool localhost "$cfg" localhost 1
+       config_get_bool scgi "$cfg" scgi 0
+
+       procd_open_instance
+       procd_set_param command /usr/bin/fossil server "$repository" --port $port
+       [ "$debug" -eq 1 ] && procd_append_param command --th-trace
+       [ "$create" -eq 1 ] && procd_append_param command --user root --create
+       [ "$localhost" -eq 1 ] && procd_append_param command --localhost
+       [ "$scgi" -eq 1 ] && procd_append_param command --scgi
+       procd_set_param respawn
+       procd_close_instance
+}
+
+start_service() {
+       config_load 'fossil'
+       config_foreach start_instance 'server'
+}
diff --git a/net/fossil/patches/001-no_https.patch b/net/fossil/patches/001-no_https.patch
new file mode 100644 (file)
index 0000000..cd83ffa
--- /dev/null
@@ -0,0 +1,22 @@
+--- a/Makefile.classic
++++ b/Makefile.classic
+@@ -41,9 +41,6 @@
+ # FOSSIL_ENABLE_MINIZ = 1
+ # TCC += -DFOSSIL_ENABLE_MINIZ
+-# To add support for HTTPS
+-TCC += -DFOSSIL_ENABLE_SSL
+-
+ #### We sometimes add the -static option here so that we can build a
+ #    static executable that will run in a chroot jail.
+ #LIB = -static
+@@ -60,9 +57,6 @@
+ # If using zlib:
+ LIB += $(ZLIB_LIB.$(FOSSIL_ENABLE_MINIZ)) $(LDFLAGS)
+-# If using HTTPS:
+-LIB += -lcrypto -lssl
+-
+ #### Tcl shell for use in running the fossil testsuite.  If you do not
+ #    care about testing the end result, this can be blank.
+ #
index 27f75c6ef0bfaba3933fd961d0f7776fffa31a51..e529a889185c3c08c496dd18181df55426469ae4 100644 (file)
@@ -1,22 +1,27 @@
 #!/bin/sh /etc/rc.common
-# Copyright (C) 2006 OpenWrt.org
+#
+# Copyright (C) 2006-2015 OpenWrt.org
+#
+
+USE_PROCD=1
+
 START=50
 
+NAME=radiusd
+PROG=/usr/sbin/radiusd
 DEFAULT=/etc/default/radiusd
-LOG_D=/var/log
-RUN_D=/var/run
-PID_F=$RUN_D/radiusd.pid
-RADACCT_D=/var/db/radacct
-IPADDR=$(ifconfig br-lan | sed -n 's/.*dr:\(.*\)Bc.*/\1/p')
 
-start() {
+start_service()
+{
        [ -f $DEFAULT ] && . $DEFAULT
-       mkdir -p $LOG_D
-       mkdir -p $RUN_D
-       mkdir -p $RADACCT_D
-       radiusd -i $IPADDR -p 1812,1813 $OPTIONS
-}
+       mkdir -p /var/log
+       mkdir -p /var/run
+       mkdir -p /var/db/radacct
 
-stop() {
-       [ -f $PID_F ] && kill $(cat $PID_F)
+       procd_open_instance
+       procd_set_param command $PROG
+       [ -n "$IPADDR" ] && procd_append_param command -i $IPADDR
+       [ -n "$OPTIONS" ] && procd_append_param command $OPTIONS
+       procd_set_param respawn
+       procd_close_instance
 }
index 13c2681f551665cab96c454442d1a6385861911b..2114cc9aa6192b7efc975a71954b335ac6441db4 100644 (file)
@@ -87,7 +87,7 @@ define Package/libfko/description
 endef
 
 
-ifeq ($(CONFIG_FWKNOPD_GPG),n)
+ifneq ($(CONFIG_FWKNOPD_GPG),y)
        CONFIGURE_ARGS += --without-gpgme 
 endif
 
index 4c86493de98cfdc67293ff8f6aef3ab140dbd060..97763121ac2577d355a893eaf48aeca33ca82083 100644 (file)
@@ -36,7 +36,7 @@ reload()
 gen_confs()
 {
        [ -f /tmp/access.conf.tmp ] && rm /tmp/access.conf.tmp
-       if [`uci get fwknopd.@access[0].PCAP_INTF` = ""]
+       if [ "`uci get fwknopd.@config[0].PCAP_INTF`" = ""]
        then
                . /lib/functions/network.sh
                network_get_physdev device wan
index 89ace0ba8eb525fb9659f5ac143858468ebee00f..da3509d7c5adfeaf3096eb8cf063f6e7319e2cd1 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=git
-PKG_VERSION:=2.4.6
+PKG_VERSION:=2.6.3
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@KERNEL/software/scm/git/
-PKG_MD5SUM:=fb2c5214f5dc90bad0a2abdd4c425df6
+PKG_MD5SUM:=5a6375349c3f13c8dbbabfc327bae429
 
 PKG_INSTALL:=1
 PKG_BUILD_PARALLEL:=1
@@ -83,7 +83,7 @@ endef
 
 define Package/git/install
        $(INSTALL_DIR) $(1)/usr/bin
-       $(CP) $(PKG_INSTALL_DIR)/usr/bin/git   $(1)/usr/bin
+       $(CP) $(PKG_INSTALL_DIR)/usr/bin/git $(1)/usr/bin
        $(RM) $(PKG_INSTALL_DIR)/usr/bin/git-cvsserver
        $(CP) $(PKG_INSTALL_DIR)/usr/bin/git-* $(1)/usr/bin
        $(INSTALL_DIR) $(1)/usr/lib/git-core
@@ -98,6 +98,7 @@ define Package/git/install
                -cf - \
                usr/lib/git-core \
        ) | ( cd $(1); $(TAR) -xf - )
+       $(INSTALL_DIR) $(1)/usr/share/git-core/templates
 endef
 
 define Package/git-http/install
index b4920a5b73f129f00ea28e1451e917b5faa4af97..9687bca7f8592c00ea0ab8ee8bccbb8d3c389d52 100644 (file)
@@ -1,6 +1,6 @@
 --- a/Makefile
 +++ b/Makefile
-@@ -549,16 +549,7 @@ EXTRA_PROGRAMS =
+@@ -557,16 +557,7 @@ EXTRA_PROGRAMS =
  # ... and all the rest that could be moved out of bindir to gitexecdir
  PROGRAMS += $(EXTRA_PROGRAMS)
  
@@ -17,9 +17,9 @@
  
  # Binary suffix, set to .exe for Windows builds
  X =
-@@ -907,6 +898,11 @@ BUILTIN_OBJS += builtin/verify-commit.o
- BUILTIN_OBJS += builtin/verify-pack.o
+@@ -923,6 +914,11 @@ BUILTIN_OBJS += builtin/verify-pack.o
  BUILTIN_OBJS += builtin/verify-tag.o
+ BUILTIN_OBJS += builtin/worktree.o
  BUILTIN_OBJS += builtin/write-tree.o
 +BUILTIN_OBJS += builtin/daemon.o
 +BUILTIN_OBJS += builtin/fast-import.o
@@ -29,7 +29,7 @@
  
  GITLIBS = $(LIB_FILE) $(XDIFF_LIB)
  EXTLIBS =
-@@ -1089,7 +1085,7 @@ endif
+@@ -1106,7 +1102,7 @@ endif
  EXTLIBS += -lz
  
  ifndef NO_OPENSSL
@@ -38,7 +38,7 @@
        ifdef OPENSSLDIR
                BASIC_CFLAGS += -I$(OPENSSLDIR)/include
                OPENSSL_LINK = -L$(OPENSSLDIR)/$(lib) $(CC_LD_DYNPATH)$(OPENSSLDIR)/$(lib)
-@@ -1956,10 +1952,6 @@ endif
+@@ -1977,10 +1973,6 @@ endif
  git-%$X: %.o GIT-LDFLAGS $(GITLIBS)
        $(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) $(LIBS)
  
@@ -48,8 +48,8 @@
 -
  git-http-fetch$X: http.o http-walker.o http-fetch.o GIT-LDFLAGS $(GITLIBS)
        $(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \
-               $(LIBS) $(CURL_LIBCURL)
-@@ -2279,10 +2271,11 @@ endif
+               $(CURL_LIBCURL) $(LIBS)
+@@ -2300,10 +2292,11 @@ endif
        bindir=$$(cd '$(DESTDIR_SQ)$(bindir_SQ)' && pwd) && \
        execdir=$$(cd '$(DESTDIR_SQ)$(gitexec_instdir_SQ)' && pwd) && \
        { test "$$bindir/" = "$$execdir/" || \
@@ -64,7 +64,7 @@
        } && \
 --- a/builtin.h
 +++ b/builtin.h
-@@ -138,5 +138,10 @@ extern int cmd_verify_pack(int argc, con
+@@ -141,5 +141,10 @@ extern int cmd_verify_pack(int argc, con
  extern int cmd_show_ref(int argc, const char **argv, const char *prefix);
  extern int cmd_pack_refs(int argc, const char **argv, const char *prefix);
  extern int cmd_replace(int argc, const char **argv, const char *prefix);
@@ -97,7 +97,7 @@
 +#include "../upload-pack.c"
 --- a/daemon.c
 +++ b/daemon.c
-@@ -1192,7 +1192,7 @@ static int serve(struct string_list *lis
+@@ -1184,7 +1184,7 @@ static int serve(struct string_list *lis
        return service_loop(&socklist);
  }
  
  {
        int listen_port = 0;
        struct string_list listen_addr = STRING_LIST_INIT_NODUP;
-@@ -1388,12 +1388,13 @@ int main(int argc, char **argv)
-               store_pid(pid_file);
+@@ -1380,12 +1380,13 @@ int main(int argc, char **argv)
+               write_file(pid_file, "%"PRIuMAX, (uintmax_t) getpid());
  
        /* prepare argv for serving-processes */
 -      cld_argv = xmalloc(sizeof (char *) * (argc + 2));
  }
 --- a/fast-import.c
 +++ b/fast-import.c
-@@ -3351,7 +3351,7 @@ static void parse_argv(void)
+@@ -3380,7 +3380,7 @@ static void parse_argv(void)
                read_marks();
  }
  
  {
        int status, help;
        struct stat st;
-@@ -395,6 +395,7 @@ static struct cmd_struct commands[] = {
+@@ -396,6 +396,7 @@ static struct cmd_struct commands[] = {
        { "config", cmd_config, RUN_SETUP_GENTLY },
        { "count-objects", cmd_count_objects, RUN_SETUP },
        { "credential", cmd_credential, RUN_SETUP_GENTLY },
        { "describe", cmd_describe, RUN_SETUP },
        { "diff", cmd_diff },
        { "diff-files", cmd_diff_files, RUN_SETUP | NEED_WORK_TREE },
-@@ -413,6 +414,7 @@ static struct cmd_struct commands[] = {
+@@ -414,6 +415,7 @@ static struct cmd_struct commands[] = {
        { "grep", cmd_grep, RUN_SETUP_GENTLY },
        { "hash-object", cmd_hash_object },
        { "help", cmd_help },
        { "index-pack", cmd_index_pack, RUN_SETUP_GENTLY },
        { "init", cmd_init_db, NO_SETUP },
        { "init-db", cmd_init_db, NO_SETUP },
-@@ -461,6 +463,7 @@ static struct cmd_struct commands[] = {
+@@ -463,6 +465,7 @@ static struct cmd_struct commands[] = {
        { "revert", cmd_revert, RUN_SETUP | NEED_WORK_TREE },
        { "rm", cmd_rm, RUN_SETUP },
        { "send-pack", cmd_send_pack, RUN_SETUP },
        { "shortlog", cmd_shortlog, RUN_SETUP_GENTLY | USE_PAGER },
        { "show", cmd_show, RUN_SETUP },
        { "show-branch", cmd_show_branch, RUN_SETUP },
-@@ -477,6 +480,7 @@ static struct cmd_struct commands[] = {
+@@ -479,6 +482,7 @@ static struct cmd_struct commands[] = {
        { "update-server-info", cmd_update_server_info, RUN_SETUP },
        { "upload-archive", cmd_upload_archive },
        { "upload-archive--writer", cmd_upload_archive_writer },
        { "verify-pack", cmd_verify_pack },
 --- a/imap-send.c
 +++ b/imap-send.c
-@@ -1492,7 +1492,7 @@ static int curl_append_msgs_to_imap(stru
+@@ -1496,7 +1496,7 @@ static int curl_append_msgs_to_imap(stru
  }
  #endif
  
        const char **user_argv;
 --- a/upload-pack.c
 +++ b/upload-pack.c
-@@ -797,7 +797,7 @@ static int upload_pack_config(const char
+@@ -819,7 +819,7 @@ static int upload_pack_config(const char
        return parse_hide_refs_config(var, value, "uploadpack");
  }
  
index 0ccfaecd02084837ebd6eef50be55ae53002f319..8a8ce289d93987d34908a606e8cd6362813bd74b 100644 (file)
@@ -1,6 +1,6 @@
 --- a/configure.ac
 +++ b/configure.ac
-@@ -844,7 +844,8 @@ AC_RUN_IFELSE(
+@@ -867,7 +867,8 @@ AC_RUN_IFELSE(
                FILE *f = fopen(".", "r");
                return f && fread(&c, 1, 1, f)]])],
        [ac_cv_fread_reads_directories=no],
@@ -10,7 +10,7 @@
  ])
  if test $ac_cv_fread_reads_directories = yes; then
        FREAD_READS_DIRECTORIES=UnfortunatelyYes
-@@ -878,7 +879,8 @@ AC_RUN_IFELSE(
+@@ -901,7 +902,8 @@ AC_RUN_IFELSE(
                  if (snprintf(buf, 3, "%s", "12345") != 5
                      || strcmp(buf, "12")) return 1]])],
        [ac_cv_snprintf_returns_bogus=no],
@@ -20,7 +20,7 @@
  ])
  if test $ac_cv_snprintf_returns_bogus = yes; then
        SNPRINTF_RETURNS_BOGUS=UnfortunatelyYes
-@@ -901,7 +903,8 @@ yippeeyeswehaveit
+@@ -924,7 +926,8 @@ yippeeyeswehaveit
  #endif
  ]),
        [ac_cv_sane_mode_bits=yes],
index e96330c0ef39948814ba79f12e779a80c3a820c0..5b5f472a231c487ed45461e51885e14796518ec7 100644 (file)
@@ -1,8 +1,8 @@
 --- a/Makefile
 +++ b/Makefile
-@@ -1058,7 +1058,7 @@ else
+@@ -1074,7 +1074,7 @@ else
        endif
-       curl_check := $(shell (echo 072200; curl-config --vernum | sed -e '/^70[BC]/s/^/0/') 2>/dev/null | sort -r | sed -ne 2p)
+       curl_check := $(shell (echo 072200; $(CURL_CONFIG) --vernum | sed -e '/^70[BC]/s/^/0/') 2>/dev/null | sort -r | sed -ne 2p)
        ifeq "$(curl_check)" "072200"
 -              USE_CURL_FOR_IMAP_SEND = YesPlease
 +#             USE_CURL_FOR_IMAP_SEND = YesPlease
index 0fdb4fa8cd8b7bb2d29ca3c444f1acb4fb8dd230..1a304fca929ac27ccecc04a14c5b6a56ae8caaaa 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=gnunet
-PKG_SOURCE_VERSION:=36242
+PKG_SOURCE_VERSION:=36366
 PKG_VERSION:=0.10.1-svn$(PKG_SOURCE_VERSION)
 PKG_RELEASE:=1
 
@@ -26,12 +26,15 @@ PKG_LICENSE_FILES:=COPYING
 PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
 
 PKG_BUILD_PARALLEL:=1
-PKG_FIXUP:=autoreconf
+PKG_FIXUP:=gettext-version
 PKG_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/nls.mk
 
 CONFIGURE_ARGS+= \
+       --with-libiconv-prefix="$(ICONV_PREFIX)" \
+       --with-libintl-prefix="$(INTL_PREFIX)" \
        --with-ltdl \
        $(if $(CONFIG_PACKAGE_$(PKG_NAME)-mysql),--with-mysql="$(STAGING_DIR)/usr",--without-mysql) \
        $(if $(CONFIG_PACKAGE_$(PKG_NAME)-pgsql),--with-postgresql="$(STAGING_DIR)/usr/bin/pg_config",--without-postgresql) \
@@ -56,7 +59,7 @@ define Package/gnunet
 $(call Package/gnunet/Default)
   TITLE+= - a peer-to-peer framework focusing on security
   DEPENDS:=+ca-certificates +libgnurl +libgnutls +libidn +libltdl \
-           +libmicrohttpd +libunistring +librt
+           +libmicrohttpd +libunistring +librt $(ICONV_DEPENDS) $(INTL_DEPENDS)
   USERID:=gnunet=400:gnunet=400
   MENU:=1
 endef
index 40d6411415ce45f055dde0bed3e6fa5624ede3c7..c5e1948df3efcfcca97d2bd1d78893889a2f5e94 100644 (file)
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=haproxy
 PKG_VERSION:=1.5.14
-PKG_RELEASE:=04
+PKG_RELEASE:=16
 PKG_SOURCE:=haproxy-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://haproxy.1wt.eu/download/1.5/src/
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
diff --git a/net/haproxy/patches/0005-BUG-MINOR-http-sample-gmtime-localtime-can-fail.patch b/net/haproxy/patches/0005-BUG-MINOR-http-sample-gmtime-localtime-can-fail.patch
new file mode 100644 (file)
index 0000000..23012ba
--- /dev/null
@@ -0,0 +1,33 @@
+From 955587271031d66e9b7a768e3bb18dae00b60cc6 Mon Sep 17 00:00:00 2001
+From: Thierry FOURNIER <tfournier@arpalert.org>
+Date: Wed, 8 Jul 2015 00:15:20 +0200
+Subject: [PATCH 05/13] BUG/MINOR: http/sample: gmtime/localtime can fail
+
+The man said that gmtime() and localtime() can return a NULL value.
+This is not tested. It appears that all the values of a 32 bit integer
+are valid, but it is better to check the return of these functions.
+
+However, if the integer move from 32 bits to 64 bits, some 64 values
+can be unsupported.
+(cherry picked from commit fac9ccfb705702f211f99e67d5f5d5129002086a)
+[wt: we only have sample_conv_date() in 1.5]
+---
+ src/proto_http.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/proto_http.c b/src/proto_http.c
+index 5db64b5..02dc42b 100644
+--- a/src/proto_http.c
++++ b/src/proto_http.c
+@@ -11249,6 +11249,8 @@ static int sample_conv_http_date(const struct arg *args, struct sample *smp)
+               curr_date += args[0].data.sint;
+       tm = gmtime(&curr_date);
++      if (!tm)
++              return 0;
+       temp = get_trash_chunk();
+       temp->len = snprintf(temp->str, temp->size - temp->len,
+-- 
+2.4.6
+
diff --git a/net/haproxy/patches/0006-DOC-typo-in-redirect-302-code-meaning.patch b/net/haproxy/patches/0006-DOC-typo-in-redirect-302-code-meaning.patch
new file mode 100644 (file)
index 0000000..9b96280
--- /dev/null
@@ -0,0 +1,27 @@
+From 6c7351bdd0778bc171a2b54faed058eadc8c9d0d Mon Sep 17 00:00:00 2001
+From: Baptiste Assmann <bedis9@gmail.com>
+Date: Mon, 3 Aug 2015 11:42:50 +0200
+Subject: [PATCH 06/13] DOC: typo in 'redirect', 302 code meaning
+
+302 means a temprary move, not a permanent one
+(cherry picked from commit ea849c0cca63b1b56c9c36f9c3504caa5e826816)
+---
+ doc/configuration.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/doc/configuration.txt b/doc/configuration.txt
+index 64697a4..e8d8b2a 100644
+--- a/doc/configuration.txt
++++ b/doc/configuration.txt
+@@ -5443,7 +5443,7 @@ redirect scheme   <sch> [code <code>] <option> [{if | unless} <condition>]
+               is desired. Only codes 301, 302, 303, 307 and 308 are supported,
+               with 302 used by default if no code is specified. 301 means
+               "Moved permanently", and a browser may cache the Location. 302
+-              means "Moved permanently" and means that the browser should not
++              means "Moved temporarily" and means that the browser should not
+               cache the redirection. 303 is equivalent to 302 except that the
+               browser will fetch the location with a GET method. 307 is just
+               like 302 but makes it clear that the same method must be reused.
+-- 
+2.4.6
+
diff --git a/net/haproxy/patches/0007-DOC-mention-that-ms-is-left-padded-with-zeroes.patch b/net/haproxy/patches/0007-DOC-mention-that-ms-is-left-padded-with-zeroes.patch
new file mode 100644 (file)
index 0000000..1cad791
--- /dev/null
@@ -0,0 +1,27 @@
+From c3453d53f2862b22d8c8e7d2399dfc38ec966aa4 Mon Sep 17 00:00:00 2001
+From: Willy Tarreau <w@1wt.eu>
+Date: Sun, 9 Aug 2015 10:56:35 +0200
+Subject: [PATCH 07/13] DOC: mention that %ms is left-padded with zeroes.
+
+That's important to emit logs.
+(cherry picked from commit 812c88ec126e8fc4fc0f7853f265594d03c63956)
+---
+ doc/configuration.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/doc/configuration.txt b/doc/configuration.txt
+index e8d8b2a..1d95b5b 100644
+--- a/doc/configuration.txt
++++ b/doc/configuration.txt
+@@ -12381,7 +12381,7 @@ Please refer to the table below for currently defined variables :
+   |   | %hrl | captured_request_headers CLF style            | string list |
+   |   | %hs  | captured_response_headers default style       | string      |
+   |   | %hsl | captured_response_headers CLF style           | string list |
+-  |   | %ms  | accept date milliseconds                      | numeric     |
++  |   | %ms  | accept date milliseconds (left-padded with 0) | numeric     |
+   |   | %pid | PID                                           | numeric     |
+   | H | %r   | http_request                                  | string      |
+   |   | %rc  | retries                                       | numeric     |
+-- 
+2.4.6
+
diff --git a/net/haproxy/patches/0008-CLEANUP-.gitignore-ignore-more-test-files.patch b/net/haproxy/patches/0008-CLEANUP-.gitignore-ignore-more-test-files.patch
new file mode 100644 (file)
index 0000000..d8d51bc
--- /dev/null
@@ -0,0 +1,50 @@
+From 1104336c0ba5f474fce8fe7c0125511b59f4dd3d Mon Sep 17 00:00:00 2001
+From: Willy Tarreau <w@1wt.eu>
+Date: Tue, 11 Aug 2015 11:20:45 +0200
+Subject: [PATCH 08/13] CLEANUP: .gitignore: ignore more test files
+
+Exclude from "git status" many of the files that often result from
+development tests and bug reports reproducers.
+(cherry picked from commit de365a320ead43168e78facfa337130759783515)
+---
+ .gitignore | 27 +++++++++++++++++++++++++++
+ 1 file changed, 27 insertions(+)
+
+diff --git a/.gitignore b/.gitignore
+index 762f5ad..f6ccd0e 100644
+--- a/.gitignore
++++ b/.gitignore
+@@ -18,3 +18,30 @@ make-*
+ dlmalloc.c
+ 00*.patch
+ *.service
++*.bak
++contrib/base64/base64rev
++contrib/halog/halog
++contrib/ip6range/ip6range
++contrib/iprange/iprange
++tests/test_hashes
++/*.cfg
++/*.conf
++/*.diff
++/*.patch
++/*.c
++/*.o
++/*.so
++/*.txt
++/*.TXT
++/*.txt.*
++/*.prof
++/*.gprof
++/*.prof.*
++/*.gprof.*
++/*.tar
++/*.tar.gz
++/*.tgz
++/*.mbox
++/*.sh
++/bug*
++/TAGS
+-- 
+2.4.6
+
diff --git a/net/haproxy/patches/0009-CLEANUP-.gitignore-finally-ignore-everything-but-wha.patch b/net/haproxy/patches/0009-CLEANUP-.gitignore-finally-ignore-everything-but-wha.patch
new file mode 100644 (file)
index 0000000..fe43df9
--- /dev/null
@@ -0,0 +1,44 @@
+From 5e077624951a65e6aae381c7213fc54984768dd4 Mon Sep 17 00:00:00 2001
+From: Willy Tarreau <w@1wt.eu>
+Date: Tue, 11 Aug 2015 11:21:47 +0200
+Subject: [PATCH 09/13] CLEANUP: .gitignore: finally ignore everything but what
+ is known.
+
+Still too many files remain, it's easier to block everything but
+what we know.
+(cherry picked from commit d71f1766bdbb041f80394662b0d293f033f93005)
+---
+ .gitignore | 20 ++++++++++++++++++++
+ 1 file changed, 20 insertions(+)
+
+diff --git a/.gitignore b/.gitignore
+index f6ccd0e..1953ba3 100644
+--- a/.gitignore
++++ b/.gitignore
+@@ -45,3 +45,23 @@ tests/test_hashes
+ /*.sh
+ /bug*
+ /TAGS
++# Below we forbid everything and only allow what we know, that's much easier
++# than blocking about 500 different test files and bug report outputs.
++/.*
++/*
++!/.gitignore
++!/CHANGELOG
++!/LICENSE
++!/Makefile
++!/README
++!/ROADMAP
++!/SUBVERS
++!/VERDATE
++!/VERSION
++!/contrib
++!/doc
++!/ebtree
++!/examples
++!/include
++!/src
++!/tests
+-- 
+2.4.6
+
diff --git a/net/haproxy/patches/0010-MEDIUM-config-emit-a-warning-on-a-frontend-without-l.patch b/net/haproxy/patches/0010-MEDIUM-config-emit-a-warning-on-a-frontend-without-l.patch
new file mode 100644 (file)
index 0000000..2a622f5
--- /dev/null
@@ -0,0 +1,46 @@
+From c7c1e55f09839727ba7defd37347fc500dabb202 Mon Sep 17 00:00:00 2001
+From: Willy Tarreau <w@1wt.eu>
+Date: Tue, 11 Aug 2015 11:36:45 +0200
+Subject: [PATCH 10/13] MEDIUM: config: emit a warning on a frontend without
+ listener
+
+Commit c6678e2 ("MEDIUM: config: authorize frontend and listen without bind")
+completely removed the test for bind lines in frontends in order to make it
+easier for automated tools to generate configs (eg: replacing a bind with
+another one passing via a temporary config without any bind line). The
+problem is that some common mistakes are totally hidden now. For example,
+this apparently valid entry is silently ignored :
+
+       listen 1.2.3.4:8000
+           server s1 127.0.0.1:8000
+
+Hint: 1.2.3.4:8000 is mistakenly the proxy name here.
+
+Thus instead we now emit a warning to indicate that a frontend was found
+with no listener. This should be backported to 1.5 to help spot abnormal
+configurations.
+(cherry picked from commit f82d1ca2d7ec83804d6b54e61a35747ad2f85188)
+---
+ src/cfgparse.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/src/cfgparse.c b/src/cfgparse.c
+index 2a5f178..d67edc5 100644
+--- a/src/cfgparse.c
++++ b/src/cfgparse.c
+@@ -6193,6 +6193,12 @@ int check_config_validity()
+                       break;
+               }
++              if ((curproxy->cap & PR_CAP_FE) && LIST_ISEMPTY(&curproxy->conf.listeners)) {
++                      Warning("config : %s '%s' has no 'bind' directive. Please declare it as a backend if this was intended.\n",
++                              proxy_type_str(curproxy), curproxy->id);
++                      err_code |= ERR_WARN;
++              }
++
+               if ((curproxy->cap & PR_CAP_BE) && (curproxy->mode != PR_MODE_HEALTH)) {
+                       if (curproxy->lbprm.algo & BE_LB_KIND) {
+                               if (curproxy->options & PR_O_TRANSP) {
+-- 
+2.4.6
+
diff --git a/net/haproxy/patches/0011-BUG-MEDIUM-counters-ensure-that-src_-inc-clr-_gpc0-c.patch b/net/haproxy/patches/0011-BUG-MEDIUM-counters-ensure-that-src_-inc-clr-_gpc0-c.patch
new file mode 100644 (file)
index 0000000..25734dc
--- /dev/null
@@ -0,0 +1,93 @@
+From ee12145d38a7dee81a20cf232c724ccb7a46ad8b Mon Sep 17 00:00:00 2001
+From: Willy Tarreau <w@1wt.eu>
+Date: Tue, 18 Aug 2015 17:15:20 +0200
+Subject: [PATCH 11/13] BUG/MEDIUM: counters: ensure that src_{inc,clr}_gpc0
+ creates a missing entry
+
+During 1.5-dev20 there was some code refactoring to make the src_* fetch
+function use the same code as sc_*. Unfortunately this introduced a
+regression where src_* doesn't create an entry anymore if it does not
+exist in the table. The reason is that smp_fetch_sc_stkctr() only calls
+stktable_lookup_key() while src_inc_*/src_clr_* used to make use of
+stktable_update_key() which additionally create the entry if it does
+not exist.
+
+There's no point modifying the common function for these two exceptions,
+so instead we now have a function dedicated to the creation of this entry
+for src_* only. It is called when the entry didn't exist, so that requires
+minimal modifications to existing code.
+
+Thanks to Thierry Fournier for helping diagnose the issue.
+
+This fix must be backported to 1.5.
+(cherry picked from commit 0f4eadd4830279f5ee83aa545728fb750f5c8185)
+
+[Note: the backport to 1.5 significantly differs from the version in 1.6
+ since we need to use the table's type and to retrieve the source address
+ directly from the connection. At least it matches the way other src_*
+ fetch functions work, and it's been verified to work fine]
+---
+ src/session.c | 33 +++++++++++++++++++++++++++++++++
+ 1 file changed, 33 insertions(+)
+
+diff --git a/src/session.c b/src/session.c
+index 5b9e407..6d62e36 100644
+--- a/src/session.c
++++ b/src/session.c
+@@ -2806,6 +2806,33 @@ smp_fetch_sc_stkctr(struct session *l4, const struct arg *args, const char *kw)
+       return &l4->stkctr[num];
+ }
++/* same as smp_fetch_sc_stkctr() but dedicated to src_* and can create
++ * the entry if it doesn't exist yet. This is needed for a few fetch
++ * functions which need to create an entry, such as src_inc_gpc* and
++ * src_clr_gpc*.
++ */
++struct stkctr *
++smp_create_src_stkctr(struct session *sess, const struct arg *args, const char *kw)
++{
++      static struct stkctr stkctr;
++      struct stktable_key *key;
++      struct connection *conn = objt_conn(sess->si[0].end);
++
++      if (strncmp(kw, "src_", 4) != 0)
++              return NULL;
++
++      if (!conn)
++              return NULL;
++
++      key = addr_to_stktable_key(&conn->addr.from, args->data.prx->table.type);
++      if (!key)
++              return NULL;
++
++      stkctr.table = &args->data.prx->table;
++      stkctr_set_entry(&stkctr, stktable_update_key(stkctr.table, key));
++      return &stkctr;
++}
++
+ /* set return a boolean indicating if the requested session counter is
+  * currently being tracked or not.
+  * Supports being called as "sc[0-9]_tracked" only.
+@@ -2887,6 +2914,9 @@ smp_fetch_sc_inc_gpc0(struct proxy *px, struct session *l4, void *l7, unsigned i
+       if (!stkctr)
+               return 0;
++      if (stkctr_entry(stkctr) == NULL)
++              stkctr = smp_create_src_stkctr(l4, args, kw);
++
+       smp->flags = SMP_F_VOL_TEST;
+       smp->type = SMP_T_UINT;
+       smp->data.uint = 0;
+@@ -2924,6 +2954,9 @@ smp_fetch_sc_clr_gpc0(struct proxy *px, struct session *l4, void *l7, unsigned i
+       if (!stkctr)
+               return 0;
++      if (stkctr_entry(stkctr) == NULL)
++              stkctr = smp_create_src_stkctr(l4, args, kw);
++
+       smp->flags = SMP_F_VOL_TEST;
+       smp->type = SMP_T_UINT;
+       smp->data.uint = 0;
+-- 
+2.4.6
+
diff --git a/net/haproxy/patches/0012-DOC-ssl-missing-LF.patch b/net/haproxy/patches/0012-DOC-ssl-missing-LF.patch
new file mode 100644 (file)
index 0000000..bfa2207
--- /dev/null
@@ -0,0 +1,27 @@
+From 2272b4ffde38c836adfd9a9b43ff5c019ef4190a Mon Sep 17 00:00:00 2001
+From: Thierry FOURNIER <tfournier@arpalert.org>
+Date: Wed, 26 Aug 2015 08:21:26 +0200
+Subject: [PATCH 12/13] DOC: ssl: missing LF
+
+An error message miss LF
+(cherry picked from commit bc965348d7ccc0a306504232ab85dc240fd31fbf)
+---
+ src/ssl_sock.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/ssl_sock.c b/src/ssl_sock.c
+index 2ae45ec..8f698c0 100644
+--- a/src/ssl_sock.c
++++ b/src/ssl_sock.c
+@@ -1760,7 +1760,7 @@ int ssl_sock_prepare_srv_ctx(struct server *srv, struct proxy *curproxy)
+ #ifndef OPENSSL_NO_SSL3
+               SSL_CTX_set_ssl_version(srv->ssl_ctx.ctx, SSLv3_client_method());
+ #else
+-              Alert("SSLv3 support requested but unavailable.");
++              Alert("SSLv3 support requested but unavailable.\n");
+               cfgerr++;
+ #endif
+       }
+-- 
+2.4.6
+
diff --git a/net/haproxy/patches/0013-DOC-fix-example-of-http-request-using-ssl_fc_session.patch b/net/haproxy/patches/0013-DOC-fix-example-of-http-request-using-ssl_fc_session.patch
new file mode 100644 (file)
index 0000000..f63de13
--- /dev/null
@@ -0,0 +1,30 @@
+From d3a93a932430bc1a4cd5d1350820c2bec706e26d Mon Sep 17 00:00:00 2001
+From: Willy Tarreau <w@1wt.eu>
+Date: Thu, 27 Aug 2015 17:15:05 +0200
+Subject: [PATCH 13/13] DOC: fix example of http-request using
+ ssl_fc_session_id
+
+It was missing the ",hex" resulting in raw binary data being dumped in
+the header or the logs. Now we know where these crazy logs originated
+from!
+(cherry picked from commit fca4261dacab51db960d30120f4bb4201f7e4a51)
+---
+ doc/configuration.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/doc/configuration.txt b/doc/configuration.txt
+index 1d95b5b..67d273b 100644
+--- a/doc/configuration.txt
++++ b/doc/configuration.txt
+@@ -3135,7 +3135,7 @@ http-request { allow | deny | tarpit | auth [realm <realm>] | redirect <rule> |
+   Example:
+         http-request set-header X-Haproxy-Current-Date %T
+         http-request set-header X-SSL                  %[ssl_fc]
+-        http-request set-header X-SSL-Session_ID       %[ssl_fc_session_id]
++        http-request set-header X-SSL-Session_ID       %[ssl_fc_session_id,hex]
+         http-request set-header X-SSL-Client-Verify    %[ssl_c_verify]
+         http-request set-header X-SSL-Client-DN        %{+Q}[ssl_c_s_dn]
+         http-request set-header X-SSL-Client-CN        %{+Q}[ssl_c_s_dn(cn)]
+-- 
+2.4.6
+
diff --git a/net/haproxy/patches/0014-BUG-MINOR-http-remove-stupid-HTTP_METH_NONE-entry.patch b/net/haproxy/patches/0014-BUG-MINOR-http-remove-stupid-HTTP_METH_NONE-entry.patch
new file mode 100644 (file)
index 0000000..6b51543
--- /dev/null
@@ -0,0 +1,78 @@
+From bcd033699c5a4904967652de4980e4f35f17ee34 Mon Sep 17 00:00:00 2001
+From: Willy Tarreau <w@1wt.eu>
+Date: Thu, 3 Sep 2015 17:15:21 +0200
+Subject: [PATCH 14/16] BUG/MINOR: http: remove stupid HTTP_METH_NONE entry
+
+When converting the "method" fetch to a string, we used to get an empty
+string if the first character was not an upper case. This was caused by
+the lookup function which returns HTTP_METH_NONE when a lookup is not
+possible, and this method being mapped to an empty string in the array.
+
+This is a totally stupid mechanism, there's no reason for having the
+result depend on the first char. In fact the message parser already
+checks that the syntax matches an HTTP token so we can only land there
+with a valid token, hence only HTTP_METH_OTHER should be returned.
+
+This fix should be backported to all actively supported branches.
+(cherry picked from commit b7ce424be2bc9df73a3b971fa9dd6daea0332bf1)
+---
+ include/types/proto_http.h |  1 -
+ src/proto_http.c           | 11 ++++-------
+ 2 files changed, 4 insertions(+), 8 deletions(-)
+
+diff --git a/include/types/proto_http.h b/include/types/proto_http.h
+index a5a5d31..dbce972 100644
+--- a/include/types/proto_http.h
++++ b/include/types/proto_http.h
+@@ -219,7 +219,6 @@ enum {
+ /* Known HTTP methods */
+ enum http_meth_t {
+-      HTTP_METH_NONE = 0,
+       HTTP_METH_OPTIONS,
+       HTTP_METH_GET,
+       HTTP_METH_HEAD,
+diff --git a/src/proto_http.c b/src/proto_http.c
+index 02dc42b..46694cb 100644
+--- a/src/proto_http.c
++++ b/src/proto_http.c
+@@ -361,12 +361,11 @@ const struct http_method_desc http_methods[26][3] = {
+               [0] = { .meth = HTTP_METH_TRACE   , .len=5, .text="TRACE"   },
+       },
+       /* rest is empty like this :
+-       *      [1] = { .meth = HTTP_METH_NONE    , .len=0, .text=""        },
++       *      [0] = { .meth = HTTP_METH_OTHER   , .len=0, .text=""        },
+        */
+ };
+ const struct http_method_name http_known_methods[HTTP_METH_OTHER] = {
+-      [HTTP_METH_NONE]    = { "",         0 },
+       [HTTP_METH_OPTIONS] = { "OPTIONS",  7 },
+       [HTTP_METH_GET]     = { "GET",      3 },
+       [HTTP_METH_HEAD]    = { "HEAD",     4 },
+@@ -793,8 +792,8 @@ struct chunk *http_error_message(struct session *s, int msgnum)
+ }
+ /*
+- * returns HTTP_METH_NONE if there is nothing valid to read (empty or non-text
+- * string), HTTP_METH_OTHER for unknown methods, or the identified method.
++ * returns a known method among HTTP_METH_* or HTTP_METH_OTHER for all unknown
++ * ones.
+  */
+ enum http_meth_t find_http_meth(const char *str, const int len)
+ {
+@@ -810,10 +809,8 @@ enum http_meth_t find_http_meth(const char *str, const int len)
+                       if (likely(memcmp(str, h->text, h->len) == 0))
+                               return h->meth;
+               };
+-              return HTTP_METH_OTHER;
+       }
+-      return HTTP_METH_NONE;
+-
++      return HTTP_METH_OTHER;
+ }
+ /* Parse the URI from the given transaction (which is assumed to be in request
+-- 
+2.4.6
+
diff --git a/net/haproxy/patches/0015-BUG-MAJOR-http-don-t-call-http_send_name_header-afte.patch b/net/haproxy/patches/0015-BUG-MAJOR-http-don-t-call-http_send_name_header-afte.patch
new file mode 100644 (file)
index 0000000..97ac07b
--- /dev/null
@@ -0,0 +1,49 @@
+From 3f34b5539e7ba31e44055d853b9ba496e73e0bae Mon Sep 17 00:00:00 2001
+From: Willy Tarreau <w@1wt.eu>
+Date: Mon, 7 Sep 2015 19:32:33 +0200
+Subject: [PATCH 15/16] BUG/MAJOR: http: don't call http_send_name_header()
+ after an error
+
+A crash was reported when using the "famous" http-send-name-header
+directive. This time it's a bit tricky, it requires a certain number of
+conditions to be met including maxconn on a server, queuing, timeout in
+the queue and cookie-based persistence.
+
+The problem is that in stream.c, before calling http_send_name_header(),
+we check a number of conditions to know if we have to replace the header
+name. But prior to reaching this place, it's possible for
+sess_update_stream_int() to fail and change the stream-int's state to
+SI_ST_CLO, send an error 503 to the client, and flush all buffers. But
+http_send_name_header() can only be called with valid buffer contents
+matching the http_msg's description. So when it rewinds the stream to
+modify the header, buf->o becomes negative by the size of the incoming
+request and is used as the argument to memmove() which basically
+displaces 4GB of memory off a few bytes to write the new name, resulting
+in a core and a core file that's really not fun to play with.
+
+The solution obviously consists in refraining from calling this nasty
+function when the stream interface is already closed.
+
+This bug also affects 1.5 and possibly 1.4, so the fix must be backported
+there.
+(cherry picked from commit 9c03b33329cb4924716edc1c851913a18b0670dc)
+---
+ src/session.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/session.c b/src/session.c
+index 6d62e36..7520a85 100644
+--- a/src/session.c
++++ b/src/session.c
+@@ -2293,7 +2293,7 @@ struct task *process_session(struct task *t)
+                       /* Now we can add the server name to a header (if requested) */
+                       /* check for HTTP mode and proxy server_name_hdr_name != NULL */
+-                      if ((s->si[1].state >= SI_ST_CON) &&
++                      if ((s->si[1].state >= SI_ST_CON) && (s->si[1].state < SI_ST_CLO) &&
+                           (s->be->server_id_hdr_name != NULL) &&
+                           (s->be->mode == PR_MODE_HTTP) &&
+                           objt_server(s->target)) {
+-- 
+2.4.6
+
diff --git a/net/haproxy/patches/0016-BUG-MINOR-tools-make-str2sa_range-report-unresolvabl.patch b/net/haproxy/patches/0016-BUG-MINOR-tools-make-str2sa_range-report-unresolvabl.patch
new file mode 100644 (file)
index 0000000..c2b6a0f
--- /dev/null
@@ -0,0 +1,36 @@
+From 36456071ea34546d98d3b66a696cd4c4c4643de5 Mon Sep 17 00:00:00 2001
+From: Willy Tarreau <w@1wt.eu>
+Date: Tue, 8 Sep 2015 16:01:25 +0200
+Subject: [PATCH 16/16] BUG/MINOR: tools: make str2sa_range() report
+ unresolvable addresses
+
+If an environment variable is used in an address, and is not set, it's
+silently considered as ":" or "0.0.0.0:0" which is not correct as it
+can hide environment issues and lead to unexpected behaviours. Let's
+report this case when it happens.
+
+This fix should be backported to 1.5.
+(cherry picked from commit 9f69f46d1f1b1d116c00b4b0483c519747f977b7)
+---
+ src/standard.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/src/standard.c b/src/standard.c
+index f57724c..9299882 100644
+--- a/src/standard.c
++++ b/src/standard.c
+@@ -709,6 +709,11 @@ struct sockaddr_storage *str2sa_range(const char *str, int *low, int *high, char
+               goto out;
+       }
++      if (!*str2) {
++              memprintf(err, "'%s' resolves to an empty address (environment variable missing?)\n", str);
++              goto out;
++      }
++
+       memset(&ss, 0, sizeof(ss));
+       if (strncmp(str2, "unix@", 5) == 0) {
+-- 
+2.4.6
+
diff --git a/net/htpdate/Makefile b/net/htpdate/Makefile
new file mode 100644 (file)
index 0000000..c5441c2
--- /dev/null
@@ -0,0 +1,60 @@
+#
+# Copyright (C) 2006 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=htpdate
+PKG_VERSION:=1.1.1
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+PKG_SOURCE_URL:=http://www.vervest.org/htp/archive/c/
+PKG_MD5SUM:=c612f63282e3f23b709f37a5c81d4739
+
+PKG_LICENSE:=GPL-2.0+
+PKG_LICENSE_FILES:=
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/htpdate
+  SUBMENU:=Time Synchronization
+  SECTION:=net
+  CATEGORY:=Network
+  TITLE:=an HTP (Hypertext Time Protocol) implementation
+  URL:=http://www.vervest.com/htp/
+  MAINTAINER:=Tijs Van Buggenhout <tvbuggen@netzerk.be>
+endef
+
+define Package/htpdate/description
+       The HTTP Time Protocol (HTP) is used to synchronize a computer's time
+       with web servers as reference time source. Htpdate will synchronize your
+       computer's time by extracting timestamps from HTTP headers found
+       in web server responses. Htpdate can be used as a daemon, to keep your
+       computer synchronized.
+endef
+
+define Package/htpdate/conffiles
+/etc/default/htpdate
+endef
+
+define Build/Compile
+       $(MAKE) -C $(PKG_BUILD_DIR) \
+               $(TARGET_CONFIGURE_OPTS) \
+               CFLAGS="$(TARGET_CFLAGS)"
+endef
+
+define Package/htpdate/install
+       $(INSTALL_DIR) $(1)/usr/sbin
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/htpdate $(1)/usr/sbin/
+       $(INSTALL_DIR) $(1)/etc/default/
+       $(INSTALL_CONF) ./files/htpdate.default $(1)/etc/default/htpdate
+       $(INSTALL_DIR) $(1)/etc/init.d/
+       $(INSTALL_BIN) ./files/htpdate.init $(1)/etc/init.d/htpdate
+endef
+
+$(eval $(call BuildPackage,htpdate))
+
diff --git a/net/htpdate/files/htpdate.default b/net/htpdate/files/htpdate.default
new file mode 100644 (file)
index 0000000..94674fd
--- /dev/null
@@ -0,0 +1 @@
+OPTIONS="www.google.com www.yahoo.com www.linux.org www.freebsd.org"
diff --git a/net/htpdate/files/htpdate.init b/net/htpdate/files/htpdate.init
new file mode 100644 (file)
index 0000000..1409321
--- /dev/null
@@ -0,0 +1,19 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2006 OpenWrt.org
+
+START=49
+BIN=htpdate
+DEFAULT=/etc/default/$BIN
+RUN_D=/var/run
+PID_F=$RUN_D/$BIN.pid
+
+start() {
+       [ -f $DEFAULT ] && . $DEFAULT
+       mkdir -p $RUN_D
+       $BIN -l -s -t $OPTIONS && $BIN -D $OPTIONS
+}
+
+stop() {
+       [ -f $PID_F ] && kill $(cat $PID_F)
+}
+
diff --git a/net/htpdate/patches/100-adjtimex.patch b/net/htpdate/patches/100-adjtimex.patch
new file mode 100644 (file)
index 0000000..ec7c8a9
--- /dev/null
@@ -0,0 +1,20 @@
+--- a/htpdate.c
++++ b/htpdate.c
+@@ -359,7 +359,7 @@ static int htpdate_adjtimex( double drif
+       /* Read current kernel frequency */
+       tmx.modes = 0;
+-      ntp_adjtime(&tmx);
++      adjtimex(&tmx);
+       /* Calculate new frequency */
+       freq = (long)(65536e6 * drift);
+@@ -377,7 +377,7 @@ static int htpdate_adjtimex( double drif
+               printlog( 1, "seteuid()" );
+               exit(1);
+       } else {
+-              return( ntp_adjtime(&tmx) );
++              return( adjtimex(&tmx) );
+       }
+ }
index 7653d62ef1227e6f13fb1765c2fa803022d391ee..dffd596b014da388e1439b66da391673223838db 100644 (file)
@@ -8,15 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=iotivity
-PKG_VERSION:=0.9.1
-PKG_RELEASE:=1
-
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL:=https://gerrit.iotivity.org/gerrit/iotivity
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=0.9.1
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
-PKG_MIRROR_MD5SUM:=
+PKG_VERSION:=1.0.0
+PKG_RELEASE=1
+
+PKG_SOURCE:=${PKG_NAME}-${PKG_VERSION}.tar.gz
+PKG_SOURCE_URL:=https://downloads.iotivity.org/${PKG_VERSION}/ \
+       http://mirrors.kernel.org/${PKG_NAME}/${PKG_VERSION}/
+PKG_MD5SUM:=4bcbabffc1734c664bbdf8fedfa60543
 PKG_USE_MIPS16:=0
 
 PKG_MAINTAINER:=Hauke Mehrtens <hauke.mehrtens@lantiq.com>
@@ -24,8 +22,6 @@ PKG_MAINTAINER:=Hauke Mehrtens <hauke.mehrtens@lantiq.com>
 PKG_LICENSE:=Apache-2.0
 PKG_LICENSE_FILES:=LICENSE.md
 
-PKG_BUILD_DEPENDS:= +boost +libexpat
-
 include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/scons.mk
 
@@ -33,8 +29,8 @@ include $(INCLUDE_DIR)/scons.mk
 define Package/iotivity
   SECTION:=net
   CATEGORY:=Network
-  DEPENDS:=@!USE_UCLIBC +libpthread +librt +libstdcpp +libuuid
-  TITLE:=IoTivity Library
+  DEPENDS:=@!USE_UCLIBC +libpthread +librt +libuuid
+  TITLE:=IoTivity Library
   URL:=https://www.iotivity.org
 endef
 
@@ -44,49 +40,37 @@ define Package/iotivity/description
 endef
 
 
-define Package/iotivity-things-manager-lib
+define Package/iotivity-cpp
   SECTION:=net
   CATEGORY:=Network
-  DEPENDS:=iotivity
-  TITLE:=IoTivity things manager lib
+  DEPENDS:=iotivity +libpthread +libstdcpp
+  TITLE:=IoTivity C++ Library
   URL:=https://www.iotivity.org
 endef
 
-define Package/iotivity-things-manager-lib/description
-    IoTivity things-manager lib
-endef
-
-
-define Package/iotivity-plugin-manager-lib
-  SECTION:=net
-  CATEGORY:=Network
-  DEPENDS:=iotivity +libexpat
-  TITLE:=IoTivity plugin manager lib
-  URL:=https://www.iotivity.org
-endef
-
-define Package/iotivity-plugin-manager-lib/description
-    IoTivity plugin manager lib
+define Package/iotivity-cpp/description
+    IoTivity is a framework for the Internet of Things based on the
+    Open Interconnect Consortium Specification.
 endef
 
 
-define Package/iotivity-mqttclient
+define Package/iotivity-things-manager-lib
   SECTION:=net
   CATEGORY:=Network
-  DEPENDS:=iotivity +iotivity-plugin-manager-lib +boost +boost-system
-  TITLE:=IoTivity mqtt Client
+  DEPENDS:=iotivity +iotivity-cpp +libstdcpp
+  TITLE:=IoTivity things manager lib
   URL:=https://www.iotivity.org
 endef
 
-define Package/iotivity-mqttclient/description
-    IoTivity mqtt Client
+define Package/iotivity-things-manager-lib/description
+    IoTivity things-manager lib
 endef
 
 
 define Package/iotivity-oic-middle
   SECTION:=net
   CATEGORY:=Network
-  DEPENDS:=iotivity
+  DEPENDS:=iotivity +iotivity-cpp
   TITLE:=IoTivity OIC Middle
   URL:=https://www.iotivity.org
 endef
@@ -99,7 +83,7 @@ endef
 define Package/iotivity-things-manager
   SECTION:=net
   CATEGORY:=Network
-  DEPENDS:=iotivity +iotivity-things-manager-lib
+  DEPENDS:=iotivity +iotivity-cpp +iotivity-things-manager-lib
   TITLE:=IoTivity things manager
   URL:=https://www.iotivity.org
 endef
@@ -108,11 +92,34 @@ define Package/iotivity-things-manager/description
     IoTivity things manager
 endef
 
+define Package/iotivity-resource-container-lib
+  SECTION:=net
+  CATEGORY:=Network
+  DEPENDS:=iotivity +iotivity-cpp +boost-system +boost-thread +boost-date_time
+  TITLE:=IoTivity Resource Container library
+  URL:=https://www.iotivity.org
+endef
+
+define Package/iotivity-resource-container-sample
+  SECTION:=net
+  CATEGORY:=Network
+  DEPENDS:=iotivity +iotivity-resource-container-lib
+  TITLE:=IoTivity Resource Container sample Application
+  URL:=https://www.iotivity.org
+endef
+
+define Package/iotivity-resource-container-hue
+  SECTION:=net
+  CATEGORY:=Network
+  DEPENDS:=iotivity +iotivity-resource-container-lib +libcurl
+  TITLE:=IoTivity Resource Container Hue Bundle
+  URL:=https://www.iotivity.org
+endef
 
 define Package/iotivity-example-garage
   SECTION:=net
   CATEGORY:=Network
-  DEPENDS:=iotivity
+  DEPENDS:=iotivity +iotivity-cpp
   TITLE:=IoTivity Garage example
   URL:=https://www.iotivity.org
 endef
@@ -122,31 +129,58 @@ define Package/iotivity-example-garage/description
 endef
 
 
-PKG_CEREAL_NAME:=cereal
-PKG_CEREAL_VERSION:=7121e91e6ab8c3e6a6516d9d9c3e6804e6f65245
-PKG_CEREAL_SOURCE:=$(PKG_CEREAL_NAME)-$(PKG_CEREAL_VERSION).tar.bz2
-PKG_CEREAL_PROTO:=git
-PKG_CEREAL_SOURCE_URL:=https://github.com/USCiLab/cereal.git
-PKG_CEREAL_SUBDIR:=$(PKG_CEREAL_NAME)
-#PKG_CEREAL_MIRROR_MD5SUM:=?
-
-define Download/iotivity-cereal
-  FILE:=$(PKG_CEREAL_SOURCE)
-  URL:=$(PKG_CEREAL_SOURCE_URL)
-  PROTO:=$(PKG_CEREAL_PROTO)
-  VERSION:=$(PKG_CEREAL_VERSION)
-  SUBDIR:=$(PKG_CEREAL_SUBDIR)
-  #MIRROR_MD5SUM:=$(PKG_CEREAL_MIRROR_MD5SUM)
+PKG_TINYCBOR_NAME:=tinycbor
+PKG_TINYCBOR_VERSION:=43e3ac9490cf19459ec7b7bd13df3b66810fb62a
+PKG_TINYCBOR_SOURCE:=$(PKG_TINYCBOR_NAME)-$(PKG_TINYCBOR_VERSION).tar.bz2
+PKG_TINYCBOR_PROTO:=git
+PKG_TINYCBOR_SOURCE_URL:=https://github.com/01org/tinycbor.git
+PKG_TINYCBOR_SUBDIR:=$(PKG_TINYCBOR_NAME)
+#PKG_TINYCBOR_MIRROR_MD5SUM:=?
+
+define Download/iotivity-tinycbor
+  FILE:=$(PKG_TINYCBOR_SOURCE)
+  URL:=$(PKG_TINYCBOR_SOURCE_URL)
+  PROTO:=$(PKG_TINYCBOR_PROTO)
+  VERSION:=$(PKG_TINYCBOR_VERSION)
+  SUBDIR:=$(PKG_TINYCBOR_SUBDIR)
+  #MIRROR_MD5SUM:=$(PKG_TINYCBOR_MIRROR_MD5SUM)
 endef
-$(eval $(call Download,iotivity-cereal))
+$(eval $(call Download,iotivity-tinycbor))
+
+PKG_SQLITE_NAME:=sqlite
+PKG_SQLITE_VERSION:=3081101
+PKG_SQLITE_SOURCE:=$(PKG_SQLITE_NAME)-amalgamation-$(PKG_SQLITE_VERSION).zip
+PKG_SQLITE_SOURCE_URL:=http://www.sqlite.org/2015/
+PKG_SQLITE_SUBDIR:=$(PKG_SQLITE_NAME)
+PKG_SQLITE_MD5SUM:=94907e831502e2080b76e281cfa24dde
+
+define Download/iotivity-sqlite
+  FILE:=$(PKG_SQLITE_SOURCE)
+  URL:=$(PKG_SQLITE_SOURCE_URL)
+  VERSION:=$(PKG_SQLITE_VERSION)
+  SUBDIR:=$(PKG_SQLITE_SUBDIR)
+  MD5SUM:=$(PKG_SQLITE_MD5SUM)
+endef
+$(eval $(call Download,iotivity-sqlite))
 
 
 SCONS_OPTIONS += \
        TARGET_OS=linux \
-       TARGET_TRANSPORT=ALL \
+       TARGET_TRANSPORT=IP \
        TARGET_ARCH=$(ARCH) \
        STAGING_DIR=$(STAGING_DIR) \
-       mqttclient examples samples libTGMSDK ConServerApp ConClientApp BootstrapServerApp
+       LOGGING=true \
+       SECURED=1 \
+       $(if $(CONFIG_PACKAGE_iotivity),liboctbstack) \
+       $(if $(CONFIG_PACKAGE_iotivity-cpp),liboc) \
+       $(if $(CONFIG_PACKAGE_iotivity-things-manager-lib),libTGMSDK) \
+       $(if $(CONFIG_PACKAGE_iotivity-oic-middle),samples) \
+       $(if $(CONFIG_PACKAGE_iotivity-things-manager),ConServerApp ConClientApp BootstrapServerApp) \
+       $(if $(CONFIG_PACKAGE_iotivity-resource-container-lib),libResContainer) \
+       $(if $(CONFIG_PACKAGE_iotivity-resource-container-sample),containersample) \
+       $(if $(CONFIG_PACKAGE_iotivity-resource-container-hue),libHueBundle) \
+       $(if $(CONFIG_PACKAGE_iotivity-example-garage),examples) \
+
 
 ifneq ($(findstring c,$(OPENWRT_VERBOSE)),)
   SCONS_OPTIONS += VERBOSE=true
@@ -154,9 +188,13 @@ endif
 
 define Build/Prepare
        $(call Build/Prepare/Default)
-       $(TAR) -C $(PKG_BUILD_DIR)/extlibs/cereal -xjf $(DL_DIR)/$(PKG_CEREAL_SOURCE)
+       $(TAR) -C $(PKG_BUILD_DIR)/extlibs/tinycbor/ -xjf $(DL_DIR)/$(PKG_TINYCBOR_SOURCE)
+       unzip -d $(PKG_BUILD_DIR)/extlibs/sqlite3/ $(DL_DIR)/$(PKG_SQLITE_SOURCE)
+       mv $(PKG_BUILD_DIR)/extlibs/sqlite3/$(PKG_SQLITE_NAME)-amalgamation-$(PKG_SQLITE_VERSION)/sqlite3.h $(PKG_BUILD_DIR)/extlibs/sqlite3/
+       mv $(PKG_BUILD_DIR)/extlibs/sqlite3/$(PKG_SQLITE_NAME)-amalgamation-$(PKG_SQLITE_VERSION)/sqlite3.c $(PKG_BUILD_DIR)/extlibs/sqlite3/
 endef
 
+
 define Build/Configure
        (cd $(PKG_BUILD_DIR); \
                $(SCONS_VARS) \
@@ -168,49 +206,63 @@ endef
 
 define Package/iotivity/install
        $(INSTALL_DIR) $(1)/usr/lib
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/liboc.so $(1)/usr/lib/liboc.so
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/liboc_logger.so $(1)/usr/lib/liboc_logger.so
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/liboctbstack.so $(1)/usr/lib/liboctbstack.so
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/liboctbstack.so $(1)/usr/lib/
 endef
 
-define Package/iotivity-things-manager-lib/install
+define Package/iotivity-cpp/install
        $(INSTALL_DIR) $(1)/usr/lib
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/libTGMSDKLibrary.so $(1)/usr/lib/libTGMSDKLibrary.so
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/liboc.so $(1)/usr/lib/
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/liboc_logger.so $(1)/usr/lib/
 endef
 
-define Package/iotivity-plugin-manager-lib/install
+define Package/iotivity-things-manager-lib/install
        $(INSTALL_DIR) $(1)/usr/lib
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/libpmimpl.so $(1)/usr/lib/libpmimpl.so
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/libTGMSDKLibrary.so $(1)/usr/lib/
 endef
 
-define Package/iotivity-mqttclient/install
+define Package/iotivity-oic-middle/install
        $(INSTALL_DIR) $(1)/usr/bin
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/service/protocol-plugin/sample-app/linux/mqtt/mqttclient $(1)/usr/bin/mqttclient
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/examples/OICMiddle/OICMiddle $(1)/usr/bin/
 endef
 
-define Package/iotivity-oic-middle/install
+define Package/iotivity-things-manager/install
        $(INSTALL_DIR) $(1)/usr/bin
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/examples/OICMiddle/OICMiddle $(1)/usr/bin/OICMiddle
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/service/things-manager/sampleapp/linux/configuration/bootstrapserver $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/service/things-manager/sampleapp/linux/configuration/con-server $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/service/things-manager/sampleapp/linux/configuration/con-client $(1)/usr/bin/
 endef
 
-define Package/iotivity-things-manager/install
+define Package/iotivity-resource-container-lib/install
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/librcs_common.so $(1)/usr/lib/
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/librcs_client.so $(1)/usr/lib/
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/librcs_server.so $(1)/usr/lib/
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/librcs_container.so $(1)/usr/lib/
+endef
+
+define Package/iotivity-resource-container-sample/install
        $(INSTALL_DIR) $(1)/usr/bin
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/service/things-manager/sampleapp/linux/configuration/bootstrapserver $(1)/usr/bin/bootstrapserver
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/service/things-manager/sampleapp/linux/configuration/con-server $(1)/usr/bin/con-server
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/service/things-manager/sampleapp/linux/configuration/con-client $(1)/usr/bin/con-client
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/service/resource-container/ContainerSample  $(1)/usr/bin/
+endef
+
+define Package/iotivity-resource-container-hue/install
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/libHueBundle.so $(1)/usr/lib/
 endef
 
 define Package/iotivity-example-garage/install
        $(INSTALL_DIR) $(1)/usr/bin
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/resource/examples/garageclient $(1)/usr/bin/garageclient
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/resource/examples/garageserver $(1)/usr/bin/garageserver
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/resource/examples/garageclient $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/out/linux/$(ARCH)/release/resource/examples/garageserver $(1)/usr/bin/
 endef
 
 
 $(eval $(call BuildPackage,iotivity))
+$(eval $(call BuildPackage,iotivity-cpp))
 $(eval $(call BuildPackage,iotivity-things-manager-lib))
-$(eval $(call BuildPackage,iotivity-plugin-manager-lib))
-$(eval $(call BuildPackage,iotivity-mqttclient))
 $(eval $(call BuildPackage,iotivity-oic-middle))
 $(eval $(call BuildPackage,iotivity-things-manager))
+$(eval $(call BuildPackage,iotivity-resource-container-lib))
+$(eval $(call BuildPackage,iotivity-resource-container-sample))
+$(eval $(call BuildPackage,iotivity-resource-container-hue))
 $(eval $(call BuildPackage,iotivity-example-garage))
index 6ba2265922c30383c4915084e785c9baeb2cbc6f..981abf6fd44decbbd486ef92d679a8e736aced55 100644 (file)
@@ -1,6 +1,6 @@
 --- a/resource/SConscript
 +++ b/resource/SConscript
-@@ -61,7 +61,7 @@ if target_os == 'linux':
+@@ -71,7 +71,7 @@ if target_os == 'linux':
        SConscript('csdk/stack/samples/linux/secure/SConscript')
  
        # Build C/C++ unit tests
@@ -8,4 +8,33 @@
 +      # SConscript('unit_tests.scons')
  
  elif target_os == 'darwin':
-       # Build linux samples for now.
+       env.Command('../../out/darwin/iotivity-csdk.framework',None,src_dir + '/tools/darwin/mkfwk_osx.sh')
+--- a/service/resource-encapsulation/SConscript
++++ b/service/resource-encapsulation/SConscript
+@@ -113,10 +113,10 @@ SConscript('examples/SConscript')
+ # Build UnitTests Resource Client , resourceCache and resourceBroker and 
+ # DiscoveryManager
+ ################################################ ######################
+-if target_os == 'linux':
+-    SConscript('unittests/SConscript')
+-    SConscript('src/resourceCache/unittests/SConscript')
+-    SConscript('src/resourceBroker/unittest/SConscript')
++# if target_os == 'linux':
++#     SConscript('unittests/SConscript')
++#     SConscript('src/resourceCache/unittests/SConscript')
++#     SConscript('src/resourceBroker/unittest/SConscript')
+ if target_os == 'android':
+     SConscript('android/SConscript')
+\ No newline at end of file
+--- a/service/things-manager/SConscript
++++ b/service/things-manager/SConscript
+@@ -71,6 +71,6 @@ SConscript('sampleapp/SConscript')
+ ######################################################################
+ # Build UnitTests Things Manager
+ ################################################ ######################
+-if target_os == 'linux':
+-    SConscript('unittests/SConscript')
++# if target_os == 'linux':
++#     SConscript('unittests/SConscript')
index 62a2b768e6265d0bfbd2cd694b0ea6022961704b..4076d9b917c3c2d8734e2411065e3520ded46a08 100644 (file)
@@ -9,7 +9,7 @@ Subject: [PATCH 3/4] 004-use-env.patch
 
 --- a/build_common/SConscript
 +++ b/build_common/SConscript
-@@ -106,6 +106,26 @@ tc_set_msg = '''
+@@ -137,6 +137,26 @@ tc_set_msg = '''
  * cause inexplicable errors.                                                  *
  *******************************************************************************
  '''
@@ -35,4 +35,4 @@ Subject: [PATCH 3/4] 004-use-env.patch
 +
  if env.get('VERBOSE') == False:
        env['CCCOMSTR'] = "Compiling $TARGET"
-       env['CXXCOMSTR'] = "Compiling $TARGET"
+       env['SHCCCOMSTR'] = "Compiling $TARGET"
diff --git a/net/iotivity/patches/010-big-endian.patch b/net/iotivity/patches/010-big-endian.patch
new file mode 100644 (file)
index 0000000..899bb34
--- /dev/null
@@ -0,0 +1,26 @@
+From d647872aee4871e286ddedf4931792086f5b4565 Mon Sep 17 00:00:00 2001
+From: Hauke Mehrtens <hauke.mehrtens@lantiq.com>
+Date: Mon, 26 Oct 2015 14:32:39 +0100
+Subject: [PATCH] libcoap: remove fix build error on big endian systems
+
+In the big endian case an additional typedef is added in a wrong
+position in TinyDTLS. This breaks compiling this code on big endian
+systems.
+
+Change-Id: Iad854aba112ddb23bf490b064ec6fbf5d01ce6b6
+Signed-off-by: Hauke Mehrtens <hauke.mehrtens@lantiq.com>
+---
+ resource/csdk/connectivity/lib/libcoap-4.1.1/pdu.h |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/resource/csdk/connectivity/lib/libcoap-4.1.1/pdu.h
++++ b/resource/csdk/connectivity/lib/libcoap-4.1.1/pdu.h
+@@ -194,7 +194,7 @@ typedef enum
+ #ifdef WORDS_BIGENDIAN
+ typedef union
+ {
+-    typedef struct
++    struct
+     {
+         unsigned int version:2; /* protocol version */
+         unsigned int type:2; /* type flag */
diff --git a/net/iotivity/patches/010-libcoap-fix-big-endian-problems.patch b/net/iotivity/patches/010-libcoap-fix-big-endian-problems.patch
deleted file mode 100644 (file)
index 63a9ad5..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-From 62c0a14ccd333d0e55fc431f151253a72a2836d0 Mon Sep 17 00:00:00 2001
-From: Hauke Mehrtens <hauke.mehrtens@lantiq.com>
-Date: Mon, 8 Jun 2015 21:57:52 +0200
-Subject: [PATCH] libcoap: fix big endian problems
-
-When this is build for a big endian Linux system WORDS_BIGENDIAN was
-not be set. This patch sets it correctly so it will not generate broken
-code on big endian systems.
-This was tested on MIPS BE 32 Bit.
-
-Change-Id: I59dd07d8020c553318e2aa43894a2185fe9b9286
-Signed-off-by: Hauke Mehrtens <hauke.mehrtens@lantiq.com>
-Reviewed-on: https://gerrit.iotivity.org/gerrit/1219
-Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
-Reviewed-by: Erich Keane <erich.keane@intel.com>
----
- resource/csdk/connectivity/lib/libcoap-4.1.1/config.h | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
---- a/resource/csdk/connectivity/lib/libcoap-4.1.1/config.h
-+++ b/resource/csdk/connectivity/lib/libcoap-4.1.1/config.h
-@@ -135,8 +135,8 @@
- #  define WORDS_BIGENDIAN 1
- # endif
- #else
--# ifndef WORDS_BIGENDIAN
--/* #  undef WORDS_BIGENDIAN */
-+# if defined(__BYTE_ORDER__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
-+#  define WORDS_BIGENDIAN 1
- # endif
- #endif
diff --git a/net/iotivity/patches/011-cdsk-fix-big-endian-problem.patch b/net/iotivity/patches/011-cdsk-fix-big-endian-problem.patch
deleted file mode 100644 (file)
index 833f600..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-From 7189bc088f558945972d82a9a3427001cb20000a Mon Sep 17 00:00:00 2001
-From: Hauke Mehrtens <hauke.mehrtens@lantiq.com>
-Date: Mon, 8 Jun 2015 22:03:19 +0200
-Subject: [PATCH] cdsk: fix big endian problem
-
-Without this patch the client will endianes swap the port number when
-sending the detailed request after it got the answer for his multicast
-get. Use the same method for storing the port number in the address
-array in ever part of the code and do not use memcpy and manual
-bytewise coping mixed over the code. memcpy was used once and byte wise
-copy was used twice so I choose the majority.
-This was tested on MIPS BE 32 Bit.
-
-Change-Id: Ib486171987004d10209d2bbf6b1d9ada75235651
-Signed-off-by: Hauke Mehrtens <hauke.mehrtens@lantiq.com>
-Reviewed-on: https://gerrit.iotivity.org/gerrit/1220
-Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
-Reviewed-by: Doug Hudson <douglas.hudson@intel.com>
-Reviewed-by: Erich Keane <erich.keane@intel.com>
----
- resource/csdk/stack/src/ocstack.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
---- a/resource/csdk/stack/src/ocstack.c
-+++ b/resource/csdk/stack/src/ocstack.c
-@@ -723,7 +723,8 @@ OCStackResult UpdateResponseAddr(OCDevAd
-         address->addr[i] = atoi(tok);
-     }
--    memcpy(&address->addr[4], &endPoint->addressInfo.IP.port, sizeof(uint16_t));
-+    address->addr[4] = (uint8_t)endPoint->addressInfo.IP.port;
-+    address->addr[5] = (uint8_t)(endPoint->addressInfo.IP.port >> 8);
-     ret = OC_STACK_OK;
- exit:
diff --git a/net/iotivity/patches/011-musl-use-inttypes.patch b/net/iotivity/patches/011-musl-use-inttypes.patch
new file mode 100644 (file)
index 0000000..bd74f37
--- /dev/null
@@ -0,0 +1,31 @@
+From 9510445c5002b0e3502d2ac09723e1b2ddd03704 Mon Sep 17 00:00:00 2001
+From: Hauke Mehrtens <hauke.mehrtens@lantiq.com>
+Date: Mon, 26 Oct 2015 14:39:55 +0100
+Subject: [PATCH] tinydtls: use types from inittype.h, fix musl libc
+
+The SHA2 code currently uses u_int32_t and similar types without
+defining them. This type is not defined by the POSIX standard, but many
+libc implementations have it as a non standard extension. In the musl
+libc it is not implemented and I am getting a compile error when using
+u_int32_t, I should use uint32_t, which is done when
+SHA2_USE_INTTYPES_H is set.
+
+This fixes build with musl libs used in OpenWrt.
+
+Change-Id: I485435ddb8b1a2359caedd335ab54f91ca5e3f3e
+Signed-off-by: Hauke Mehrtens <hauke.mehrtens@lantiq.com>
+---
+ extlibs/tinydtls/SConscript |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/extlibs/tinydtls/SConscript
++++ b/extlibs/tinydtls/SConscript
+@@ -68,7 +68,7 @@ if not env.get('RELEASE'):
+ else:
+       env.AppendUnique(CPPDEFINES = ['NDEBUG'])
+-env.AppendUnique(CPPDEFINES = ['DTLSV12',  'WITH_SHA256', 'DTLS_CHECK_CONTENTTYPE'])
++env.AppendUnique(CPPDEFINES = ['DTLSV12',  'WITH_SHA256', 'DTLS_CHECK_CONTENTTYPE', 'SHA2_USE_INTTYPES_H'])
+ libtinydtls = env.StaticLibrary('libtinydtls', env.get('TINYDTLS_SRC'), OBJPREFIX='libtinydtls_')
diff --git a/net/iotivity/patches/012-connectivity-fix-getnameinfo-call-for-musl-libc.patch b/net/iotivity/patches/012-connectivity-fix-getnameinfo-call-for-musl-libc.patch
new file mode 100644 (file)
index 0000000..99f9b78
--- /dev/null
@@ -0,0 +1,161 @@
+From 75a19e9059e671442abe40908ba80c2da614118d Mon Sep 17 00:00:00 2001
+From: Hauke Mehrtens <hauke@hauke-m.de>
+Date: Mon, 26 Oct 2015 22:42:40 +0100
+Subject: [PATCH] connectivity: fix getnameinfo() call for musl libc
+
+The musl libc and also the libc from net/freebsd are currently checking
+if the size of the sockaddr given to getnameinfo() matches the size for
+this family and it fails when giving sizeof(struct sockaddr_storage).
+This patch fixes this problem by making the caller also provide the
+size of the struct sockaddr_storage.
+
+I am currently trying to get a fix for this problem into musl libc, but
+IoTivity should still fix this.
+
+This also fixes a wrong error message.
+
+Change-Id: Ie9b89523b5ba20e536c03e3ad85c65bd5ff2ba53
+Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
+---
+ resource/csdk/connectivity/inc/caadapterutils.h              | 12 ++++++++----
+ .../csdk/connectivity/src/adapter_util/caadapternetdtls.c    | 10 +++++-----
+ resource/csdk/connectivity/src/adapter_util/caadapterutils.c |  9 +++++----
+ resource/csdk/connectivity/src/ip_adapter/caipserver.c       |  2 +-
+ resource/csdk/connectivity/src/tcp_adapter/catcpserver.c     |  2 +-
+ 5 files changed, 20 insertions(+), 15 deletions(-)
+
+--- a/resource/csdk/connectivity/inc/caadapterutils.h
++++ b/resource/csdk/connectivity/inc/caadapterutils.h
+@@ -212,13 +212,16 @@ void CAClearNetInterfaceInfoList(u_array
+  */
+ void CAClearServerInfoList(u_arraylist_t *serverInfoList);
++#ifndef WITH_ARDUINO
+ /**
+  * Convert address from binary to string.
+- * @param[in]    ipaddr   IP address info.
+- * @param[out]   host     address string (must be CA_IPADDR_SIZE).
+- * @param[out]   port     host order port number.
++ * @param[in]    sockAddr     IP address info.
++ * @param[in]    sockAddrLen  size of sockAddr.
++ * @param[out]   host         address string (must be CA_IPADDR_SIZE).
++ * @param[out]   port         host order port number.
+  */
+-void CAConvertAddrToName(const struct sockaddr_storage *sockaddr, char *host, uint16_t *port);
++void CAConvertAddrToName(const struct sockaddr_storage *sockAddr, socklen_t sockAddrLen,
++                         char *host, uint16_t *port);
+ /**
+  * Convert address from string to binary.
+@@ -227,6 +230,7 @@ void CAConvertAddrToName(const struct so
+  * @param[out]  ipaddr    IP address info.
+  */
+ void CAConvertNameToAddr(const char *host, uint16_t port, struct sockaddr_storage *sockaddr);
++#endif /* WITH_ARDUINO */
+ #ifdef __ANDROID__
+ /**
+--- a/resource/csdk/connectivity/src/adapter_util/caadapternetdtls.c
++++ b/resource/csdk/connectivity/src/adapter_util/caadapternetdtls.c
+@@ -417,7 +417,7 @@ static int32_t CAReadDecryptedPayload(dt
+             ((addrInfo->addr.st.ss_family == AF_INET) ? CA_IPV4 : CA_IPV6) | CA_SECURE, .port = 0 },
+             .identity =
+             { 0 } };
+-    CAConvertAddrToName(&(addrInfo->addr.st), sep.endpoint.addr, &sep.endpoint.port);
++    CAConvertAddrToName(&(addrInfo->addr.st), addrInfo->size, sep.endpoint.addr, &sep.endpoint.port);
+     if (NULL == g_caDtlsContext)
+     {
+@@ -468,7 +468,7 @@ static int32_t CASendSecureData(dtls_con
+     CAEndpoint_t endpoint = {.adapter = CA_DEFAULT_ADAPTER};
+-    CAConvertAddrToName(&(addrInfo->addr.st), endpoint.addr, &endpoint.port);
++    CAConvertAddrToName(&(addrInfo->addr.st), addrInfo->size, endpoint.addr, &endpoint.port);
+     endpoint.flags = addrInfo->addr.st.ss_family == AF_INET ? CA_IPV4 : CA_IPV6;
+     endpoint.flags |= CA_SECURE;
+     endpoint.adapter = CA_ADAPTER_IP;
+@@ -515,7 +515,7 @@ static int32_t CAHandleSecureEvent(dtls_
+         stCADtlsAddrInfo_t *addrInfo = (stCADtlsAddrInfo_t *)session;
+         char peerAddr[MAX_ADDR_STR_SIZE_CA] = { 0 };
+         uint16_t port = 0;
+-        CAConvertAddrToName(&(addrInfo->addr.st), peerAddr, &port);
++        CAConvertAddrToName(&(addrInfo->addr.st), addrInfo->size, peerAddr, &port);
+         CARemovePeerFromPeerInfoList(peerAddr, port);
+     }
+@@ -553,7 +553,7 @@ static int32_t CAGetPskCredentials(dtls_
+         stCADtlsAddrInfo_t *addrInfo = (stCADtlsAddrInfo_t *)session;
+         char peerAddr[MAX_ADDR_STR_SIZE_CA] = { 0 };
+         uint16_t port = 0;
+-        CAConvertAddrToName(&(addrInfo->addr.st), peerAddr, &port);
++        CAConvertAddrToName(&(addrInfo->addr.st), addrInfo->size, peerAddr, &port);
+         if(CA_STATUS_OK != CAAddIdToPeerInfoList(peerAddr, port, desc, descLen) )
+         {
+@@ -933,7 +933,7 @@ static int CAVerifyCertificate(struct dt
+     stCADtlsAddrInfo_t *addrInfo = (stCADtlsAddrInfo_t *)session;
+     char peerAddr[MAX_ADDR_STR_SIZE_CA] = { 0 };
+     uint16_t port = 0;
+-    CAConvertAddrToName(&(addrInfo->addr.st), peerAddr, &port);
++    CAConvertAddrToName(&(addrInfo->addr.st), addrInfo->size, peerAddr, &port);
+     CAResult_t result = CAAddIdToPeerInfoList(peerAddr, port,
+             crtChain[0].subject.data + DER_SUBJECT_HEADER_LEN + 2, crtChain[0].subject.data[DER_SUBJECT_HEADER_LEN + 1]);
+--- a/resource/csdk/connectivity/src/adapter_util/caadapterutils.c
++++ b/resource/csdk/connectivity/src/adapter_util/caadapterutils.c
+@@ -122,14 +122,15 @@ CAResult_t CAParseIPv4AddressInternal(co
+  * These two conversion functions return void because errors can't happen
+  * (because of NI_NUMERIC), and there's nothing to do if they do happen.
+  */
+-void CAConvertAddrToName(const struct sockaddr_storage *sockAddr, char *host, uint16_t *port)
++void CAConvertAddrToName(const struct sockaddr_storage *sockAddr, socklen_t sockAddrLen,
++                         char *host, uint16_t *port)
+ {
+     VERIFY_NON_NULL_VOID(sockAddr, CA_ADAPTER_UTILS_TAG, "sockAddr is null");
+     VERIFY_NON_NULL_VOID(host, CA_ADAPTER_UTILS_TAG, "host is null");
+     VERIFY_NON_NULL_VOID(port, CA_ADAPTER_UTILS_TAG, "port is null");
+     int r = getnameinfo((struct sockaddr *)sockAddr,
+-                        sizeof (struct sockaddr_storage),
++                        sockAddrLen,
+                         host, MAX_ADDR_STR_SIZE_CA,
+                         NULL, 0,
+                         NI_NUMERICHOST|NI_NUMERICSERV);
+@@ -138,12 +139,12 @@ void CAConvertAddrToName(const struct so
+         if (EAI_SYSTEM == r)
+         {
+             OIC_LOG_V(ERROR, CA_ADAPTER_UTILS_TAG,
+-                            "getaddrinfo failed: errno %s", strerror(errno));
++                            "getnameinfo failed: errno %s", strerror(errno));
+         }
+         else
+         {
+             OIC_LOG_V(ERROR, CA_ADAPTER_UTILS_TAG,
+-                            "getaddrinfo failed: %s", gai_strerror(r));
++                            "getnameinfo failed: %s", gai_strerror(r));
+         }
+         return;
+     }
+--- a/resource/csdk/connectivity/src/ip_adapter/caipserver.c
++++ b/resource/csdk/connectivity/src/ip_adapter/caipserver.c
+@@ -299,7 +299,7 @@ static CAResult_t CAReceiveMessage(int f
+         }
+     }
+-    CAConvertAddrToName(&srcAddr, sep.endpoint.addr, &sep.endpoint.port);
++    CAConvertAddrToName(&srcAddr, msg.msg_namelen, sep.endpoint.addr, &sep.endpoint.port);
+     if (flags & CA_SECURE)
+     {
+--- a/resource/csdk/connectivity/src/tcp_adapter/catcpserver.c
++++ b/resource/csdk/connectivity/src/tcp_adapter/catcpserver.c
+@@ -478,7 +478,7 @@ static void CAAcceptHandler(void *data)
+                 }
+                 svritem->u4tcp.fd = sockfd;
+-                CAConvertAddrToName((struct sockaddr_storage *)&clientaddr,
++                CAConvertAddrToName((struct sockaddr_storage *)&clientaddr, clientlen,
+                                     (char *) &svritem->addr, &svritem->u4tcp.port);
+                 ca_mutex_lock(g_mutexObjectList);
diff --git a/net/iotivity/patches/030-fix-missing-lib.patch b/net/iotivity/patches/030-fix-missing-lib.patch
deleted file mode 100644 (file)
index c5ba270..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/service/protocol-plugin/sample-app/linux/SConscript
-+++ b/service/protocol-plugin/sample-app/linux/SConscript
-@@ -41,7 +41,7 @@ if target_os not in ['windows', 'winrt']
- sample_env.AppendUnique(LIBS = ['oc', 'oc_logger', 'octbstack',
-                                 'connectivity_abstraction', 'coap',
--                                'ppm', 'pmimpl', 'dl'])
-+                                'ppm', 'boost_system', 'pmimpl', 'dl'])
- if env.get('SECURED') == '1':
-     sample_env.AppendUnique(LIBS = ['tinydtls'])
diff --git a/net/iotivity/patches/030-remove-check-for-curl.patch b/net/iotivity/patches/030-remove-check-for-curl.patch
new file mode 100644 (file)
index 0000000..a7191aa
--- /dev/null
@@ -0,0 +1,53 @@
+--- a/service/resource-container/SConscript
++++ b/service/resource-container/SConscript
+@@ -176,35 +176,21 @@ if target_os in ['linux', 'tizen', 'andr
+ # build hue sample bundle
+ ######################################################################
+-conf2 = Configure(lib_env)
+-if not conf2.CheckLib('curl'):
+-    print '''X
+-*********************************** Error *************************************
+-* Cannot build hue sample. Please install libcurl.
+-* Example (Ubuntu):
+-*   sudo apt-get install libcurl4-openssl-dev
+-*   sudo ldconfig
+-* Hint: check with pkg-config --libs libcurl and clear scons cache.
+-* Skipping hue sample build.
+-*******************************************************************************
+-    '''
+-else:
+-    hue_resource_bundle_env = resource_container_env.Clone()
+-    hue_resource_bundle_env.AppendUnique(CCFLAGS = ['-fPIC'])
+-
+-    HUE_RESOURCE_BUNDLE_DIR = 'examples/HueSampleBundle/'
+-    hue_resource_bundle_env.AppendUnique(CPPPATH = [
+-            HUE_RESOURCE_BUNDLE_DIR + 'include',
+-            'include/'
+-            ])
+-
+-    hue_resource_bundle_env.PrependUnique(LIBS = ['curl', 'rcs_container'])
+-
+-    hue_resource_bundle_src = [ Glob(HUE_RESOURCE_BUNDLE_DIR + 'src/*.cpp')]
+-
+-    HueBundle = hue_resource_bundle_env.SharedLibrary('HueBundle', hue_resource_bundle_src)
+-    hue_resource_bundle_env.InstallTarget(HueBundle, 'libHueBundle')
+-lib_env = conf2.Finish()
++hue_resource_bundle_env = resource_container_env.Clone()
++hue_resource_bundle_env.AppendUnique(CCFLAGS = ['-fPIC'])
++
++HUE_RESOURCE_BUNDLE_DIR = 'examples/HueSampleBundle/'
++hue_resource_bundle_env.AppendUnique(CPPPATH = [
++        HUE_RESOURCE_BUNDLE_DIR + 'include',
++        'include/'
++        ])
++
++hue_resource_bundle_env.PrependUnique(LIBS = ['curl', 'rcs_container'])
++
++hue_resource_bundle_src = [ Glob(HUE_RESOURCE_BUNDLE_DIR + 'src/*.cpp')]
++
++HueBundle = hue_resource_bundle_env.SharedLibrary('HueBundle', hue_resource_bundle_src)
++hue_resource_bundle_env.InstallTarget(HueBundle, 'libHueBundle')
+ ######################################################################
+ # build resource container unit tests
diff --git a/net/iotivity/patches/040-fix-things-manager.patch b/net/iotivity/patches/040-fix-things-manager.patch
deleted file mode 100644 (file)
index 972841b..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/service/things-manager/sampleapp/linux/configuration/SConscript
-+++ b/service/things-manager/sampleapp/linux/configuration/SConscript
-@@ -57,7 +57,7 @@ conserver = linux_sample_env.Program('co
- conclient = linux_sample_env.Program('con-client', 'con-client.cpp')
- bootstrapserver = linux_sample_env.Program('bootstrapserver', 'bootstrapserver.cpp')
- Alias("ConServerApp", conserver)
--Alias("ConCleintApp", conclient)
-+Alias("ConClientApp", conclient)
- Alias("BootstrapServerApp", bootstrapserver)
- env.AppendTarget('ConServerApp')
- env.AppendTarget('ConClientApp')
diff --git a/net/iotivity/patches/050-fix-OICMidle.patch b/net/iotivity/patches/050-fix-OICMidle.patch
deleted file mode 100644 (file)
index a03ed26..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
---- a/resource/csdk/stack/include/octypes.h
-+++ b/resource/csdk/stack/include/octypes.h
-@@ -35,9 +35,9 @@ extern "C" {
- //Don't want to expose to application layer that lower level stack is using CoAP.
- /// Authority + URI string to prefix well known queries
--#define OC_WELL_KNOWN_QUERY                  "224.0.1.187:5683/oc/core"
-+#define OC_WELL_KNOWN_QUERY                  "/oc/core"
- #define OC_MULTICAST_DISCOVERY_URI           "/oc/core"
--#define OC_EXPLICIT_DEVICE_DISCOVERY_URI     "224.0.1.187:5683/oc/core/d?rt=core.led"
-+#define OC_EXPLICIT_DEVICE_DISCOVERY_URI     "/oc/core/d?rt=core.led"
- /// Multicast address and port string to prefix multicast queries
- #define OC_MULTICAST_PREFIX                  "224.0.1.187:5683"
- /// IP Multicast address to use for multicast requests
diff --git a/net/iotivity/patches/140-remove-glib2.patch b/net/iotivity/patches/140-remove-glib2.patch
new file mode 100644 (file)
index 0000000..36bb82c
--- /dev/null
@@ -0,0 +1,33 @@
+--- a/resource/csdk/connectivity/src/bt_le_adapter/linux/SConscript
++++ b/resource/csdk/connectivity/src/bt_le_adapter/linux/SConscript
+@@ -31,7 +31,7 @@ this_build_dir = os.path.join(root_build
+ # The Linux BLE adapter implementation uses GDBus to make D-Bus based
+ # method calls to BlueZ.  Pull in the necessary dependencies.
+-env.ParseConfig("pkg-config gio-unix-2.0 --cflags --libs")
++# env.ParseConfig("pkg-config gio-unix-2.0 --cflags --libs")
+ # Set up commands to generate GDBus code from the D-Bus introspection
+ # XML.
+--- a/resource/csdk/security/provisioning/sample/SConscript
++++ b/resource/csdk/security/provisioning/sample/SConscript
+@@ -58,7 +58,7 @@ if env.get('SECURED') == '1':
+ if env.get('DTLS_WITH_X509') == '1':
+       provisioning_env.AppendUnique(LIBS = ['CKManager'])
+       provisioning_env.AppendUnique(LIBS = ['asn1'])
+-provisioning_env.ParseConfig('pkg-config --libs glib-2.0');
++# provisioning_env.ParseConfig('pkg-config --libs glib-2.0');
+ provisioning_env.AppendUnique(CPPDEFINES = ['TB_LOG'])
+--- a/resource/csdk/security/provisioning/SConscript
++++ b/resource/csdk/security/provisioning/SConscript
+@@ -73,7 +73,7 @@ provisioning_env.AppendUnique(LIBS = ['t
+ if env.get('DTLS_WITH_X509') == '1':
+       provisioning_env.AppendUnique(LIBS = ['CKManger'])
+-provisioning_env.ParseConfig('pkg-config --libs glib-2.0');
++# provisioning_env.ParseConfig('pkg-config --libs glib-2.0');
+ if target_os == 'android':
+       provisioning_env.AppendUnique(CXXFLAGS = ['-frtti', '-fexceptions'])
diff --git a/net/iotivity/patches/200-examples-OICMiddle-try-to-load-security-configuratio.patch b/net/iotivity/patches/200-examples-OICMiddle-try-to-load-security-configuratio.patch
new file mode 100644 (file)
index 0000000..4bcd322
--- /dev/null
@@ -0,0 +1,44 @@
+From ce27d50b9c11386242487852f14b025ed6c67701 Mon Sep 17 00:00:00 2001
+From: Hauke Mehrtens <hauke.mehrtens@lantiq.com>
+Date: Wed, 19 Aug 2015 16:47:21 +0200
+Subject: [PATCH 14/14] examples: OICMiddle: try to load security
+ configuration by default
+
+Load the security configuration from the default location by default.
+When it is not found security will just not work.
+
+Signed-off-by: Hauke Mehrtens <hauke.mehrtens@lantiq.com>
+---
+ examples/OICMiddle/OICMiddle.cpp |    9 ++++++++-
+ examples/OICMiddle/OICMiddle.h   |    1 +
+ 2 files changed, 9 insertions(+), 1 deletion(-)
+
+--- a/examples/OICMiddle/OICMiddle.cpp
++++ b/examples/OICMiddle/OICMiddle.cpp
+@@ -99,8 +99,15 @@ void Middle::startPlatform()
+     //std::string ipaddr = INADDR_ANY;
+     std::string ipaddr = "0.0.0.0";
++    // Initialize Persistent Storage for SVR database
++    middle.ps.open = fopen;
++    middle.ps.read = fread;
++    middle.ps.write = fwrite;
++    middle.ps.close = fclose;
++    middle.ps.unlink = unlink;
++
+     PlatformConfig cfg { ServiceType::InProc, ModeType::Both,
+-                  ipaddr, port, QualityOfService::LowQos};
++                  ipaddr, port, QualityOfService::LowQos, &middle.ps};
+     OC::OCPlatform::Configure(cfg);
+ }
+--- a/examples/OICMiddle/OICMiddle.h
++++ b/examples/OICMiddle/OICMiddle.h
+@@ -83,6 +83,7 @@ protected:
+     MiddleServer *m_server;
+     LineInput *m_lineInput;
+     RestInput *m_restInput;
++    OCPersistentStorage ps;
+ protected:
+     void startPlatform();
index b68c726bc3990a5379953b27d12fd43040d5731d..6d7d93c741ea89489f736643b17443b9980d0f2e 100644 (file)
@@ -29,7 +29,7 @@ define Package/keepalived
   CATEGORY:=Network
   TITLE:=Failover and monitoring daemon for LVS clusters
   URL:=http://www.keepalived.org/
-  DEPENDS:=+libnl +libopenssl
+  DEPENDS:=+libnl-genl +libopenssl
 endef
 
 define Package/keepalived/description
index 0ed810f045056676cf30f30aba24c1baaa70f9b8..a245d675337c2ab49a9578709b50077a53ff70dd 100644 (file)
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=knot
-PKG_VERSION:=1.6.4
+PKG_VERSION:=1.6.5
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
 PKG_SOURCE_URL:=https://secure.nic.cz/files/knot-dns/
-PKG_MD5SUM:=a8ac2be2dc7d22c6df1aa5387ae4096b
+PKG_MD5SUM:=934b6feaeefd0df7b3be6709e39b19ce
 
 PKG_MAINTAINER:=Daniel Salzman <daniel.salzman@nic.cz>
 PKG_LICENSE:=GPL-2.0+
index 5f6907032be8850ab29e4c5c6c68a36724522628..c9c84de910399881cae9747a20323bf2d54c5260 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=krb5
-PKG_VERSION:=1.13.1
+PKG_VERSION:=1.13.2
 PKG_RELEASE:=1
 
 PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org>
@@ -18,7 +18,7 @@ PKG_LICENSE_FILES:=NOTICE
 
 PKG_SOURCE:=krb5-$(PKG_VERSION)-signed.tar
 PKG_SOURCE_URL:=http://web.mit.edu/kerberos/dist/krb5/1.13/
-PKG_MD5SUM:=567586cdf02aa8c842c2fab7a94f3c1f
+PKG_MD5SUM:=f7ebfa6c99c10b16979ebf9a98343189
 
 PKG_BUILD_PARALLEL:=1
 PKG_INSTALL:=1
index 5c6a10a9d2138cc7b9f14c412fc0460c19b75820..72eb7b66d04a6c2295f8b284251c9e535487493f 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=lighttpd
-PKG_VERSION:=1.4.36
+PKG_VERSION:=1.4.37
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=http://download.lighttpd.net/lighttpd/releases-1.4.x
-PKG_MD5SUM:=1843daffcb018aa528f6d15d43544654
+PKG_MD5SUM:=ca40168f54b46ee29475868ced8507d6
 
 PKG_LICENSE:=BSD-3c
 PKG_LICENSE_FILES:=COPYING
diff --git a/net/lighttpd/patches/001-fix-out-of-filedescriptors-when-uploading-large-file.patch b/net/lighttpd/patches/001-fix-out-of-filedescriptors-when-uploading-large-file.patch
deleted file mode 100644 (file)
index 6ef9403..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-From: =?UTF-8?q?Stefan=20B=C3=BChler?= <stbuehler@web.de>
-Date: Thu, 13 Aug 2015 18:44:27 +0000
-Subject: [PATCH] fix out-of-filedescriptors when uploading "large" files
- (fixes #2660, thx rmilecki)
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-From: Stefan Bühler <stbuehler@web.de>
-
-git-svn-id: svn://svn.lighttpd.net/lighttpd/branches/lighttpd-1.4.x@3009 152afb58-edef-0310-8abb-c4023f1b3aa9
----
- src/chunk.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/src/chunk.c
-+++ b/src/chunk.c
-@@ -432,7 +432,7 @@ static int chunkqueue_append_to_tempfile
-        * */
-       if (NULL != dest->last
--              && FILE_CHUNK != dest->last->type
-+              && FILE_CHUNK == dest->last->type
-               && dest->last->file.is_temp
-               && -1 != dest->last->file.fd
-               && 0 == dest->last->offset) {
index 4742deeb7a297882a1819b038be752fe95d2ffeb..3f9ea0c66dad65a3236a6834b7ed08f19038288f 100644 (file)
@@ -33,7 +33,7 @@ define Package/lispd
   CATEGORY:=Network
   TITLE:=Locator/ID separation protocol (using TUN)
   URL:=https://github.com/LISPmob
-  DEPENDS:= +librt +libopenssl +confuse +kmod-tun +uci +kmod-ipv6
+  DEPENDS:= +librt +libopenssl +confuse +kmod-tun +uci @IPV6
   $(call Package/lispd/default)
 endef
 
index 7c67ed0991a77c9b6b2f44163cd83bbffa980c3c..815a53231bc11c2c1fec6b9f7e08cdac4fdd0781 100644 (file)
@@ -1,17 +1,17 @@
 #
-# Copyright (C) 2014 OpenWrt.org
+# Copyright (C) 2014-2015 OpenWrt.org
 #
 
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=mac-telnet
-PKG_VERSION:=2014-09-23
+PKG_VERSION:=2015-09-02
 PKG_RELEASE=$(PKG_SOURCE_VERSION)
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/jow-/MAC-Telnet.git
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=269a5d7d53b59a2e4657ad3689e46ac057c22e28
+PKG_SOURCE_VERSION:=37d83cbc9c07266d6c957d27bf75285b305eceab
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
 
 PKG_LICENSE:=GPL-2.0+
index 5eaedd2ec53c11db8327f382bf90b35cb24f0f4c..cfc552701bdc6d6afe42592127425edb01516d9b 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=mDNSResponder
 PKG_VERSION:=567
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=mDNSResponder-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://opensource.apple.com/tarballs/mDNSResponder/
index 02940cf2fd6a17ec5f1f83321750df5398318b15..df56608d5bc93a094144661af3e9e7ee184811a8 100644 (file)
@@ -313,7 +313,7 @@ index 6effa12..7c1d6eb 100755
  }
  
 diff --git a/mDNSPosix/mDNSUNP.c b/mDNSPosix/mDNSUNP.c
-index b392fc7..fe800af 100755
+index b392fc7..f551ad5 100755
 --- a/mDNSPosix/mDNSUNP.c
 +++ b/mDNSPosix/mDNSUNP.c
 @@ -63,6 +63,7 @@
@@ -357,9 +357,12 @@ index b392fc7..fe800af 100755
              myflags = 0;
              if (strncmp(lastname, ifname, IFNAMSIZ) == 0) {
                  if (doaliases == 0)
-@@ -205,7 +208,8 @@ gotError:
+@@ -204,8 +207,11 @@ gotError:
+         res0=NULL;
      }
  done:
++    if (fp)
++      fclose(fp);
      if (sockfd != -1) {
 -        assert(close(sockfd) == 0);
 +      int rv = close(sockfd);
index 1aac9d8723351d8a96e087054c0a6715ded4c5b8..87ff529e8e11663cc746d72d23928f9115ab611d 100644 (file)
@@ -9,14 +9,14 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=mosquitto
-PKG_VERSION:=1.4.3
-PKG_RELEASE:=2
+PKG_VERSION:=1.4.4
+PKG_RELEASE:=1
 PKG_LICENSE:=BSD-3-Clause
 PKG_LICENSE_FILES:=LICENSE.txt
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://mosquitto.org/files/source/
-PKG_MD5SUM:=1c1c750525546bc13d8d72e56a0742a7
+PKG_MD5SUM:=89a57f11cdfec140fa21fe3d4493b2ca
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
 
 include $(INCLUDE_DIR)/package.mk
diff --git a/net/mosquitto/patches/001-free-counting-bug-475707.patch b/net/mosquitto/patches/001-free-counting-bug-475707.patch
deleted file mode 100644 (file)
index 6b16145..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/lib/memory_mosq.c b/lib/memory_mosq.c
-index b1f5bfd..4d8217d 100644
---- a/lib/memory_mosq.c
-+++ b/lib/memory_mosq.c
-@@ -54,6 +54,9 @@ void *mosquitto__calloc(size_t nmemb, size_t size)
- void mosquitto__free(void *mem)
- {
- #ifdef REAL_WITH_MEMORY_TRACKING
-+      if(!mem){
-+              return;
-+      }
-       memcount -= malloc_usable_size(mem);
- #endif
-       free(mem);
index d74b15263ddeb43581c1d4eb0b40304e0072c904..b4b49ce00a65518af351f138cfeffaa0fd4d565c 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=luci-app-mwan3
 PKG_VERSION:=1.4
-PKG_RELEASE:=3
+PKG_RELEASE:=4
 PKG_MAINTAINER:=Aedan Renner <chipdankly@gmail.com>
 PKG_LICENSE:=GPLv2
 
index 7fe4442c9a9b4bdfddc0a21b94557749e4c65819..bd343608ea5c970d79b26d2d8dbfca00165a19d0 100644 (file)
@@ -3,6 +3,8 @@ module("luci.controller.mwan3", package.seeall)
 sys = require "luci.sys"
 ut = require "luci.util"
 
+ip = "/usr/bin/ip -4 "
+
 function index()
        if not nixio.fs.access("/etc/config/mwan3") then
                return
@@ -61,7 +63,7 @@ end
 
 function getInterfaceStatus(ruleNumber, interfaceName)
        if ut.trim(sys.exec("uci -p /var/state get mwan3." .. interfaceName .. ".enabled")) == "1" then
-               if ut.trim(sys.exec("ip route list table " .. ruleNumber)) ~= "" then
+               if ut.trim(sys.exec(ip .. "route list table " .. ruleNumber)) ~= "" then
                        if ut.trim(sys.exec("uci -p /var/state get mwan3." .. interfaceName .. ".track_ip")) ~= "" then
                                return "online"
                        else
@@ -183,8 +185,8 @@ function diagnosticsData(interface, tool, task)
                                end
                        elseif tool == "rulechk" then
                                getInterfaceNumber()
-                               local rule1 = sys.exec("ip rule | grep $(echo $((" .. interfaceNumber .. " + 1000)))")
-                               local rule2 = sys.exec("ip rule | grep $(echo $((" .. interfaceNumber .. " + 2000)))")
+                               local rule1 = sys.exec(ip .. "rule | grep $(echo $((" .. interfaceNumber .. " + 1000)))")
+                               local rule2 = sys.exec(ip .. "rule | grep $(echo $((" .. interfaceNumber .. " + 2000)))")
                                if rule1 ~= "" and rule2 ~= "" then
                                        results = "All required interface IP rules found:\n\n" .. rule1 .. rule2
                                elseif rule1 ~= "" or rule2 ~= "" then
@@ -194,7 +196,7 @@ function diagnosticsData(interface, tool, task)
                                end
                        elseif tool == "routechk" then
                                getInterfaceNumber()
-                               local routeTable = sys.exec("ip route list table " .. interfaceNumber)
+                               local routeTable = sys.exec(ip .. "route list table " .. interfaceNumber)
                                if routeTable ~= "" then
                                        results = "Interface routing table " .. interfaceNumber .. " was found:\n\n" .. routeTable
                                else
@@ -283,17 +285,17 @@ function troubleshootingData()
        mArray.routeshow = { routeShow }
 
        -- ip rule show
-       local ipRuleShow = ut.trim(sys.exec("ip rule show"))
+       local ipRuleShow = ut.trim(sys.exec(ip .. "rule show"))
                if ipRuleShow == "" then
                        ipRuleShow = "No data found"
                end
        mArray.iprule = { ipRuleShow }
 
        -- ip route list table 1-250
-       local routeList, routeString = ut.trim(sys.exec("ip rule | sed 's/://g' | awk '$1>=2001 && $1<=2250' | awk '{print $NF}'")), ""
+       local routeList, routeString = ut.trim(sys.exec(ip .. "rule | sed 's/://g' | awk '$1>=2001 && $1<=2250' | awk '{print $NF}'")), ""
                if routeList ~= "" then
                        for line in routeList:gmatch("[^\r\n]+") do
-                               routeString = routeString .. line .. "\n" .. sys.exec("ip route list table " .. line)
+                               routeString = routeString .. line .. "\n" .. sys.exec(ip .. "route list table " .. line)
                        end
                        routeString = ut.trim(routeString)
                else
index 6dec9c8e24905715a537163ea4245e3035e48e41..9329b927355793cb31ced40cc1d80124c259987d 100644 (file)
@@ -6,7 +6,7 @@
                        if (mArray.wans)
                        {
                                var temp = '';
-                               for( var i = 0; i < mArray.wans.length; i++ )
+                               for ( var i = 0; i < mArray.wans.length; i++ )
                                {
                                        var stat = '';
                                        var cssc = '';
index 776fd4ce22437220e75cb4ea32fd3fd14515da6f..472c7ce7fcbdbb55450c2c0aa4e1b1b7ee8c5631 100644 (file)
@@ -14,7 +14,7 @@
                        if (mArray.wans)
                        {
                                var interfaceStatus = '';
-                               for( var i = 0; i < mArray.wans.length; i++ )
+                               for ( var i = 0; i < mArray.wans.length; i++ )
                                {
                                        var status = '';
                                        var css = '';
index 97511b9985df32852e99bf272eb224e837e7f327..67e3d16bd8e046707f14c49982fb483ef8fca9d4 100644 (file)
@@ -8,8 +8,8 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=mwan3
-PKG_VERSION:=1.6
-PKG_RELEASE:=2
+PKG_VERSION:=2.0
+PKG_RELEASE:=0
 PKG_MAINTAINER:=Jeroen Louwes <jeroen.louwes@gmail.com>
 PKG_LICENSE:=GPLv2
 
index f66c024c0b3560ff0b8480acf43ff607d84c998c..06118f70c8c123b66337b0245e4e5387f0166ce8 100644 (file)
@@ -1,11 +1,8 @@
 
-config interface 'wan'
+config interface 'wan1'
        option enabled '1'
        list track_ip '8.8.4.4'
-       list track_ip '8.8.8.8'
-       list track_ip '208.67.222.222'
-       list track_ip '208.67.220.220'
-       option reliability '2'
+       option reliability '1'
        option count '1'
        option timeout '2'
        option interval '5'
@@ -13,9 +10,8 @@ config interface 'wan'
        option up '8'
 
 config interface 'wan2'
-       option enabled '0'
+       option enabled '1'
        list track_ip '8.8.8.8'
-       list track_ip '208.67.220.220'
        option reliability '1'
        option count '1'
        option timeout '2'
@@ -23,58 +19,131 @@ config interface 'wan2'
        option down '3'
        option up '8'
 
-config member 'wan_m1_w3'
-       option interface 'wan'
-       option metric '1'
-       option weight '3'
+config interface 'wan3'
+       option enabled '1'
+       list track_ip '208.67.222.222'
+       option reliability '1'
+       option count '1'
+       option timeout '2'
+       option interval '5'
+       option down '3'
+       option up '8'
 
-config member 'wan_m2_w3'
-       option interface 'wan'
-       option metric '2'
-       option weight '3'
+config interface 'wan1_v6'
+       option family 'ipv6'
+       option enabled '1'
+       list track_ip '2001:7b8:1::2'
+       option reliability '1'
+       option count '1'
+       option timeout '2'
+       option interval '5'
+       option down '3'
+       option up '8'
 
-config member 'wan2_m1_w2'
-       option interface 'wan2'
+config interface 'wan2_v6'
+       option family 'ipv6'
+       option enabled '1'
+       list track_ip '2001:7b8:2::2'
+       option reliability '1'
+       option count '1'
+       option timeout '2'
+       option interval '5'
+       option down '3'
+       option up '8'
+
+config interface 'wan3_v6'
+       option family 'ipv6'
+       option enabled '1'
+       list track_ip '2001:7b8:3::2'
+       option reliability '1'
+       option count '1'
+       option timeout '2'
+       option interval '5'
+       option down '3'
+       option up '8'
+
+config member 'wan1_m1_w1'
+       option interface 'wan1'
        option metric '1'
-       option weight '2'
+       option weight '1'
 
-config member 'wan2_m2_w2'
+config member 'wan2_m1_w1'
        option interface 'wan2'
-       option metric '2'
-       option weight '2'
+       option metric '1'
+       option weight '1'
+
+config member 'wan3_m1_w1'
+       option interface 'wan3'
+       option metric '1'
+       option weight '1'
+
+config member 'wan1_v6_m1_w1'
+       option interface 'wan1_v6'
+       option metric '1'
+       option weight '1'
+
+config member 'wan2_v6_m1_w1'
+       option interface 'wan2_v6'
+       option metric '1'
+       option weight '1'
+
+config member 'wan3_v6_m1_w1'
+       option interface 'wan3_v6'
+       option metric '1'
+       option weight '1'
 
-config policy 'wan_only'
-       list use_member 'wan_m1_w3'
+config policy 'wan1_only'
+       list use_member 'wan1_m1_w1'
 
 config policy 'wan2_only'
-       list use_member 'wan2_m1_w2'
+       list use_member 'wan2_m1_w1'
+
+config policy 'wan3_only'
+       list use_member 'wan3_m1_w1'
+
+config policy 'wan1_v6_only'
+       list use_member 'wan1_v6_m1_w1'
+
+config policy 'wan2_v6_only'
+       list use_member 'wan2_v6_m1_w1'
+
+config policy 'wan3_v6_only'
+       list use_member 'wan3_v6_m1_w1'
 
 config policy 'balanced'
-       list use_member 'wan_m1_w3'
-       list use_member 'wan2_m1_w2'
+       list use_member 'wan1_m1_w1'
+       list use_member 'wan2_m1_w1'
+       list use_member 'wan3_m1_w1'
+       list use_member 'wan1_v6_m1_w1'
+       list use_member 'wan2_v6_m1_w1'
+       list use_member 'wan3_v6_m1_w1'
 
-config policy 'wan_wan2'
-       list use_member 'wan_m1_w3'
-       list use_member 'wan2_m2_w2'
+config rule 'https'
+       option src_ip '2001:3::/64'
+       option dest_port '443'
+       option proto 'tcp'
+       option use_policy 'balanced'
 
-config policy 'wan2_wan'
-       list use_member 'wan_m2_w3'
-       list use_member 'wan2_m1_w2'
+config rule 'https2'
+       option dest_port '19443'
+       option proto 'tcp'
+       option use_policy 'balanced'
+       option sticky '1'
 
-config rule 'youtube'
+config rule 'igs'
+       option proto 'icmp'
+       option family 'ipv4'
        option sticky '1'
-       option ipset 'youtube'
-       option dest_port '80,443'
-       option proto 'tcp'
+       option ipset 'google'
        option use_policy 'balanced'
 
-config rule 'https'
+config rule 'i6gs'
+       option proto 'icmpv6'
+       option family 'ipv6'
        option sticky '1'
-       option dest_port '443'
-       option proto 'tcp'
+       option ipset 'google'
        option use_policy 'balanced'
 
 config rule 'default_rule'
-       option dest_ip '0.0.0.0/0'
        option use_policy 'balanced'
 
index f117e49e6bc24a5f4356d438808d328bcbcaba0f..af2fa115c149f3b4ee4df7cfa43d5f8aad59357a 100644 (file)
 #!/bin/sh
 
-mwan3_get_iface_id()
-{
-       let iface_count++
-       [ "$1" == "$INTERFACE" ] && iface_id=$iface_count
-}
+[ "$ACTION" == "ifup" -o "$ACTION" == "ifdown" ] || exit 1
+[ -n "$INTERFACE" ] || exit 2
 
-mwan3_set_general_iptables()
-{
-       if ! $IPT -S mwan3_ifaces &> /dev/null; then
-               $IPT -N mwan3_ifaces
-       fi
-
-       if ! $IPT -S mwan3_connected &> /dev/null; then
-               $IPT -N mwan3_connected
-               $IPS create mwan3_connected hash:net
-               $IPT -A mwan3_connected -m set --match-set mwan3_connected dst -j MARK --set-xmark 0xff00/0xff00
-       fi
-
-       if ! $IPT -S mwan3_track &> /dev/null; then
-               $IPT -N mwan3_track
-       fi
-
-       if ! $IPT -S mwan3_rules &> /dev/null; then
-               $IPT -N mwan3_rules
-       fi
-
-       if ! $IPT -S mwan3_hook &> /dev/null; then
-               $IPT -N mwan3_hook
-               $IPT -A mwan3_hook -j CONNMARK --restore-mark --nfmask 0xff00 --ctmask 0xff00
-               $IPT -A mwan3_hook -m mark --mark 0x0/0xff00 -j mwan3_ifaces
-               $IPT -A mwan3_hook -m mark --mark 0x0/0xff00 -j mwan3_connected
-               $IPT -A mwan3_hook -m mark --mark 0x0/0xff00 -j mwan3_track
-               $IPT -A mwan3_hook -m mark --mark 0x0/0xff00 -j mwan3_rules
-               $IPT -A mwan3_hook -j CONNMARK --save-mark --nfmask 0xff00 --ctmask 0xff00
-               $IPT -A mwan3_hook -m mark ! --mark 0xff00/0xff00 -j mwan3_connected
-       fi
-
-       if ! $IPT -S PREROUTING | grep mwan3_hook &> /dev/null; then
-               $IPT -A PREROUTING -j mwan3_hook
-       fi
-
-       if ! $IPT -S OUTPUT | grep mwan3_hook &> /dev/null; then
-               $IPT -A OUTPUT -j mwan3_hook
-       fi
-
-       $IPT -F mwan3_rules
-}
-
-mwan3_set_general_rules()
-{
-       if [ -z "$($IP rule list | awk '$1 == "2253:"')" ]; then
-               $IP rule add pref 2253 fwmark 0xfd00/0xff00 blackhole
-       fi
-
-       if [ -z "$($IP rule list | awk '$1 == "2254:"')" ]; then
-               $IP rule add pref 2254 fwmark 0xfe00/0xff00 unreachable
-       fi
-}
-
-mwan3_set_connected_iptables()
-{
-       local connected_network
-
-       if $IPT -S mwan3_connected &> /dev/null; then
-
-               $IPS create mwan3_connected_temp hash:net
-
-               for connected_network in $($IP route | awk '{print $1}' | egrep '[0-9]{1,3}(\.[0-9]{1,3}){3}'); do
-                       $IPS -! add mwan3_connected_temp $connected_network
-               done
-
-               for connected_network in $($IP route list table 0 | awk '{print $2}' | egrep '[0-9]{1,3}(\.[0-9]{1,3}){3}'); do
-                       $IPS -! add mwan3_connected_temp $connected_network
-               done
-
-               $IPS add mwan3_connected_temp 224.0.0.0/3
-               $IPS swap mwan3_connected_temp mwan3_connected
-               $IPS destroy mwan3_connected_temp
-
-       fi
-}
-
-mwan3_set_iface_iptables()
-{
-       if ! $IPT -S mwan3_iface_$INTERFACE &> /dev/null; then
-               $IPT -N mwan3_iface_$INTERFACE
-       fi
-
-       $IPT -F mwan3_iface_$INTERFACE
-       $IPT -D mwan3_ifaces -m mark --mark 0x0/0xff00 -j mwan3_iface_$INTERFACE &> /dev/null
-
-       if [ $ACTION == "ifup" ]; then
-               $IPT -I mwan3_iface_$INTERFACE -i $DEVICE -m set --match-set mwan3_connected src -m mark --mark 0x0/0xff00 -m comment --comment "default" -j MARK --set-xmark 0xff00/0xff00
-               $IPT -A mwan3_iface_$INTERFACE -i $DEVICE -m mark --mark 0x0/0xff00 -m comment --comment "$INTERFACE" -j MARK --set-xmark $(($iface_id*256))/0xff00
-               $IPT -A mwan3_ifaces -m mark --mark 0x0/0xff00 -j mwan3_iface_$INTERFACE
-       fi
-
-       if [ $ACTION == "ifdown" ]; then
-               $IPT -X mwan3_iface_$INTERFACE
-       fi
-}
-
-mwan3_set_iface_route()
-{
-       $IP route flush table $iface_id
-       [ $ACTION == "ifup" ] && $IP route add table $iface_id default $route_args
-}
-
-mwan3_set_iface_rules()
-{
-       while [ -n "$($IP rule list | awk '$1 == "'$(($iface_id+1000)):'"')" ]; do
-               $IP rule del pref $(($iface_id+1000))
-       done
-
-       while [ -n "$($IP rule list | awk '$1 == "'$(($iface_id+2000)):'"')" ]; do
-               $IP rule del pref $(($iface_id+2000))
-       done
-
-       [ $ACTION == "ifup" ] && $IP rule add pref $(($iface_id+1000)) iif $DEVICE lookup main
-       [ $ACTION == "ifup" ] && $IP rule add pref $(($iface_id+2000)) fwmark $(($iface_id*256))/0xff00 lookup $iface_id
-}
-
-mwan3_set_iface_ipset()
-{
-       local setname entry
-
-       for setname in $(ipset -n list | grep ^mwan3_sticky_); do
-               for entry in $(ipset list $setname | grep "$(echo $(($iface_id*256)) | awk '{ printf "0x%08x", $1; }')" | cut -d ' ' -f 1); do
-                       $IPS del $setname $entry
-               done
-       done
-}
-
-mwan3_track()
-{
-       local track_ip track_ips reliability count timeout interval down up
-
-       mwan3_list_track_ips()
-       {
-               track_ips="$1 $track_ips"
-       }
-       config_list_foreach $INTERFACE track_ip mwan3_list_track_ips
-
-       if [ -e /var/run/mwan3track-$INTERFACE.pid ] ; then
-               kill $(cat /var/run/mwan3track-$INTERFACE.pid) &> /dev/null
-               rm /var/run/mwan3track-$INTERFACE.pid &> /dev/null
-       fi
-
-       if [ -n "$track_ips" ]; then
-               config_get reliability $INTERFACE reliability 1
-               config_get count $INTERFACE count 1
-               config_get timeout $INTERFACE timeout 4
-               config_get interval $INTERFACE interval 10
-               config_get down $INTERFACE down 5
-               config_get up $INTERFACE up 5
-
-               $IPS -! create mwan3_track_$INTERFACE hash:ip
-               $IPS create mwan3_track_temp_$INTERFACE hash:ip
-
-               for track_ip in $track_ips; do
-                       $IPS -! add mwan3_track_temp_$INTERFACE $track_ip
-               done
-
-               $IPS swap mwan3_track_temp_$INTERFACE mwan3_track_$INTERFACE
-               $IPS destroy mwan3_track_temp_$INTERFACE
-
-               $IPT -D mwan3_track -p icmp -m set --match-set mwan3_track_$INTERFACE dst -m icmp --icmp-type 8 -m length --length 32 -j MARK --set-xmark 0xff00/0xff00 &> /dev/null
-               $IPT -A mwan3_track -p icmp -m set --match-set mwan3_track_$INTERFACE dst -m icmp --icmp-type 8 -m length --length 32 -j MARK --set-xmark 0xff00/0xff00
-
-               [ -x /usr/sbin/mwan3track ] && /usr/sbin/mwan3track $INTERFACE $DEVICE $reliability $count $timeout $interval $down $up $track_ips &
-       else
-               $IPT -D mwan3_track -p icmp -m set --match-set mwan3_track_$INTERFACE dst -m icmp --icmp-type 8 -m length --length 32 -j MARK --set-xmark 0xff00/0xff00 &> /dev/null
-               $IPS destroy mwan3_track_$INTERFACE
-       fi
-}
-
-mwan3_set_policy()
-{
-       local iface_count iface_id INTERFACE metric probability weight
-
-       config_get INTERFACE $1 interface
-       config_get metric $1 metric 1
-       config_get weight $1 weight 1
-
-       [ -n "$INTERFACE" ] || return 0
-
-       config_foreach mwan3_get_iface_id interface
-
-       [ -n "$iface_id" ] || return 0
-
-       if $IPT -S mwan3_iface_$INTERFACE &> /dev/null; then
-               if [ "$metric" -lt "$lowest_metric" ]; then
-
-                       total_weight=$weight
-                       $IPT -F mwan3_policy_$policy
-                       $IPT -A mwan3_policy_$policy -m mark --mark 0x0/0xff00 -m comment --comment "$INTERFACE $weight $weight" -j MARK --set-xmark $(($iface_id*256))/0xff00
-
-                       lowest_metric=$metric
-
-               elif [ "$metric" -eq "$lowest_metric" ]; then
-
-                       total_weight=$(($total_weight+$weight))
-                       probability=$(($weight*1000/$total_weight))
-
-                       if [ "$probability" -lt 10 ]; then
-                               probability="0.00$probability"
-                       elif [ $probability -lt 100 ]; then
-                               probability="0.0$probability"
-                       elif [ $probability -lt 1000 ]; then
-                               probability="0.$probability"
-                       else
-                               probability="1"
-                       fi
-
-                       probability="-m statistic --mode random --probability $probability"
-
-                       $IPT -I mwan3_policy_$policy -m mark --mark 0x0/0xff00 $probability -m comment --comment "$INTERFACE $weight $total_weight" -j MARK --set-xmark $(($iface_id*256))/0xff00
-               fi
-       fi
-}
-
-mwan3_set_policies_iptables()
-{
-       local last_resort lowest_metric policy total_weight
-
-       policy=$1
-
-       config_get last_resort $1 last_resort unreachable
-
-       if [ "$policy" != $(echo "$policy" | cut -c1-15) ]; then
-               $LOG warn "Policy $policy exceeds max of 15 chars. Not setting policy" && return 0
-       fi
-
-       if ! $IPT -S mwan3_policy_$policy &> /dev/null; then
-               $IPT -N mwan3_policy_$policy
-       fi
-
-       $IPT -F mwan3_policy_$policy
-
-       case "$last_resort" in
-               blackhole)
-                       $IPT -A mwan3_policy_$policy -m mark --mark 0x0/0xff00 -m comment --comment "blackhole" -j MARK --set-xmark 0xfd00/0xff00
-               ;;
-               default)
-                       $IPT -A mwan3_policy_$policy -m mark --mark 0x0/0xff00 -m comment --comment "default" -j MARK --set-xmark 0xff00/0xff00
-               ;;
-               *)
-                       $IPT -A mwan3_policy_$policy -m mark --mark 0x0/0xff00 -m comment --comment "unreachable" -j MARK --set-xmark 0xfe00/0xff00
-               ;;
-       esac
-
-       lowest_metric=256
-       total_weight=0
-
-       config_list_foreach $policy use_member mwan3_set_policy
-}
-
-mwan3_set_sticky_iptables()
-{
-       local INTERFACE iface_count iface_id
-
-       INTERFACE="$1"
-
-       config_foreach mwan3_get_iface_id interface
-       unset iface_count
-
-       $IPS -! create mwan3_sticky_$rule hash:ip,mark markmask 0xff00 timeout $timeout
-
-       if [ -n "$iface_id" ]; then
-               if [ -n "$($IPT -S mwan3_iface_$1 2> /dev/null)" ]; then
-                       $IPT -I mwan3_rule_$rule -m set ! --match-set mwan3_sticky_$rule src,src -j MARK --set-xmark 0x0/0xff00
-                       $IPT -I mwan3_rule_$rule -m mark --mark 0/0xff00 -j MARK --set-xmark $(($iface_id*256))/0xff00
-               fi
-       fi
-
-       unset iface_id
-}
-
-mwan3_set_user_rules_iptables()
-{
-       local ipset proto src_ip src_port sticky dest_ip dest_port use_policy rule timeout
-
-       config_get sticky $1 sticky 0
-       config_get timeout $1 timeout 600
-       config_get ipset $1 ipset
-       config_get proto $1 proto all
-       config_get src_ip $1 src_ip 0.0.0.0/0
-       config_get src_port $1 src_port 0:65535
-       config_get dest_ip $1 dest_ip 0.0.0.0/0
-       config_get dest_port $1 dest_port 0:65535
-       config_get use_policy $1 use_policy
-
-       rule="$1"
-
-       if [ "$rule" != $(echo "$rule" | cut -c1-15) ]; then
-               $LOG warn "Rule $rule exceeds max of 15 chars. Not setting rule" && return 0
-       fi
-
-       if [ -n "$ipset" ]; then
-               if [ -z "$($IPS -n list $ipset)" ]; then
-                       $IPS create $ipset hash:ip timeout 3600
-               fi
-
-               ipset="-m set --match-set $ipset dst"
-       fi
-
-       if [ -n "$use_policy" ]; then
-               if [ "$use_policy" == "default" ]; then
-                       use_policy="MARK --set-xmark 0xff00/0xff00"
-               elif [ "$use_policy" == "unreachable" ]; then
-                       use_policy="MARK --set-xmark 0xfe00/0xff00"
-               elif [ "$use_policy" == "blackhole" ]; then
-                       use_policy="MARK --set-xmark 0xfd00/0xff00"
-               else
-                       if [ "$sticky" -eq 1 ]; then
-
-                               if ! $IPT -S mwan3_rule_$rule &> /dev/null; then
-                                       $IPT -N mwan3_rule_$rule
-                               fi
-
-                               $IPT -F mwan3_rule_$rule
-
-                               config_foreach mwan3_set_sticky_iptables interface
-
-                               $IPT -A mwan3_rule_$rule -m mark --mark 0/0xff00 -j mwan3_policy_$use_policy
-                               $IPT -A mwan3_rule_$rule -m mark ! --mark 0xfc00/0xfc00 -j SET --del-set mwan3_sticky_$rule src,src
-                               $IPT -A mwan3_rule_$rule -m mark ! --mark 0xfc00/0xfc00 -j SET --add-set mwan3_sticky_$rule src,src
-
-                               use_policy="mwan3_rule_$rule"
-                       else
-                               use_policy="mwan3_policy_$use_policy"
-                       fi
-               fi
-
-               case $proto in
-                       tcp|udp)
-                       $IPT -A mwan3_rules -p $proto -s $src_ip -d $dest_ip $ipset -m multiport --sports $src_port -m multiport --dports $dest_port -m mark --mark 0/0xff00 -m comment --comment "$1" -j $use_policy &> /dev/null
-                       ;;
-                       *)
-                       $IPT -A mwan3_rules -p $proto -s $src_ip -d $dest_ip $ipset -m mark --mark 0/0xff00 -m comment --comment "$1" -j $use_policy &> /dev/null
-                       ;;
-               esac
-       fi
-}
-
-mwan3_ifupdown()
-{
-       local counter enabled iface_count iface_id route_args wan_metric
-
-       config_load mwan3
-       config_foreach mwan3_get_iface_id interface
-
-       [ -n "$iface_id" ] || return 0
-       [ "$iface_count" -le 250 ] || return 0
-       unset iface_count
-
-       config_get enabled $INTERFACE enabled 0
-
-       counter=0
-
-       if [ $ACTION == "ifup" ]; then
-               [ "$enabled" -eq 1 ] || return 0
-
-               while [ -z "$($IP route list dev $DEVICE default | head -1)" -a "$counter" -lt 10 ]; do
-                       sleep 1
-                       let counter++
-                       if [ "$counter" -ge 10 ]; then
-                               $LOG warn "Could not find gateway for interface $INTERFACE ($DEVICE)" && return 0
-                       fi
-               done
-
-               route_args=$($IP route list dev $DEVICE default | head -1 | sed '/.*via \([^ ]*\) .*$/!d;s//via \1/;q' | egrep '[0-9]{1,3}(\.[0-9]{1,3}){3}')
-               route_args="$route_args dev $DEVICE"
-       fi
-
-       while [ "$(pgrep -f -o hotplug-call)" -ne $$ -a "$counter" -lt 60 ]; do
-               sleep 1
-               let counter++
-               if [ "$counter" -ge 60 ]; then
-                       $LOG warn "Timeout waiting for older hotplug processes to finish. $ACTION interface $INTERFACE (${DEVICE:-unknown}) aborted" && return 0
-               fi
-       done
-
-       $LOG notice "$ACTION interface $INTERFACE (${DEVICE:-unknown})"
-
-       mwan3_set_general_iptables
-       mwan3_set_general_rules
-       mwan3_set_iface_iptables
-       mwan3_set_iface_route
-       mwan3_set_iface_rules
-
-       [ $ACTION == "ifdown" ] && mwan3_set_iface_ipset
-       [ $ACTION == "ifup" ] && mwan3_track
+if [ "$ACTION" == "ifup" ]; then
+        [ -n "$DEVICE" ] || exit 3
+fi
 
-       config_foreach mwan3_set_policies_iptables policy
-       config_foreach mwan3_set_user_rules_iptables rule
-}
+[ -x /usr/bin/ip ] || exit 4
+[ -x /usr/sbin/ipset ] || exit 5
+[ -x /usr/sbin/iptables ] || exit 6
+[ -x /usr/sbin/ip6tables ] || exit 7
+[ -x /usr/bin/logger ] || exit 8
 
-[ -n "$ACTION" ] || exit 0
-[ -n "$INTERFACE" ] || exit 0
+. /lib/functions.sh
+. /lib/functions/network.sh
+. /lib/mwan3/mwan3.sh
 
-if [ $ACTION == "ifup" ]; then
-       [ -n "$DEVICE" ] || exit 0
-fi
+config_load mwan3
 
-[ -x /usr/sbin/ip ] || exit 1
-[ -x /usr/sbin/ipset ] || exit 1
-[ -x /usr/sbin/iptables ] || exit 1
-[ -x /usr/bin/logger ] || exit 1
+config_get enabled $INTERFACE enabled 0
+[ "$enabled" == "1" ] || exit 0
 
-local IP IPS IPT LOG
+$LOG notice "$ACTION interface $INTERFACE (${DEVICE:-unknown})"
 
-IP="/usr/sbin/ip -4"
-IPS="/usr/sbin/ipset"
-IPT="/usr/sbin/iptables -t mangle -w"
-LOG="/usr/bin/logger -t mwan3 -p"
+mwan3_set_connected_iptables
 
 case "$ACTION" in
-       ifup|ifdown)
-               mwan3_ifupdown
-               mwan3_set_connected_iptables
+       ifup)
+               mwan3_set_general_rules
+               mwan3_set_general_iptables
+               mwan3_create_iface_rules $INTERFACE $DEVICE
+               mwan3_create_iface_iptables $INTERFACE $DEVICE
+               mwan3_create_iface_route $INTERFACE $DEVICE
+               mwan3_track $INTERFACE $DEVICE
+               mwan3_set_user_rules
+       ;;
+       ifdown)
+               mwan3_delete_iface_rules $INTERFACE
+               mwan3_delete_iface_iptables $INTERFACE
+               mwan3_delete_iface_route $INTERFACE
+               mwan3_delete_iface_ipset_entries $INTERFACE
        ;;
 esac
 
+config_foreach mwan3_create_policies_iptables policy
+
 exit 0
diff --git a/net/mwan3/files/lib/mwan3/mwan3.sh b/net/mwan3/files/lib/mwan3/mwan3.sh
new file mode 100644 (file)
index 0000000..6fe2479
--- /dev/null
@@ -0,0 +1,803 @@
+#!/bin/sh
+
+local IP4 IP6 IPS IPT4 IPT6 LOG
+
+IP4="/usr/bin/ip -4"
+IP6="/usr/bin/ip -6"
+IPS="/usr/sbin/ipset"
+IPT4="/usr/sbin/iptables -t mangle -w"
+IPT6="/usr/sbin/ip6tables -t mangle -w"
+LOG="/usr/bin/logger -t mwan3 -p"
+
+mwan3_get_iface_id()
+{
+       local _tmp _iface _iface_count
+
+       _iface="$2"
+
+       mwan3_get_id()
+       {
+               let _iface_count++
+               [ "$1" == "$_iface" ] && _tmp=$_iface_count
+       }
+       config_foreach mwan3_get_id interface
+       export "$1=$_tmp"
+}
+
+mwan3_set_connected_iptables()
+{
+       local connected_network_v4 connected_network_v6
+
+       $IPS -! create mwan3_connected_v4 hash:net
+       $IPS create mwan3_connected_v4_temp hash:net
+
+       for connected_network_v4 in $($IP4 route | awk '{print $1}' | egrep '[0-9]{1,3}(\.[0-9]{1,3}){3}'); do
+               $IPS -! add mwan3_connected_v4_temp $connected_network_v4
+       done
+
+       for connected_network_v4 in $($IP4 route list table 0 | awk '{print $2}' | egrep '[0-9]{1,3}(\.[0-9]{1,3}){3}'); do
+               $IPS -! add mwan3_connected_v4_temp $connected_network_v4
+       done
+
+       $IPS add mwan3_connected_v4_temp 224.0.0.0/3
+
+       $IPS swap mwan3_connected_v4_temp mwan3_connected_v4
+       $IPS destroy mwan3_connected_v4_temp
+
+       $IPS -! create mwan3_connected_v6 hash:net family inet6
+       $IPS create mwan3_connected_v6_temp hash:net family inet6
+
+       for connected_network_v6 in $($IP6 route | awk '{print $1}' | egrep '([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])'); do
+               $IPS -! add mwan3_connected_v6_temp $connected_network_v6
+       done
+
+       $IPS swap mwan3_connected_v6_temp mwan3_connected_v6
+       $IPS destroy mwan3_connected_v6_temp
+
+       $IPS -! create mwan3_connected list:set
+       $IPS -! add mwan3_connected mwan3_connected_v4
+       $IPS -! add mwan3_connected mwan3_connected_v6
+}
+
+mwan3_set_general_rules()
+{
+       local IP
+
+       for IP in "$IP4" "$IP6"; do
+
+               if [ -z "$($IP rule list | awk '$1 == "2253:"')" ]; then
+                       $IP rule add pref 2253 fwmark 0xfd00/0xff00 blackhole
+               fi
+
+               if [ -z "$($IP rule list | awk '$1 == "2254:"')" ]; then
+                       $IP rule add pref 2254 fwmark 0xfe00/0xff00 unreachable
+               fi
+       done
+}
+
+mwan3_set_general_iptables()
+{
+       local IPT
+
+       for IPT in "$IPT4" "$IPT6"; do
+
+               if ! $IPT -S mwan3_ifaces_in &> /dev/null; then
+                       $IPT -N mwan3_ifaces_in
+               fi
+
+               if ! $IPT -S mwan3_ifaces_out &> /dev/null; then
+                       $IPT -N mwan3_ifaces_out
+               fi
+
+               if ! $IPT -S mwan3_connected &> /dev/null; then
+                       $IPT -N mwan3_connected
+                       $IPS -! create mwan3_connected list:set
+                       $IPT -A mwan3_connected -m set --match-set mwan3_connected dst -j MARK --set-xmark 0xff00/0xff00
+               fi
+
+               if ! $IPT -S mwan3_rules &> /dev/null; then
+                       $IPT -N mwan3_rules
+               fi
+
+               if ! $IPT -S mwan3_hook &> /dev/null; then
+                       $IPT -N mwan3_hook
+                       $IPT -A mwan3_hook -j CONNMARK --restore-mark --nfmask 0xff00 --ctmask 0xff00
+                       $IPT -A mwan3_hook -m mark --mark 0x0/0xff00 -j mwan3_ifaces_in
+                       $IPT -A mwan3_hook -m mark --mark 0x0/0xff00 -j mwan3_ifaces_out
+                       $IPT -A mwan3_hook -m mark --mark 0x0/0xff00 -j mwan3_connected
+                       $IPT -A mwan3_hook -m mark --mark 0x0/0xff00 -j mwan3_rules
+                       $IPT -A mwan3_hook -j CONNMARK --save-mark --nfmask 0xff00 --ctmask 0xff00
+                       $IPT -A mwan3_hook -m mark ! --mark 0xff00/0xff00 -j mwan3_connected
+               fi
+
+               if ! $IPT -S PREROUTING | grep mwan3_hook &> /dev/null; then
+                       $IPT -A PREROUTING -j mwan3_hook
+               fi
+
+               if ! $IPT -S OUTPUT | grep mwan3_hook &> /dev/null; then
+                       $IPT -A OUTPUT -j mwan3_hook
+               fi
+       done
+}
+
+mwan3_create_iface_iptables()
+{
+       local id family src_ip src_ipv6
+
+       config_get family $1 family ipv4
+       mwan3_get_iface_id id $1
+
+       [ -n "$id" ] || return 0
+
+       if [ "$family" == "ipv4" ]; then
+
+               network_get_ipaddr src_ip $1
+
+               $IPS -! create mwan3_connected list:set
+
+               if ! $IPT4 -S mwan3_ifaces_in &> /dev/null; then
+                       $IPT4 -N mwan3_ifaces_in
+               fi
+
+               if ! $IPT4 -S mwan3_ifaces_out &> /dev/null; then
+                       $IPT4 -N mwan3_ifaces_out
+               fi
+
+               if ! $IPT4 -S mwan3_iface_in_$1 &> /dev/null; then
+                       $IPT4 -N mwan3_iface_in_$1
+               fi
+
+               if ! $IPT4 -S mwan3_iface_out_$1 &> /dev/null; then
+                       $IPT4 -N mwan3_iface_out_$1
+               fi
+
+               $IPT4 -F mwan3_iface_in_$1
+               $IPT4 -A mwan3_iface_in_$1 -i $2 -m set --match-set mwan3_connected src -m mark --mark 0x0/0xff00 -m comment --comment "default" -j MARK --set-xmark 0xff00/0xff00
+               $IPT4 -A mwan3_iface_in_$1 -i $2 -m mark --mark 0x0/0xff00 -m comment --comment "$1" -j MARK --set-xmark $(($id*256))/0xff00
+
+               $IPT4 -D mwan3_ifaces_in -m mark --mark 0x0/0xff00 -j mwan3_iface_in_$1 &> /dev/null
+               $IPT4 -A mwan3_ifaces_in -m mark --mark 0x0/0xff00 -j mwan3_iface_in_$1
+
+               $IPT4 -F mwan3_iface_out_$1
+               $IPT4 -A mwan3_iface_out_$1 -s $src_ip -m mark --mark 0x0/0xff00 -m comment --comment "$1" -j MARK --set-xmark $(($id*256))/0xff00
+
+               $IPT4 -D mwan3_ifaces_out -m mark --mark 0x0/0xff00 -j mwan3_iface_out_$1 &> /dev/null
+               $IPT4 -A mwan3_ifaces_out -m mark --mark 0x0/0xff00 -j mwan3_iface_out_$1
+       fi
+
+       if [ "$family" == "ipv6" ]; then
+
+               network_get_ipaddr6 src_ipv6 $1
+
+               $IPS -! create mwan3_connected_v6 hash:net family inet6
+
+               if ! $IPT6 -S mwan3_ifaces_in &> /dev/null; then
+                       $IPT6 -N mwan3_ifaces_in
+               fi
+
+               if ! $IPT6 -S mwan3_ifaces_out &> /dev/null; then
+                       $IPT6 -N mwan3_ifaces_out
+               fi
+
+               if ! $IPT6 -S mwan3_iface_in_$1 &> /dev/null; then
+                       $IPT6 -N mwan3_iface_in_$1
+               fi
+
+               if ! $IPT6 -S mwan3_iface_out_$1 &> /dev/null; then
+                       $IPT6 -N mwan3_iface_out_$1
+               fi
+
+               $IPT6 -F mwan3_iface_in_$1
+               $IPT6 -A mwan3_iface_in_$1 -i $2 -m set --match-set mwan3_connected_v6 src -m mark --mark 0x0/0xff00 -m comment --comment "default" -j MARK --set-xmark 0xff00/0xff00
+               $IPT6 -A mwan3_iface_in_$1 -i $2 -m mark --mark 0x0/0xff00 -m comment --comment "$1" -j MARK --set-xmark $(($id*256))/0xff00
+
+               $IPT6 -D mwan3_ifaces_in -m mark --mark 0x0/0xff00 -j mwan3_iface_in_$1 &> /dev/null
+               $IPT6 -A mwan3_ifaces_in -m mark --mark 0x0/0xff00 -j mwan3_iface_in_$1
+
+               $IPT6 -F mwan3_iface_out_$1
+               $IPT6 -A mwan3_iface_out_$1 -s $src_ipv6 -m mark --mark 0x0/0xff00 -m comment --comment "$1" -j MARK --set-xmark $(($id*256))/0xff00
+
+               $IPT6 -D mwan3_ifaces_out -m mark --mark 0x0/0xff00 -j mwan3_iface_out_$1 &> /dev/null
+               $IPT6 -A mwan3_ifaces_out -m mark --mark 0x0/0xff00 -j mwan3_iface_out_$1
+       fi
+}
+
+mwan3_delete_iface_iptables()
+{
+       config_get family $1 family ipv4
+
+       if [ "$family" == "ipv4" ]; then
+
+               $IPT4 -D mwan3_ifaces_in -m mark --mark 0x0/0xff00 -j mwan3_iface_in_$1 &> /dev/null
+               $IPT4 -F mwan3_iface_in_$1 &> /dev/null
+               $IPT4 -X mwan3_iface_in_$1 &> /dev/null
+
+               $IPT4 -D mwan3_ifaces_out -m mark --mark 0x0/0xff00 -j mwan3_iface_out_$1 &> /dev/null
+               $IPT4 -F mwan3_iface_out_$1 &> /dev/null
+               $IPT4 -X mwan3_iface_out_$1 &> /dev/null
+       fi
+
+       if [ "$family" == "ipv6" ]; then
+
+               $IPT6 -D mwan3_ifaces_in -m mark --mark 0x0/0xff00 -j mwan3_iface_in_$1 &> /dev/null
+               $IPT6 -F mwan3_iface_in_$1 &> /dev/null
+               $IPT6 -X mwan3_iface_in_$1 &> /dev/null
+
+               $IPT6 -D mwan3_ifaces_out -m mark --mark 0x0/0xff00 -j mwan3_iface_out_$1 &> /dev/null
+               $IPT6 -F mwan3_iface_out_$1 &> /dev/null
+               $IPT6 -X mwan3_iface_out_$1 &> /dev/null
+       fi
+}
+
+mwan3_create_iface_route()
+{
+       local id route_args
+
+       config_get family $1 family ipv4
+       mwan3_get_iface_id id $1
+
+       [ -n "$id" ] || return 0
+
+       if [ "$family" == "ipv4" ]; then
+
+               network_get_gateway route_args $1
+               route_args="via $route_args dev $2"
+
+               $IP4 route flush table $id
+               $IP4 route add table $id default $route_args
+       fi
+
+       if [ "$family" == "ipv6" ]; then
+
+               network_get_gateway6 route_args $1
+               route_args="via $route_args dev $2"
+
+               $IP6 route flush table $id
+               $IP6 route add table $id default $route_args
+       fi
+}
+
+mwan3_delete_iface_route()
+{
+       local id
+
+       config_get family $1 family ipv4
+       mwan3_get_iface_id id $1
+
+       [ -n "$id" ] || return 0
+
+       if [ "$family" == "ipv4" ]; then
+               $IP4 route flush table $id
+       fi
+
+       if [ "$family" == "ipv6" ]; then
+               $IP6 route flush table $id
+       fi
+}
+
+mwan3_create_iface_rules()
+{
+       local id family
+
+       config_get family $1 family ipv4
+       mwan3_get_iface_id id $1
+
+       [ -n "$id" ] || return 0
+
+       if [ "$family" == "ipv4" ]; then
+
+               while [ -n "$($IP4 rule list | awk '$1 == "'$(($id+1000)):'"')" ]; do
+                       $IP4 rule del pref $(($id+1000))
+               done
+
+               while [ -n "$($IP4 rule list | awk '$1 == "'$(($id+2000)):'"')" ]; do
+                       $IP4 rule del pref $(($id+2000))
+               done
+
+               $IP4 rule add pref $(($id+1000)) iif $2 lookup main
+               $IP4 rule add pref $(($id+2000)) fwmark $(($id*256))/0xff00 lookup $id
+       fi
+
+       if [ "$family" == "ipv6" ]; then
+
+               while [ -n "$($IP6 rule list | awk '$1 == "'$(($id+1000)):'"')" ]; do
+                       $IP6 rule del pref $(($id+1000))
+               done
+
+               while [ -n "$($IP6 rule list | awk '$1 == "'$(($id+2000)):'"')" ]; do
+                       $IP6 rule del pref $(($id+2000))
+               done
+
+               $IP6 rule add pref $(($id+1000)) iif $2 lookup main
+               $IP6 rule add pref $(($id+2000)) fwmark $(($id*256))/0xff00 lookup $id
+       fi
+}
+
+mwan3_delete_iface_rules()
+{
+       local id family
+
+       config_get family $1 family ipv4
+       mwan3_get_iface_id id $1
+
+       [ -n "$id" ] || return 0
+
+       if [ "$family" == "ipv4" ]; then
+
+               while [ -n "$($IP4 rule list | awk '$1 == "'$(($id+1000)):'"')" ]; do
+                       $IP4 rule del pref $(($id+1000))
+               done
+
+               while [ -n "$($IP4 rule list | awk '$1 == "'$(($id+2000)):'"')" ]; do
+                       $IP4 rule del pref $(($id+2000))
+               done
+       fi
+
+       if [ "$family" == "ipv6" ]; then
+
+               while [ -n "$($IP6 rule list | awk '$1 == "'$(($id+1000)):'"')" ]; do
+                       $IP6 rule del pref $(($id+1000))
+               done
+
+               while [ -n "$($IP6 rule list | awk '$1 == "'$(($id+2000)):'"')" ]; do
+                       $IP6 rule del pref $(($id+2000))
+               done
+       fi
+}
+
+mwan3_delete_iface_ipset_entries()
+{
+       local id setname entry
+
+       mwan3_get_iface_id id $1
+
+       [ -n "$id" ] || return 0
+
+       for setname in $(ipset -n list | grep ^mwan3_sticky_); do
+               for entry in $(ipset list $setname | grep "$(echo $(($id*256)) | awk '{ printf "0x%08x", $1; }')" | cut -d ' ' -f 1); do
+                       $IPS del $setname $entry
+               done
+       done
+}
+
+mwan3_track()
+{
+       local track_ip track_ips reliability count timeout interval down up
+
+       mwan3_list_track_ips()
+       {
+               track_ips="$1 $track_ips"
+       }
+       config_list_foreach $1 track_ip mwan3_list_track_ips
+
+       if [ -e /var/run/mwan3track-$1.pid ] ; then
+               kill $(cat /var/run/mwan3track-$1.pid) &> /dev/null
+               rm /var/run/mwan3track-$1.pid &> /dev/null
+       fi
+
+       if [ -n "$track_ips" ]; then
+               config_get reliability $1 reliability 1
+               config_get count $1 count 1
+               config_get timeout $1 timeout 4
+               config_get interval $1 interval 10
+               config_get down $1 down 5
+               config_get up $1 up 5
+
+               [ -x /usr/sbin/mwan3track ] && /usr/sbin/mwan3track $1 $2 $reliability $count $timeout $interval $down $up $track_ips &
+       fi
+}
+
+mwan3_set_policy()
+{
+       local iface_count id iface family metric probability weight
+
+       config_get iface $1 interface
+       config_get metric $1 metric 1
+       config_get weight $1 weight 1
+
+       [ -n "$iface" ] || return 0
+
+       mwan3_get_iface_id id $iface
+
+       [ -n "$id" ] || return 0
+
+       config_get family $iface family ipv4
+
+       if [ "$family" == "ipv4" ]; then
+
+               if [ -n "$($IP4 route list table $id)" ]; then
+                       if [ "$metric" -lt "$lowest_metric_v4" ]; then
+
+                               total_weight_v4=$weight
+                               $IPT4 -F mwan3_policy_$policy
+                               $IPT4 -A mwan3_policy_$policy -m mark --mark 0x0/0xff00 -m comment --comment "$iface $weight $weight" -j MARK --set-xmark $(($id*256))/0xff00
+
+                               lowest_metric_v4=$metric
+
+                       elif [ "$metric" -eq "$lowest_metric_v4" ]; then
+
+                               total_weight_v4=$(($total_weight_v4+$weight))
+                               probability=$(($weight*1000/$total_weight_v4))
+
+                               if [ "$probability" -lt 10 ]; then
+                                       probability="0.00$probability"
+                               elif [ $probability -lt 100 ]; then
+                                       probability="0.0$probability"
+                               elif [ $probability -lt 1000 ]; then
+                                       probability="0.$probability"
+                               else
+                                       probability="1"
+                               fi
+
+                               probability="-m statistic --mode random --probability $probability"
+
+                               $IPT4 -I mwan3_policy_$policy -m mark --mark 0x0/0xff00 $probability -m comment --comment "$iface $weight $total_weight_v4" -j MARK --set-xmark $(($id*256))/0xff00
+                       fi
+               fi
+       fi
+
+       if [ "$family" == "ipv6" ]; then
+
+               if [ -n "$($IP6 route list table $id)" ]; then
+                       if [ "$metric" -lt "$lowest_metric_v6" ]; then
+
+                               total_weight_v6=$weight
+                               $IPT6 -F mwan3_policy_$policy
+                               $IPT6 -A mwan3_policy_$policy -m mark --mark 0x0/0xff00 -m comment --comment "$iface $weight $weight" -j MARK --set-xmark $(($id*256))/0xff00
+
+                               lowest_metric_v6=$metric
+
+                       elif [ "$metric" -eq "$lowest_metric_v6" ]; then
+
+                               total_weight_v6=$(($total_weight_v6+$weight))
+                               probability=$(($weight*1000/$total_weight_v6))
+
+                               if [ "$probability" -lt 10 ]; then
+                                       probability="0.00$probability"
+                               elif [ $probability -lt 100 ]; then
+                                       probability="0.0$probability"
+                               elif [ $probability -lt 1000 ]; then
+                                       probability="0.$probability"
+                               else
+                                       probability="1"
+                               fi
+
+                               probability="-m statistic --mode random --probability $probability"
+
+                               $IPT6 -I mwan3_policy_$policy -m mark --mark 0x0/0xff00 $probability -m comment --comment "$iface $weight $total_weight_v6" -j MARK --set-xmark $(($id*256))/0xff00
+                       fi
+               fi
+       fi
+}
+
+mwan3_create_policies_iptables()
+{
+       local last_resort lowest_metric_v4 lowest_metric_v6 total_weight_v4 total_weight_v6 policy IPT
+
+       policy="$1"
+
+       config_get last_resort $1 last_resort unreachable
+
+       if [ "$1" != $(echo "$1" | cut -c1-15) ]; then
+               $LOG warn "Policy $1 exceeds max of 15 chars. Not setting policy" && return 0
+       fi
+
+       for IPT in "$IPT4" "$IPT6"; do
+
+               if ! $IPT -S mwan3_policy_$1 &> /dev/null; then
+                       $IPT -N mwan3_policy_$1
+               fi
+
+               $IPT -F mwan3_policy_$1
+
+               case "$last_resort" in
+                       blackhole)
+                               $IPT -A mwan3_policy_$1 -m mark --mark 0x0/0xff00 -m comment --comment "blackhole" -j MARK --set-xmark 0xfd00/0xff00
+                       ;;
+                       default)
+                               $IPT -A mwan3_policy_$1 -m mark --mark 0x0/0xff00 -m comment --comment "default" -j MARK --set-xmark 0xff00/0xff00
+                       ;;
+                       *)
+                               $IPT -A mwan3_policy_$1 -m mark --mark 0x0/0xff00 -m comment --comment "unreachable" -j MARK --set-xmark 0xfe00/0xff00
+                       ;;
+               esac
+       done
+
+       lowest_metric_v4=256
+       total_weight_v4=0
+
+       lowest_metric_v6=256
+       total_weight_v6=0
+
+       config_list_foreach $1 use_member mwan3_set_policy
+}
+
+mwan3_set_sticky_iptables()
+{
+       local id
+
+       mwan3_get_iface_id id $1
+
+       [ -n "$id" ] || return 0
+
+       $IPS -! create mwan3_sticky_v4_$rule hash:ip,mark markmask 0xff00 timeout $timeout
+       $IPS -! create mwan3_sticky_v6_$rule hash:ip,mark markmask 0xff00 timeout $timeout family inet6
+       $IPS -! create mwan3_sticky_$rule list:set
+       $IPS -! add mwan3_sticky_$rule mwan3_sticky_v4_$rule
+       $IPS -! add mwan3_sticky_$rule mwan3_sticky_v6_$rule
+
+       for IPT in "$IPT4" "$IPT6"; do
+               if [ -n "$($IPT -S mwan3_iface_$1 2> /dev/null)" ]; then
+                       $IPT -I mwan3_rule_$rule -m set ! --match-set mwan3_sticky_$rule src,src -j MARK --set-xmark 0x0/0xff00
+                       $IPT -I mwan3_rule_$rule -m mark --mark 0/0xff00 -j MARK --set-xmark $(($id*256))/0xff00
+               fi
+       done
+}
+
+mwan3_set_user_iptables_rule()
+{
+       local ipset family proto policy src_ip src_port sticky dest_ip dest_port use_policy timeout rule policy IPT
+
+       rule="$1"
+
+       config_get sticky $1 sticky 0
+       config_get timeout $1 timeout 600
+       config_get ipset $1 ipset
+       config_get proto $1 proto all
+       config_get src_ip $1 src_ip 0.0.0.0/0
+       config_get src_port $1 src_port 0:65535
+       config_get dest_ip $1 dest_ip 0.0.0.0/0
+       config_get dest_port $1 dest_port 0:65535
+       config_get use_policy $1 use_policy
+       config_get family $1 family any
+
+       if [ "$1" != $(echo "$1" | cut -c1-15) ]; then
+               $LOG warn "Rule $1 exceeds max of 15 chars. Not setting rule" && return 0
+       fi
+
+       if [ -n "$ipset" ]; then
+               if [ -z "$($IPS -n list $ipset 2> /dev/null)" ]; then
+                       $IPS create $ipset list:set
+                       $IPS create v4_$ipset hash:ip timeout 3600
+                       $IPS create v6_$ipset hash:ip timeout 3600 family inet6
+                       $IPS add $ipset v4_$ipset
+                       $IPS add $ipset v6_$ipset
+               fi
+
+               ipset="-m set --match-set $ipset dst"
+       fi
+
+       if [ -n "$use_policy" ]; then
+               if [ "$use_policy" == "default" ]; then
+                       policy="MARK --set-xmark 0xff00/0xff00"
+               elif [ "$use_policy" == "unreachable" ]; then
+                       policy="MARK --set-xmark 0xfe00/0xff00"
+               elif [ "$use_policy" == "blackhole" ]; then
+                       policy="MARK --set-xmark 0xfd00/0xff00"
+               else
+                       if [ "$sticky" -eq 1 ]; then
+
+                               policy="mwan3_policy_$use_policy"
+
+                               config_foreach mwan3_set_sticky_iptables interface
+
+                               for IPT in "$IPT4" "$IPT6"; do
+                                       if ! $IPT -S $policy &> /dev/null; then
+                                               $IPT -N $policy
+                                       fi
+
+                                       if ! $IPT -S mwan3_rule_$1 &> /dev/null; then
+                                               $IPT -N mwan3_rule_$1
+                                       fi
+
+                                       $IPT -F mwan3_rule_$1
+
+                                       $IPT -A mwan3_rule_$1 -m mark --mark 0/0xff00 -j $policy
+                                       $IPT -A mwan3_rule_$1 -m mark ! --mark 0xfc00/0xfc00 -j SET --del-set mwan3_sticky_$rule src,src
+                                       $IPT -A mwan3_rule_$1 -m mark ! --mark 0xfc00/0xfc00 -j SET --add-set mwan3_sticky_$rule src,src
+                               done
+
+                               policy="mwan3_rule_$1"
+                       else
+                               policy="mwan3_policy_$use_policy"
+
+                               for IPT in "$IPT4" "$IPT6"; do
+                                       if ! $IPT -S $policy &> /dev/null; then
+                                               $IPT -N $policy
+                                       fi
+                               done
+
+                       fi
+               fi
+
+               if [ "$family" == "any" ]; then
+
+                       for IPT in "$IPT4" "$IPT6"; do
+                               case $proto in
+                                       tcp|udp)
+                                       $IPT -A mwan3_rules -p $proto -s $src_ip -d $dest_ip $ipset -m multiport --sports $src_port -m multiport --dports $dest_port -m mark --mark 0/0xff00 -m comment --comment "$1" -j $policy &> /dev/null
+                                       ;;
+                                       *)
+                                       $IPT -A mwan3_rules -p $proto -s $src_ip -d $dest_ip $ipset -m mark --mark 0/0xff00 -m comment --comment "$1" -j $policy &> /dev/null
+                                       ;;
+                               esac
+                       done
+
+               elif [ "$family" == "ipv4" ]; then
+
+                       case $proto in
+                               tcp|udp)
+                               $IPT4 -A mwan3_rules -p $proto -s $src_ip -d $dest_ip $ipset -m multiport --sports $src_port -m multiport --dports $dest_port -m mark --mark 0/0xff00 -m comment --comment "$1" -j $policy &> /dev/null
+                               ;;
+                               *)
+                               $IPT4 -A mwan3_rules -p $proto -s $src_ip -d $dest_ip $ipset -m mark --mark 0/0xff00 -m comment --comment "$1" -j $policy &> /dev/null
+                               ;;
+                       esac
+
+               elif [ "$family" == "ipv6" ]; then
+
+                       case $proto in
+                               tcp|udp)
+                               $IPT6 -A mwan3_rules -p $proto -s $src_ip -d $dest_ip $ipset -m multiport --sports $src_port -m multiport --dports $dest_port -m mark --mark 0/0xff00 -m comment --comment "$1" -j $policy &> /dev/null
+                               ;;
+                               *)
+                               $IPT6 -A mwan3_rules -p $proto -s $src_ip -d $dest_ip $ipset -m mark --mark 0/0xff00 -m comment --comment "$1" -j $policy &> /dev/null
+                               ;;
+                       esac
+               fi
+       fi
+}
+
+mwan3_set_user_rules()
+{
+       local IPT
+
+       for IPT in "$IPT4" "$IPT6"; do
+
+               if ! $IPT -S mwan3_rules &> /dev/null; then
+                       $IPT -N mwan3_rules
+               fi
+
+               $IPT -F mwan3_rules
+       done
+
+       config_foreach mwan3_set_user_iptables_rule rule
+}
+
+mwan3_report_iface_status()
+{
+       local device result track_ips tracking IP IPT
+
+       mwan3_get_iface_id id $1
+       network_get_device device $1
+       config_get enabled "$1" enabled 0
+       config_get family "$1" family ipv4
+
+       if [ "$family" == "ipv4" ]; then
+               IP="$IP4"
+               IPT="$IPT4"
+       fi
+
+       if [ "$family" == "ipv6" ]; then
+               IP="$IP6"
+               IPT="$IPT6"
+       fi
+
+       if [ -z "$id" -o -z "$device" ]; then
+               result="unknown"
+       elif [ -n "$($IP rule | awk '$1 == "'$(($id+1000)):'"')"i -a -n "$($IP rule | awk '$1 == "'$(($id+2000)):'"')" -a -n "$($IPT -S mwan3_iface_in_$1 2> /dev/null)" -a -n "$($IPT -S mwan3_iface_out_$1 2> /dev/null)" -a -n "$($IP route list table $id default dev $device 2> /dev/null)" ]; then
+               result="online"
+       elif [ -n "$($IP rule | awk '$1 == "'$(($id+1000)):'"')" -o -n "$($IP rule | awk '$1 == "'$(($id+2000)):'"')" -o -n "$($IPT -S mwan3_iface_in_$1 2> /dev/null)" -o -n "$($IPT -S mwan3_iface_out_$1 2> /dev/null)" -o -n "$($IP route list table $id default dev $device 2> /dev/null)" ]; then
+               result="error"
+       else
+               if [ "$enabled" == "1" ]; then
+                       result="offline"
+               else
+                       result="disabled"
+               fi
+       fi
+
+       mwan3_list_track_ips()
+       {
+               track_ips="$1 $track_ips"
+       }
+       config_list_foreach $1 track_ip mwan3_list_track_ips
+
+       if [ -n "$track_ips" ]; then
+               if [ -n "$(ps -w | grep mwan3track | grep -v grep | sed '/.*\/usr\/sbin\/mwan3track \([^ ]*\) .*$/!d;s//\1/' | awk '$1 == "'$1'"')" ]; then
+                       tracking="active"
+               else
+                       tracking="down"
+               fi
+       else
+               tracking="not enabled"
+       fi
+
+       echo " interface $1 is $result and tracking is $tracking"
+}
+
+mwan3_report_policies_v4()
+{
+       local percent policy share total_weight weight iface
+
+       for policy in $($IPT4 -S | awk '{print $2}' | grep mwan3_policy_ | sort -u); do
+               echo "$policy:" | sed 's/mwan3_policy_//'
+
+               [ -n "$total_weight" ] || total_weight=$($IPT4 -S $policy | cut -s -d'"' -f2 | head -1 | awk '{print $3}')
+
+               if [ ! -z "${total_weight##*[!0-9]*}" ]; then
+                       for iface in $($IPT4 -S $policy | cut -s -d'"' -f2 | awk '{print $1}'); do
+                               weight=$($IPT4 -S $policy | cut -s -d'"' -f2 | awk '$1 == "'$iface'"' | awk '{print $2}')
+                               percent=$(($weight*100/$total_weight))
+                               echo " $iface ($percent%)"
+                       done
+               else
+                       echo " $($IPT4 -S $policy | sed '/.*--comment \([^ ]*\) .*$/!d;s//\1/;q')"
+               fi
+
+               unset total_weight
+
+               echo -e
+       done
+}
+
+mwan3_report_policies_v6()
+{
+       local percent policy share total_weight weight iface
+
+       for policy in $($IPT6 -S | awk '{print $2}' | grep mwan3_policy_ | sort -u); do
+               echo "$policy:" | sed 's/mwan3_policy_//'
+
+               [ -n "$total_weight" ] || total_weight=$($IPT6 -S $policy | cut -s -d'"' -f2 | head -1 | awk '{print $3}')
+
+               if [ ! -z "${total_weight##*[!0-9]*}" ]; then
+                       for iface in $($IPT6 -S $policy | cut -s -d'"' -f2 | awk '{print $1}'); do
+                               weight=$($IPT6 -S $policy | cut -s -d'"' -f2 | awk '$1 == "'$iface'"' | awk '{print $2}')
+                               percent=$(($weight*100/$total_weight))
+                               echo " $iface ($percent%)"
+                       done
+               else
+                       echo " $($IPT6 -S $policy | sed '/.*--comment \([^ ]*\) .*$/!d;s//\1/;q')"
+               fi
+
+               unset total_weight
+
+               echo -e
+       done
+}
+
+mwan3_report_connected_v4()
+{
+       local address
+
+       if [ -n "$($IPT4 -S mwan3_connected 2> /dev/null)" ]; then
+               for address in $($IPS list mwan3_connected_v4 | egrep '[0-9]{1,3}(\.[0-9]{1,3}){3}'); do
+                       echo " $address"
+               done
+       fi
+}
+
+mwan3_report_connected_v6()
+{
+       local address
+
+       if [ -n "$($IPT6 -S mwan3_connected 2> /dev/null)" ]; then
+               for address in $($IPS list mwan3_connected_v6 | egrep '([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])'); do
+                       echo " $address"
+               done
+       fi
+}
+
+mwan3_report_rules_v4()
+{
+       if [ -n "$($IPT4 -S mwan3_rules 2> /dev/null)" ]; then
+               $IPT4 -L mwan3_rules -n -v 2> /dev/null | tail -n+3 | sed 's/mark.*//' | sed 's/mwan3_policy_/- /' | sed 's/mwan3_rule_/S /'
+       fi
+}
+
+mwan3_report_rules_v6()
+{
+       if [ -n "$($IPT6 -S mwan3_rules 2> /dev/null)" ]; then
+               $IPT6 -L mwan3_rules -n -v 2> /dev/null | tail -n+3 | sed 's/mark.*//' | sed 's/mwan3_policy_/- /' | sed 's/mwan3_rule_/S /'
+       fi
+}
index b887fa5e6b446e99312c3c9c814f34c8bde00f7e..26803aac10a8de2f7b2643fa87faddbef7dd1b33 100755 (executable)
@@ -1,9 +1,14 @@
 #!/bin/sh
-. /lib/functions.sh
 
-IP="/usr/sbin/ip -4"
-IPS="/usr/sbin/ipset"
-IPT="/usr/sbin/iptables -t mangle -w"
+[ -x /usr/bin/ip ] || exit 4
+[ -x /usr/sbin/ipset ] || exit 5
+[ -x /usr/sbin/iptables ] || exit 6
+[ -x /usr/sbin/ip6tables ] || exit 7
+[ -x /usr/bin/logger ] || exit 8
+
+. /lib/functions.sh
+. /lib/functions/network.sh
+. /lib/mwan3/mwan3.sh
 
 help()
 {
@@ -17,8 +22,9 @@ Available commands:
         ifup <iface>    Load rules and routes for specific interface
         ifdown <iface>  Unload rules and routes for specific interface
         interfaces      Show interfaces status
-        policies        Show policies status
-        rules           Show rules status
+        policies        Show currently active policy
+       connected       Show directly connected networks
+        rules           Show active rules
         status          Show all status
 
 EOF
@@ -34,12 +40,12 @@ ifdown()
                echo "Error: Too many arguments. Usage: mwan3 ifdown <interface>" && exit 0
        fi
 
+       ACTION=ifdown INTERFACE=$1 /sbin/hotplug-call iface
+
        if [ -e /var/run/mwan3track-$1.pid ] ; then
                kill $(cat /var/run/mwan3track-$1.pid)
                rm /var/run/mwan3track-$1.pid
        fi
-
-       ACTION=ifdown INTERFACE=$1 /sbin/hotplug-call iface
 }
 
 ifup()
@@ -67,102 +73,46 @@ ifup()
 
 interfaces()
 {
-       local device enabled iface_id tracking
-
        config_load mwan3
 
        echo "Interface status:"
-
-       check_iface_status()
-       {
-               let iface_id++
-               device=$(uci -p /var/state get network.$1.ifname) &> /dev/null
-
-               if [ -z "$device" ]; then
-                       echo " interface $1 is unknown"
-                       return 0
-               fi
-
-               config_get enabled "$1" enabled 0
-
-               if [ -n "$(ps -w | grep mwan3track | grep -v grep | sed '/.*\/usr\/sbin\/mwan3track \([^ ]*\) .*$/!d;s//\1/' | awk '$1 == "'$1'"')" ]; then
-                       tracking="active"
-               else
-                       tracking="down"
-               fi
-
-               if [ -n "$($IP rule | awk '$5 == "'$device'"')" -a -n "$($IPT -S mwan3_iface_$1 2> /dev/null)" -a -n "$($IP route list table $iface_id default dev $device 2> /dev/null)" ]; then
-                       if [ -n "$(uci -p /var/state get mwan3.$1.track_ip 2> /dev/null)" ]; then
-                               echo " interface $1 is online (tracking $tracking)"
-                       else
-                               echo " interface $1 is online"
-                       fi
-               elif [ -n "$($IP rule | awk '$5 == "'$device'"')" -o -n "$($IPT -S mwan3_iface_$1 2> /dev/null)" -o -n "$($IP route list table $iface_id default dev $device 2> /dev/null)" ]; then
-                       echo " interface $1 error"
-               else
-                       if [ "$enabled" -eq 1 ]; then
-                               if [ -n "$(uci -p /var/state get mwan3.$1.track_ip 2> /dev/null)" ]; then
-                                       echo " interface $1 is offline (tracking $tracking)"
-                               else
-                                       echo " interface $1 is offline"
-                               fi
-                       else
-                               echo " interface $1 is disabled"
-                       fi
-               fi
-       }
-       config_foreach check_iface_status interface
+       config_foreach mwan3_report_iface_status interface
        echo -e
 }
 
 policies()
 {
-       local percent policy share total_weight weight iface
-
-       for policy in $($IPT -S | awk '{print $2}' | grep mwan3_policy_ | sort -u); do
-               echo "Policy $policy:" | sed 's/mwan3_policy_//'
-
-               [ -n "$total_weight" ] || total_weight=$($IPT -S $policy | cut -s -d'"' -f2 | head -1 | awk '{print $3}')
-
-               if [ ! -z "${total_weight##*[!0-9]*}" ]; then
-                       for iface in $($IPT -S $policy | cut -s -d'"' -f2 | awk '{print $1}'); do
-                               weight=$($IPT -S $policy | cut -s -d'"' -f2 | awk '$1 == "'$iface'"' | awk '{print $2}')
-                               percent=$(($weight*100/$total_weight))
-                               echo " $iface ($percent%)"
-                       done
-               else
-                       echo " $($IPT -S $policy | sed '/.*--comment \([^ ]*\) .*$/!d;s//\1/;q')"
-               fi
-
-               echo -e
+       echo "Current ipv4 policies:"
+       mwan3_report_policies_v4
+       echo "Current ipv6 policies:"
+       mwan3_report_policies_v6
+}
 
-               unset iface
-               unset total_weight
-       done
+connected()
+{
+       echo "Directly connected ipv4 networks:"
+       mwan3_report_connected_v4
+       echo -e
+       echo "Directly connected ipv6 networks:"
+       mwan3_report_connected_v6
+       echo -e
 }
+
 rules()
 {
-       local address
-
-       if [ -n "$($IPT -S mwan3_connected 2> /dev/null)" ]; then
-               echo "Known networks:"
-               for address in $($IPS list mwan3_connected | egrep '[0-9]{1,3}(\.[0-9]{1,3}){3}'); do
-                       echo " $address"
-               done
-               echo -e
-       fi
-
-       if [ -n "$($IPT -S mwan3_rules 2> /dev/null)" ]; then
-               echo "Active rules:"
-               $IPT -L mwan3_rules -n -v 2> /dev/null | tail -n+3 | sed 's/mark.*//' | sed 's/mwan3_policy_/- /' | sed 's/mwan3_rule_/S /'
-               echo -e
-       fi
+       echo "Active ipv4 user rules:"
+       mwan3_report_rules_v4
+       echo -e
+       echo "Active ipv6 user rules:"
+       mwan3_report_rules_v6
+       echo -e
 }
 
 status()
 {
        interfaces
        policies
+       connected
        rules
 }
 
@@ -174,31 +124,37 @@ start()
 
 stop()
 {
-       local ipset route rule table
+       local ipset route rule table IP IPT
 
        killall mwan3track &> /dev/null
        rm /var/run/mwan3track-* &> /dev/null
 
-       for route in $($IP route list table all | sed 's/.*table \([^ ]*\) .*/\1/' |  awk '{print $1}' | awk '{for(i=1;i<=NF;i++) if($i+0>0) if($i+0<255) {print;break}}'); do
-               $IP route flush table $route &> /dev/null
-       done
+       for IP in "$IP4" "$IP6"; do
+
+               for route in $($IP route list table all | sed 's/.*table \([^ ]*\) .*/\1/' |  awk '{print $1}' | awk '{for(i=1;i<=NF;i++) if($i+0>0) if($i+0<255) {print;break}}'); do
+                       $IP route flush table $route &> /dev/null
+               done
 
-       for rule in $($IP rule list | egrep '^[1-2][0-9]{3}\:' | cut -d ':' -f 1); do
-               $IP rule del pref $rule &> /dev/null
+               for rule in $($IP rule list | egrep '^[1-2][0-9]{3}\:' | cut -d ':' -f 1); do
+                       $IP rule del pref $rule &> /dev/null
+               done
        done
 
-       $IPT -D PREROUTING -j mwan3_hook &> /dev/null
-       $IPT -D OUTPUT -j mwan3_hook &> /dev/null
+       for IPT in "$IPT4" "$IPT6"; do
 
-       for table in $($IPT -S | awk '{print $2}' | grep mwan3 | sort -u); do
-               $IPT -F $table &> /dev/null
-       done
+               $IPT -D PREROUTING -j mwan3_hook &> /dev/null
+               $IPT -D OUTPUT -j mwan3_hook &> /dev/null
+
+               for table in $($IPT -S | awk '{print $2}' | grep mwan3 | sort -u); do
+                       $IPT -F $table &> /dev/null
+               done
 
-       for table in $($IPT -S | awk '{print $2}' | grep mwan3 | sort -u); do
-               $IPT -X $table &> /dev/null
+               for table in $($IPT -S | awk '{print $2}' | grep mwan3 | sort -u); do
+                       $IPT -X $table &> /dev/null
+               done
        done
 
-       for ipset in $(ipset -n list | grep mwan3); do
+       for ipset in $($IPS -n list | sort | grep mwan3); do
                $IPS destroy $ipset
        done
 }
@@ -209,7 +165,7 @@ restart() {
 }
 
 case "$1" in
-       ifup|ifdown|interfaces|policies|rules|status|start|stop|restart)
+       ifup|ifdown|interfaces|policies|connected|rules|status|start|stop|restart)
                $*
        ;;
        *)
index c4d25e99d26d33baf7c580efe61d6da50495ebb4..6ea84bda46fca1fea29f59b5cbf3ea40ba46978d 100755 (executable)
@@ -17,7 +17,7 @@ lost=0
 while true; do
 
        for track_ip in $track_ips; do
-               ping -I $2 -c $4 -W $5 -s 4 -q $track_ip &> /dev/null
+               ping -I $2 -c $4 -W $5 -q $track_ip &> /dev/null
                if [ $? -eq 0 ]; then
                        let host_up_count++
                else
diff --git a/net/nbd/Makefile b/net/nbd/Makefile
new file mode 100644 (file)
index 0000000..130b31b
--- /dev/null
@@ -0,0 +1,88 @@
+#
+# Copyright (C) 2006-2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=nbd
+PKG_VERSION:=3.11
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
+PKG_SOURCE_URL:=@SF/nbd
+PKG_MD5SUM:=73d11644a28b9f335292cdb3bdc4b74b
+PKG_LICENSE:=GPL-2.0+
+PKG_MAINTAINER:=Marcin Jurkowski <marcin1j@gmail.com>
+
+PKG_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+# -liconv due to glib2, to be revisited later
+include $(INCLUDE_DIR)/nls.mk
+
+PKG_BUILD_DEPENDS:=glib2 libintl
+
+define Package/nbd
+  SECTION:=net
+  CATEGORY:=Network
+  TITLE:=Network Block Device utilities
+  URL:=http://nbd.sourceforge.net
+  DEPENDS:=+kmod-nbd
+endef
+
+define Package/nbd/description
+  This package contains the network block device client.
+endef
+
+define Package/nbd-server
+  SECTION:=net
+  CATEGORY:=Network
+  TITLE:=Network Block Device Server
+  URL:=http://nbd.sourceforge.net
+  DEPENDS:=+glib2
+endef
+
+define Package/nbd-server/description
+  This package contains the network block device server.
+endef
+
+CONFIGURE_ARGS += \
+       --disable-glibtest
+
+TARGET_CFLAGS += --std=gnu99 -DNODAEMON
+
+define Package/nbd/install
+       $(INSTALL_DIR) $(1)/usr/sbin
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/nbd-client $(1)/usr/sbin/
+       $(INSTALL_DIR) $(1)/etc/config
+       $(INSTALL_CONF) ./files/nbd-client.conf $(1)/etc/config/nbd-client
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_BIN) ./files/nbd-client.init $(1)/etc/init.d/nbd-client
+endef
+
+define Package/nbd/conffiles
+/etc/config/nbd-client
+endef
+
+$(eval $(call BuildPackage,nbd))
+
+define Package/nbd-server/install
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/nbd-server $(1)/usr/bin/
+       $(INSTALL_DIR) $(1)/etc/config
+       $(INSTALL_CONF) ./files/nbd-server.conf $(1)/etc/config/nbd-server
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_BIN) ./files/nbd-server.init $(1)/etc/init.d/nbd-server
+endef
+
+define Package/nbd-server/conffiles
+/etc/config/nbd-server
+/etc/nbd-server/conf.d
+/etc/nbd-server/allow
+endef
+
+$(eval $(call BuildPackage,nbd-server))
diff --git a/net/nbd/files/nbd-client.conf b/net/nbd/files/nbd-client.conf
new file mode 100644 (file)
index 0000000..e355c61
--- /dev/null
@@ -0,0 +1,9 @@
+config nbd-client nbd0
+       option enabled '0'
+       option server '127.0.0.1'
+       option port 10809
+       option sdp 0
+       option swap 0
+       option persist 0
+       option blocksize 1024
+       option exportname foo
diff --git a/net/nbd/files/nbd-client.init b/net/nbd/files/nbd-client.init
new file mode 100644 (file)
index 0000000..e10c220
--- /dev/null
@@ -0,0 +1,69 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2015 OpenWrt.org
+
+START=90
+STOP=10
+USE_PROCD=1
+
+append_arg() {
+       local cfg="$1"
+       local var="$2"
+       local opt="$3"
+       local def="$4"
+       local val
+
+       config_get val "$cfg" "$var"
+       [ -n "$val" -o -n "$def" ] && procd_append_param command $opt "${val:-$def}"
+}
+
+append_bool() {
+       local cfg="$1"
+       local var="$2"
+       local opt="$3"
+       local def="$4"
+       local val
+
+       config_get_bool val "$cfg" "$var" "$def"
+       [ "$val" = 1 ] && procd_append_param command "$opt"
+}
+
+start_instance() {
+       local cfg="$1"
+       local enabled
+
+       config_get_bool enabled "$cfg" 'enabled' '0'
+       [ "$enabled" = 0 ] && return 1
+
+       procd_open_instance
+
+       procd_set_param command /usr/sbin/nbd-client
+
+       append_arg "$cfg" server
+       append_arg "$cfg" port
+       # device path
+       procd_append_param command "/dev/$cfg"
+       procd_append_param command -nofork
+       append_bool "$cfg" sdp "-sdp"
+       append_bool "$cfg" swap "-swap"
+       append_bool "$cfg" persist "-persist"
+       append_arg "$cfg" blocksize "-block-size"
+       append_arg "$cfg" timeout "-timeout"
+       append_arg "$cfg" exportname "-name"
+
+       procd_close_instance
+}
+
+service_triggers() {
+       procd_add_reload_trigger "nbd-client"
+}
+
+start_service() {
+       config_load nbd-client
+       config_foreach start_instance nbd-client
+}
+
+stop_service() {
+       for dev in /dev/nbd*; do
+               nbd-client -d $dev 1>/dev/null 2>&1
+       done
+}
diff --git a/net/nbd/files/nbd-server.conf b/net/nbd/files/nbd-server.conf
new file mode 100644 (file)
index 0000000..ec9a1c3
--- /dev/null
@@ -0,0 +1,31 @@
+config nbd-server
+       option enabled 0
+#      option port 10809
+#      option user root
+#      option group root
+#      option allowlist 0
+#      option includedir '/etc/nbd-server/conf.d'
+#      option listenaddr '0.0.0.0'
+#      option oldstyle 0
+
+config share usb_sda1
+       option filename '/dev/sda1'
+#      option authfile '/etc/nbd-server/allow'
+#      option timeout 0
+#      option flush 0
+#      option fua 0
+#      option rotational 0
+#      option sync 0
+#      option discard 0
+#      option maxconnections 10
+#      option filesize 1000000
+#      option multifile 0
+#      option copyonwrite 0
+#      option sparse_cow 1
+#      option readonly 0
+#      option prerun '/bin/true'
+#      option postrun '/bin/true'
+#      option virtstyle 'ipliteral'
+#      option oldstyle_port 12345
+#      option oldstyle_listenaddr '0.0.0.0'
+
diff --git a/net/nbd/files/nbd-server.init b/net/nbd/files/nbd-server.init
new file mode 100644 (file)
index 0000000..ae3db24
--- /dev/null
@@ -0,0 +1,112 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2015 OpenWrt.org
+
+START=60
+STOP=40
+USE_PROCD=1
+
+PROG=/usr/bin/nbd-server
+CONFIGFILE="/var/etc/nbd-server.conf"
+
+
+append_plain() {
+       echo "$1" >> $CONFIGFILE
+}
+
+append_val_str() {
+       local resultname="$1"
+       local cfg="$2"
+       local uciname="${3:-$1}"
+       local value=
+
+       config_get value "$cfg" "$uciname"
+
+       if [ -z "$value" ]; then
+               return
+       fi
+       append_plain "$resultname = $value"
+}
+
+append_val_bool() {
+       local resultname="$1"
+       local cfg="$2"
+       local uciname="${3:-$1}"
+       local value=
+
+       config_get_bool value "$cfg" "$uciname"
+       if [ -z "$value" ]; then
+               return
+       fi
+
+       [ $value == 1 ] && value="true" || value="false"
+       append_plain "$resultname = $value"
+}
+
+config_handle_generic() {
+       local cfg="$1"
+
+       append_plain "[generic]"
+       append_val_str user "$cfg"
+       append_val_str group "$cfg"
+       append_val_str port "$cfg"
+       append_val_str listenaddr "$cfg"
+       append_val_bool allowlist "$cfg"
+       append_val_str includedir "$cfg"
+       append_val_bool oldstyle "$cfg"
+
+       config_get_bool SERVICE_ENABLED "$cfg" enabled 0
+}
+
+config_handle_share() {
+       local cfg="$1"
+
+       append_plain
+       append_plain "[$cfg]"
+       append_val_str exportname "$cfg" filename
+       append_val_str timeout "$cfg"
+       append_val_str maxconnections "$cfg"
+       append_val_str authfile "$cfg"
+       append_val_str filesize "$cfg"
+       append_val_str readonly "$cfg"
+       append_val_str multifile "$cfg"
+       append_val_str copyonwrite "$cfg"
+       append_val_bool sparse_cow "$cfg"
+       append_val_bool flush "$cfg"
+       append_val_bool fua "$cfg"
+       append_val_bool rotational "$cfg"
+       append_val_bool sync "$cfg"
+       append_val_bool discard "$cfg"
+       append_val_str prerun "$cfg"
+       append_val_str postrun "$cfg"
+       append_val_str virtstyle "$cfg"
+       append_val_str port "$cfg" oldstyle_port
+       append_val_str listenaddr "$cfg" oldstyle_listenaddr
+}
+
+start_instance() {
+       local cfg="$1"
+       local enabled
+
+       config_get_bool enabled "$cfg" 'enabled' '0'
+       [ "$enabled" = 0 ] && return 1
+
+       procd_open_instance
+       procd_set_param command $PROG --config-file=$CONFIGFILE
+       procd_set_param file $CONFIGFILE
+       procd_close_instance
+}
+
+start_service() {
+       config_load nbd-server
+
+       mkdir -p $(dirname $CONFIGFILE)
+       echo "# auto-generated config file from /etc/config/nbd-server" > $CONFIGFILE
+       config_foreach config_handle_generic nbd-server
+       config_foreach config_handle_share share
+
+       config_foreach start_instance nbd-server
+}
+
+service_triggers() {
+       procd_add_reload_trigger "nbd-server"
+}
index 3dd8c41dc2f836a7312c8f3de09077c6c3386c76..000a992d48f5263097a2c3777d512bf028e0b49f 100644 (file)
@@ -99,6 +99,60 @@ snmpd_access_add() {
        echo "access $group $context $version $level $prefix $read $write $notify" >> $CONFIGFILE
 }
 
+snmpd_trap_hostname_add() {
+       local cfg="$1"
+       config_get hostname "$cfg" HostName
+       config_get port "$cfg" Port
+       config_get community "$cfg" Community
+       config_get type "$cfg" Type
+       echo "$type $hostname $community $port" >> $CONFIGFILE
+}
+
+snmpd_trap_ip_add() {
+       local cfg="$1"
+       config_get host_ip "$cfg" HostIP
+       config_get port "$cfg" Port
+       config_get community "$cfg" Community
+       config_get type "$cfg" Type
+       echo "$type $host_ip $community $port" >> $CONFIGFILE
+}
+
+snmpd_access_default_add() {
+       local cfg="$1"
+       config_get mode "$cfg" Mode
+       config_get community "$cfg" CommunityName
+       config_get oidrestrict "$cfg" RestrictOID
+       config_get oid "$cfg" RestrictedOID
+       echo -n "$mode $community default" >> $CONFIGFILE
+       [ "$oidrestrict" == "yes" ] && echo " $oid" >> $CONFIGFILE
+       [ "$oidrestrict" == "no" ] && echo "" >> $CONFIGFILE
+}
+
+snmpd_access_HostName_add() {
+       local cfg="$1"
+       config_get hostname "$cfg" HostName
+       config_get mode "$cfg" Mode
+       config_get community "$cfg" CommunityName
+       config_get oidrestrict "$cfg" RestrictOID
+       config_get oid "$cfg" RestrictedOID
+       echo -n "$mode $community $hostname" >> $CONFIGFILE
+       [ "$oidrestrict" == "yes" ] && echo " $oid" >> $CONFIGFILE
+       [ "$oidrestrict" == "no" ] && echo "" >> $CONFIGFILE
+}
+
+snmpd_access_HostIP_add() {
+       local cfg="$1"
+       config_get host_ip "$cfg" HostIP
+       config_get ip_mask "$cfg" IPMask
+       config_get mode "$cfg" Mode
+       config_get community "$cfg" CommunityName
+       config_get oidrestrict "$cfg" RestrictOID
+       config_get oid "$cfg" RestrictedOID
+       echo -n "$mode $community $host_ip/$ip_mask" >> $CONFIGFILE
+       [ "$oidrestrict" == "yes" ] && echo " $oid" >> $CONFIGFILE
+       [ "$oidrestrict" == "no" ] && echo "" >> $CONFIGFILE
+}
+
 snmpd_pass_add() {
        local cfg="$1"
        local pass='pass'
@@ -151,6 +205,11 @@ start_service() {
        config_foreach snmpd_group_add group
        config_foreach snmpd_view_add view
        config_foreach snmpd_access_add access
+       config_foreach snmpd_trap_hostname_add trap_HostName
+       config_foreach snmpd_trap_ip_add trap_HostIP
+       config_foreach snmpd_access_default_add access_default
+       config_foreach snmpd_access_HostName_add access_HostName
+       config_foreach snmpd_access_HostIP_add access_HostIP
        config_foreach snmpd_pass_add pass
        config_foreach snmpd_exec_add exec
        config_foreach snmpd_disk_add disk
@@ -169,3 +228,7 @@ start_service() {
 stop_service() {
        [ -f "$CONFIGFILE" ] && rm -f "$CONFIGFILE"
 }
+
+service_triggers(){
+       procd_add_reload_trigger 'snmpd'
+}
index 8729053c9129bbe4c22aa442f08b573381bace5a..abeb991355876a4b3441a149afcc47773a25d9b6 100644 (file)
@@ -25,7 +25,7 @@ define Package/netatalk
   SECTION:=net
   CATEGORY:=Network
   SUBMENU:=Filesystem
-  DEPENDS:=+attr +libdb47 +libgcrypt +libopenssl $(LIBRPC_DEPENDS)
+  DEPENDS:=+libattr +libdb47 +libgcrypt +libopenssl $(LIBRPC_DEPENDS)
   TITLE:=netatalk
   URL:=http://netatalk.sourceforge.net
   MAINTAINER:=W. Michael Petullo <mike@flyn.org>
index e66fe65f5513f5fce0cd68a2b15b91e9fe8fd975..8c2d26daa5cc43f73c3819b3a8b70ad014fc4d16 100644 (file)
@@ -7,9 +7,9 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=nfs-kernel-server
-PKG_VERSION:=1.3.2
-PKG_RELEASE:=4
-PKG_MD5SUM:=1e2f3c1ed468dee02d00c534c002ea10
+PKG_VERSION:=1.3.3
+PKG_RELEASE:=1
+PKG_MD5SUM:=9b87d890669eaaec8e97a2b0a35b2665
 
 PKG_SOURCE_URL:=@SF/nfs
 PKG_SOURCE:=nfs-utils-$(PKG_VERSION).tar.bz2
index b135e42d4f9b223594d98f3ae7517d951558d1e9..a4cc4c8c8e7af40ebdbbc7544f5ead43f52c7611 100644 (file)
@@ -8,44 +8,33 @@
 menu "Configuration"
         depends on PACKAGE_nginx
 
-config NGINX_STUB_STATUS
-       bool
-       prompt "Enable stub status module"
-       help
-               Enable the stub status module which gives some status from the server.
-
-config NGINX_FLV
-       bool
-       prompt "Enable FLV module"
-       help
-               Provides the ability to seek within FLV (Flash) files using time-based offsets.
-
 config NGINX_SSL
        bool
        prompt "Enable SSL module"
        help
                Enable HTTPS/SSL support.
+       default n
 
 config NGINX_DAV
        bool
        prompt "Enable WebDAV module"
        help
                Enable the HTTP and WebDAV methods PUT, DELETE, MKCOL, COPY and MOVE.
+       default n
 
-config NGINX_LUA
+config NGINX_FLV
        bool
-       prompt "Enable LUA module"
+       prompt "Enable FLV module"
        help
-               Enable support for LUA scripts.
-
-config NGINX_PCRE
-       bool
-       prompt "Enable PCRE library usage"
-       default y
+               Provides the ability to seek within FLV (Flash) files using time-based offsets.
+       default n
 
-config NGINX_HTTP_CACHE
+config NGINX_STUB_STATUS
        bool
-       prompt "Enable HTTP cache"
+       prompt "Enable stub status module"
+       help
+               Enable the stub status module which gives some status from the server.
+       default n
 
 config NGINX_HTTP_CHARSET
        bool
@@ -153,40 +142,34 @@ config NGINX_HTTP_BROWSER
        prompt "Enable HTTP browser module"
        default y
 
+config NGINX_HTTP_UPSTREAM_HASH
+       bool
+       prompt "Enable HTTP hash module"
+       default y
+
 config NGINX_HTTP_UPSTREAM_IP_HASH
        bool
        prompt "Enable HTTP IP hash module"
        default y
 
-config NGINX_NAXSI
+config NGINX_HTTP_UPSTREAM_LEAST_CONN
        bool
-       prompt "Enable NAXSI module"
-       select PACKAGE_nginx-naxsi
+       prompt "Enable HTTP least conn module"
        default y
-       help
-               Enable support for NAXSI WAF.
 
-config NGINX_PROXYPROTOCOL
+config NGINX_HTTP_UPSTREAM_KEEPALIVE
        bool
-       prompt "Enable HAProxy proxyprotocol"
-       select PACKAGE_nginx-proxyprotocol
-       select NGINX_SSL
-       default n
-       help
-               Enable support for PROXY PROTOCOL
+       prompt "Enable HTTP keepalive module"
+       default y
 
-config NGINX_SYSLOG
+config NGINX_HTTP_CACHE
        bool
-       prompt "Enable Syslog module"
-       select PACKAGE_nginx-syslog
+       prompt "Enable HTTP cache"
        default y
-       help
-               Provides the ability log to a remote destination
 
-config NGINX_HTTP_UPSTREAM_CHECK
+config NGINX_PCRE
        bool
-       select NGINX_SSL
-       prompt "Enable HTTP upstream check module"
-       default n
+       prompt "Enable PCRE library usage"
+       default y
 
 endmenu
index 667bacb5de38652885e86fb7882bdb574525c386..cc597157744cd528e6a049c19cf49afaa7faaf2b 100644 (file)
@@ -8,26 +8,25 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=nginx
-PKG_VERSION:=1.4.7
-PKG_RELEASE:=3
+PKG_VERSION:=1.9.6
+PKG_RELEASE:=1
 
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE:=nginx-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://nginx.org/download/
-PKG_MD5SUM:=aee151d298dcbfeb88b3f7dd3e7a4d17
+PKG_MD5SUM:=f6899825e7a8deadba4948ff84515ad6
 PKG_MAINTAINER:=Thomas Heil <heil@terminal-consulting.de>
 PKG_LICENSE:=2-clause BSD-like license
 
+PKG_BUILD_DIR:=$(BUILD_DIR)/nginx-$(PKG_VERSION)
+
 PKG_BUILD_PARALLEL:=1
 PKG_INSTALL:=1
 
 PKG_CONFIG_DEPENDS := \
-       CONFIG_NGINX_STUB_STATUS \
-       CONFIG_NGINX_FLV \
        CONFIG_NGINX_SSL \
        CONFIG_NGINX_DAV \
-       CONFIG_NGINX_LUA \
-       CONFIG_NGINX_PCRE \
-       CONFIG_NGINX_HTTP_CACHE \
+       CONFIG_NGINX_FLV \
+       CONFIG_NGINX_STUB_STATUS \
        CONFIG_NGINX_HTTP_CHARSET \
        CONFIG_NGINX_HTTP_GZIP \
        CONFIG_NGINX_HTTP_SSI \
@@ -49,7 +48,13 @@ PKG_CONFIG_DEPENDS := \
        CONFIG_NGINX_HTTP_LIMIT_REQ \
        CONFIG_NGINX_HTTP_EMPTY_GIF \
        CONFIG_NGINX_HTTP_BROWSER \
-       CONFIG_NGINX_HTTP_UPSTREAM_IP_HASH
+       CONFIG_NGINX_HTTP_UPSTREAM_HASH \
+       CONFIG_NGINX_HTTP_UPSTREAM_IP_HASH \
+       CONFIG_NGINX_HTTP_UPSTREAM_LEAST_CONN \
+       CONFIG_NGINX_HTTP_UPSTREAM_KEEPALIVE \
+       CONFIG_NGINX_HTTP_UPSTREAM_ZONE \
+       CONFIG_NGINX_HTTP_CACHE \
+       CONFIG_NGINX_PCRE
 
 include $(INCLUDE_DIR)/package.mk
 
@@ -59,7 +64,7 @@ define Package/nginx
   SUBMENU:=Web Servers/Proxies
   TITLE:=Nginx web server
   URL:=http://nginx.org/
-  DEPENDS:=+NGINX_PCRE:libpcre +(NGINX_SSL||NGINX_HTTP_CACHE||NGINX_HTTP_AUTH_BASIC):libopenssl +NGINX_HTTP_GZIP:zlib +libpthread +NGINX_LUA:liblua
+  DEPENDS:=+NGINX_PCRE:libpcre +(NGINX_SSL||NGINX_HTTP_CACHE||NGINX_HTTP_AUTH_BASIC):libopenssl +NGINX_HTTP_GZIP:zlib +libpthread
   MENU:=1
 endef
 
@@ -79,9 +84,6 @@ define Package/nginx/conffiles
 endef
 
 ADDITIONAL_MODULES:=
-ifeq ($(CONFIG_NGINX_NAXSI),y)
-  ADDITIONAL_MODULES += --add-module=$(PKG_BUILD_DIR)/nginx-naxsi/naxsi_src
-endif
 ifeq ($(CONFIG_IPV6),y)
   ADDITIONAL_MODULES += --with-ipv6
 endif
@@ -97,9 +99,6 @@ endif
 ifeq ($(CONFIG_NGINX_DAV),y)
   ADDITIONAL_MODULES += --with-http_dav_module
 endif
-ifeq ($(CONFIG_NGINX_LUA),y)
-  ADDITIONAL_MODULES += --add-module=$(PKG_BUILD_DIR)/lua-nginx
-endif
 ifneq ($(CONFIG_NGINX_HTTP_CACHE),y)
   ADDITIONAL_MODULES += --without-http-cache
 endif
@@ -169,23 +168,21 @@ endif
 ifneq ($(CONFIG_NGINX_HTTP_BROWSER),y)
   ADDITIONAL_MODULES += --without-http_browser_module
 endif
+ifneq ($(CONFIG_NGINX_HTTP_UPSTREAM_HASH),y)
+  ADDITIONAL_MODULES += --without-http_upstream_hash_module
+endif
 ifneq ($(CONFIG_NGINX_HTTP_UPSTREAM_IP_HASH),y)
   ADDITIONAL_MODULES += --without-http_upstream_ip_hash_module
 endif
-ifeq ($(CONFIG_NGINX_PROXYPROTOCOL),y)
-  ADDITIONAL_MODULES += --with-proxy-protocol
-endif
-ifeq ($(CONFIG_NGINX_SYSLOG),y)
-  ADDITIONAL_MODULES += --add-module=$(PKG_BUILD_DIR)/nginx-syslog
+ifneq ($(CONFIG_NGINX_HTTP_UPSTREAM_LEAST_CONN),y)
+  ADDITIONAL_MODULES += --without-http_upstream_least_conn_module
 endif
-ifeq ($(CONFIG_NGINX_HTTP_UPSTREAM_CHECK),y)
-  ADDITIONAL_MODULES += --add-module=$(PKG_BUILD_DIR)/nginx-upstream-check
+ifneq ($(CONFIG_NGINX_HTTP_UPSTREAM_KEEPALIVE),y)
+  ADDITIONAL_MODULES += --without-http_upstream_keepalive_module
 endif
 
 define Build/Configure
-       # TODO: fix --crossbuild
-       (cd $(PKG_BUILD_DIR) ;\
-               $(if $(CONFIG_NGINX_LUA),LUA_INC=$(STAGING_DIR)/usr/include LUA_LIB=$(STAGING_DIR)/usr/lib) \
+       ( cd $(PKG_BUILD_DIR) ; \
                ./configure \
                        --crossbuild=Linux::$(ARCH) \
                        --prefix=/usr \
@@ -200,7 +197,9 @@ define Build/Configure
                        --http-fastcgi-temp-path=/var/lib/nginx/fastcgi \
                        --with-cc="$(TARGET_CC)" \
                        --with-cc-opt="$(TARGET_CPPFLAGS) $(TARGET_CFLAGS)" \
-                       --with-ld-opt="$(TARGET_LDFLAGS)" )
+                       --with-ld-opt="$(TARGET_LDFLAGS)" \
+                       --without-http_upstream_zone_module \
+       )
 endef
 
 define Package/nginx/install
@@ -212,123 +211,4 @@ define Package/nginx/install
        $(INSTALL_BIN) ./files/nginx.init $(1)/etc/init.d/nginx
 endef
 
-define Build/Prepare
-       $(call Build/Prepare/Default)
-       $(if $(CONFIG_NGINX_LUA),$(call Prepare/lua-nginx))
-       $(if $(CONFIG_NGINX_NAXSI),$(call Prepare/nginx-naxsi))
-       $(if $(CONFIG_NGINX_SYSLOG),$(call Prepare/nginx-syslog))
-       $(if $(CONFIG_NGINX_HTTP_UPSTREAM_CHECK),$(call Prepare/nginx-upstream-check))
-endef
-
-define Download/lua-nginx
-       VERSION:=d3ab0edd45bffe1b9a36abdf5bff544de436ccee
-       SUBDIR:=lua-nginx
-       FILE:=lua-nginx-module-$(PKG_VERSION)-$$(VERSION).tar.gz
-       URL:=https://github.com/chaoslawful/lua-nginx-module.git
-       PROTO:=git
-endef
-
-define  Prepare/lua-nginx
-       $(eval $(call Download,lua-nginx))
-       gzip -dc $(DL_DIR)/$(FILE) | tar -C $(PKG_BUILD_DIR) $(TAR_OPTIONS)
-       $(call PatchDir,$(PKG_BUILD_DIR),./patches-lua-nginx)
-endef
-
-define Download/nginx-upstream-check
-       VERSION:=d40b9f956d9d978005bb15616d2f283d4e3d2031
-       SUBDIR:=nginx-upstream-check
-       FILE:=nginx-upstream-check-$(PKG_VERSION)-$$(VERSION).tar.gz
-       URL:=https://github.com/yaoweibin/nginx_upstream_check_module.git
-       PROTO:=git
-endef
-
-define  Prepare/nginx-upstream-check
-       $(eval $(call Download,nginx-upstream-check))
-       gzip -dc $(DL_DIR)/$(FILE) | tar -C $(PKG_BUILD_DIR) $(TAR_OPTIONS)
-       $(call PatchDir,$(PKG_BUILD_DIR),./patches-nginx-upstream-check)
-endef
-
-
-define Package/nginx-naxsi
-        MENU:=1
-        $(call Package/nginx)
-        TITLE:=nginx-naxsi
-        DEPENDS:=nginx @NGINX_NAXSI
-endef
-
-define Package/nginx-naxsi/description
-        NGINX WAF NAXSI
-endef
-
-define Package/nginx-proxyprotocol
-        MENU:=1
-        $(call Package/nginx)
-        TITLE:=nginx 
-        DEPENDS:=nginx @NGINX_PROXYPROTOCOL
-endef
-
-define Package/nginx-proxyprotocol/description
-        IMPLEMENT Proxy Protocol
-endef
-
-define Package/nginx-syslog
-        MENU:=1
-        $(call Package/nginx)
-        TITLE:=nginx-syslog
-        DEPENDS:=nginx @NGINX_SYSLOG
-endef
-
-define Package/nginx-syslog/description
-        IMPLEMENT Syslog Protocol
-endef
-
-define Download/nginx-naxsi
-       VERSION:=34dcb45fe4fdcb144c5258d83672f8e1e1c8db2e
-       SUBDIR:=nginx-naxsi
-       FILE:=nginx-naxsi-module-$(PKG_VERSION)-$$(VERSION).tar.gz
-       URL:=https://github.com/nbs-system/naxsi.git
-       PROTO:=git
-endef
-
-define  Prepare/nginx-naxsi
-       $(eval $(call Download,nginx-naxsi))
-       gzip -dc $(DL_DIR)/$(FILE) | tar -C $(PKG_BUILD_DIR) $(TAR_OPTIONS)
-endef
-
-define Package/nginx-naxsi/install
-       $(INSTALL_DIR) $(1)/etc/nginx
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/nginx-naxsi/naxsi_config/naxsi_core.rules $(1)/etc/nginx
-       chmod 0640 $(1)/etc/nginx/naxsi_core.rules
-endef
-
-define Download/nginx-syslog
-       VERSION:=7abf48e52552c40a21463e1a8c608e0e575261cd
-       SUBDIR:=nginx-syslog
-       FILE:=nginx-syslog-module-$(PKG_VERSION)-$$(VERSION).tar.gz
-       URL:=https://github.com/splitice/nginx_syslog_patch.git
-       PROTO:=git
-endef
-
-define  Prepare/nginx-syslog
-       $(eval $(call Download,nginx-syslog))
-       gzip -dc $(DL_DIR)/$(FILE) | tar -C $(PKG_BUILD_DIR) $(TAR_OPTIONS)
-endef
-
-define Package/nginx-proxyprotocol/install
-       $(INSTALL_DIR) $(1)/etc/nginx
-       $(INSTALL_BIN) ./files/nginx.proxyprotocol.example $(1)/etc/nginx/nginx.conf.proxyprotocol
-       chmod 0640 $(1)/etc/nginx/nginx.conf.proxyprotocol
-endef
-
-define Package/nginx-syslog/install
-       $(INSTALL_DIR) $(1)/etc/nginx
-       $(INSTALL_BIN) ./files/nginx.syslog.example $(1)/etc/nginx/nginx.conf.syslog
-       chmod 0640 $(1)/etc/nginx/nginx.conf.syslog
-endef
-
-
 $(eval $(call BuildPackage,nginx))
-$(eval $(call BuildPackage,nginx-naxsi))
-$(eval $(call BuildPackage,nginx-proxyprotocol))
-$(eval $(call BuildPackage,nginx-syslog))
-
index adf36b4427f2db562f5f7a673b61e8bf237ffef3..d47d46f894519b748596d24019b01cbdfaa571f0 100644 (file)
@@ -1,24 +1,17 @@
 #!/bin/sh /etc/rc.common
-# Copyright (C) 2009-2012 OpenWrt.org
+# Copyright (C) 2015 OpenWrt.org
 
 START=50
-NGINX_BIN=/usr/sbin/nginx
 
-start() {
-       mkdir -p /var/log/nginx
-       mkdir -p /var/lib/nginx
-       $NGINX_BIN
-}
+USE_PROCD=1
 
-stop() {
-       $NGINX_BIN -s stop
-}
+start_service() {
+       [ -d /var/log/nginx ] || mkdir -p /var/log/nginx
+       [ -d /var/lib/nginx ] || mkdir -p /var/lib/nginx
 
-reload() {
-       $NGINX_BIN -s reload
+       procd_open_instance
+       procd_set_param command /usr/sbin/nginx -c /etc/nginx/nginx.conf -g 'daemon off;'
+       procd_set_param file /etc/nginx/nginx.conf
+       procd_set_param respawn
+       procd_close_instance
 }
-
-shutdown() {
-       $NGINX_BIN -s quit
-}
-
diff --git a/net/nginx/files/nginx.proxyprotocol.example b/net/nginx/files/nginx.proxyprotocol.example
deleted file mode 100644 (file)
index ab4bad6..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-worker_processes  1;
-pid /tmp/nginx.pid;
-daemon off;
-master_process off;
-error_log stderr debug_core;
-
-events {
- debug_connection <YOUR IPv4>;
- debug_connection <YOUR IPV6>;
- worker_connections  1024;
-}
-
-http {
- default_type  application/octet-stream;
- client_body_temp_path /tmp/body 1;
-
- access_log /tmp/nginx_access.log;
-
- server {
-#  listen       8082 ssl;
-# proxy protocol configuration for nginx 1.4.x:
-  listen       8082 accept_proxy_protocol=on;
-# same with spdy enabled:
-#  listen       8082 spdy ssl accept_proxy_protocol=on;
-  listen       [::]:8082 ipv6only=on;
-  ssl_certificate /your/certificate;
-  ssl_certificate_key /your/key;
-  server_name  localhost;
-# proxy protocol configuration for nginx 1.2.x:
-#  accept_proxy_protocol on;
-  location / {
-   proxy_pass        http://127.0.0.1:8084;
-   proxy_set_header  X-Real-IP  $remote_addr;
-   proxy_connect_timeout 10s;
-   proxy_read_timeout 10s;
-   send_proxy_protocol on;
-  }
- }
-}
diff --git a/net/nginx/files/nginx.syslog.example b/net/nginx/files/nginx.syslog.example
deleted file mode 100644 (file)
index 0594344..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-worker_processes  1;
-
-syslog local6 nginx;
-
-events {
-        worker_connections  1024;
-}
-
-http {
-    include       mime.types;
-    default_type  application/octet-stream;
-
-    log_format  main  '$remote_addr - $remote_user [$time_local] $request '
-        '"$status" $body_bytes_sent "$http_referer" '
-        '"$http_user_agent" "$http_x_forwarded_for"';
-
-    server {
-        listen       80;
-        server_name  localhost;
-
-        #send the log to syslog and file.
-        access_log  syslog:notice|logs/host1.access.log main;
-
-        # pre 1.5.x
-        error_log syslog:notice|logs/host1.error.log;
-
-        location / {
-            root   html;
-            index  index.html index.htm;
-        }
-    }
-
-    server {
-        listen       80;
-        server_name  www.example.com;
-
-        access_log  syslog:warn|logs/host2.access.log main;
-        error_log syslog:warn|logs/host2.error.log;
-
-        location / {
-            root   html;
-            index  index.html index.htm;
-        }
-    }
-
-    server {
-        listen       80;
-        server_name  www.test.com;
-
-        #send the log just to syslog.
-        access_log  syslog:error main;
-        error_log syslog:error;
-
-        location / {
-            root   html;
-            index  index.html index.htm;
-        }
-    }
-}
diff --git a/net/nginx/patches-lua-nginx/300-ldl.patch b/net/nginx/patches-lua-nginx/300-ldl.patch
deleted file mode 100644 (file)
index d826bcf..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
---- a/lua-nginx/config
-+++ b/lua-nginx/config
-@@ -1,5 +1,5 @@
- ngx_feature="Lua library"
--ngx_feature_libs="-llua -lm"
-+ngx_feature_libs="-llua -lm -ldl"
- ngx_feature_name=
- ngx_feature_run=no
- ngx_feature_incs="#include <lauxlib.h>"
-@@ -47,9 +47,9 @@ else
-         ngx_feature="Lua library in $LUA_LIB and $LUA_INC (specified by the LUA_LIB and LUA_INC env)"
-         ngx_feature_path="$LUA_INC"
-         if [ $NGX_RPATH = YES ]; then
--            ngx_feature_libs="-R$LUA_LIB -L$LUA_LIB -llua -lm"
-+            ngx_feature_libs="-R$LUA_LIB -L$LUA_LIB -llua -lm -ldl"
-         else
--            ngx_feature_libs="-L$LUA_LIB -llua -lm"
-+            ngx_feature_libs="-L$LUA_LIB -llua -lm -ldl"
-         fi
-         . auto/feature
diff --git a/net/nginx/patches-nginx-upstream-check/check_1.2.6+.patch b/net/nginx/patches-nginx-upstream-check/check_1.2.6+.patch
deleted file mode 100644 (file)
index 3ab9134..0000000
+++ /dev/null
@@ -1,209 +0,0 @@
-diff --git a/src/http/modules/ngx_http_upstream_ip_hash_module.c b/src/http/modules/ngx_http_upstream_ip_hash_module.c
-index 89ccc2b..a552044 100644
---- a/src/http/modules/ngx_http_upstream_ip_hash_module.c
-+++ b/src/http/modules/ngx_http_upstream_ip_hash_module.c
-@@ -9,6 +9,10 @@
- #include <ngx_core.h>
- #include <ngx_http.h>
-+#if (NGX_UPSTREAM_CHECK_MODULE)
-+#include "ngx_http_upstream_check_handler.h"
-+#endif
-+
- typedef struct {
-     /* the round robin data must be first */
-@@ -208,6 +212,12 @@ ngx_http_upstream_get_ip_hash_peer(ngx_peer_connection_t *pc, void *data)
-             if (!peer->down) {
-+#if (NGX_UPSTREAM_CHECK_MODULE)
-+                ngx_log_debug1(NGX_LOG_DEBUG_HTTP, pc->log, 0,
-+                               "get ip_hash peer, check_index: %ui",
-+                               peer->check_index);
-+                if (!ngx_http_check_peer_down(peer->check_index)) {
-+#endif
-                 if (peer->max_fails == 0 || peer->fails < peer->max_fails) {
-                     break;
-                 }
-@@ -216,6 +226,9 @@ ngx_http_upstream_get_ip_hash_peer(ngx_peer_connection_t *pc, void *data)
-                     peer->checked = now;
-                     break;
-                 }
-+#if (NGX_UPSTREAM_CHECK_MODULE)
-+                }
-+#endif
-             }
-             iphp->rrp.tried[n] |= m;
-diff --git a/src/http/modules/ngx_http_upstream_least_conn_module.c b/src/http/modules/ngx_http_upstream_least_conn_module.c
-index 21156ae..c57393d 100644
---- a/src/http/modules/ngx_http_upstream_least_conn_module.c
-+++ b/src/http/modules/ngx_http_upstream_least_conn_module.c
-@@ -9,6 +9,10 @@
- #include <ngx_core.h>
- #include <ngx_http.h>
-+#if (NGX_UPSTREAM_CHECK_MODULE)
-+#include "ngx_http_upstream_check_handler.h"
-+#endif
-+
- typedef struct {
-     ngx_uint_t                        *conns;
-@@ -203,6 +207,16 @@ ngx_http_upstream_get_least_conn_peer(ngx_peer_connection_t *pc, void *data)
-             continue;
-         }
-+#if (NGX_UPSTREAM_CHECK_MODULE)
-+        ngx_log_debug1(NGX_LOG_DEBUG_HTTP, pc->log, 0,
-+                "get least_conn peer, check_index: %ui",
-+                peer->check_index);
-+
-+        if (ngx_http_check_peer_down(peer->check_index)) {
-+            continue;
-+        }
-+#endif
-+
-         if (peer->max_fails
-             && peer->fails >= peer->max_fails
-             && now - peer->checked <= peer->fail_timeout)
-@@ -256,6 +270,16 @@ ngx_http_upstream_get_least_conn_peer(ngx_peer_connection_t *pc, void *data)
-                 continue;
-             }
-+#if (NGX_UPSTREAM_CHECK_MODULE)
-+            ngx_log_debug1(NGX_LOG_DEBUG_HTTP, pc->log, 0,
-+                    "get least_conn peer, check_index: %ui",
-+                    peer->check_index);
-+
-+            if (ngx_http_check_peer_down(peer->check_index)) {
-+                continue;
-+            }
-+#endif
-+
-             if (lcp->conns[i] * best->weight != lcp->conns[p] * peer->weight) {
-                 continue;
-             }
-diff --git a/src/http/ngx_http_upstream_round_robin.c b/src/http/ngx_http_upstream_round_robin.c
-index 4b78cff..f077b46 100644
---- a/src/http/ngx_http_upstream_round_robin.c
-+++ b/src/http/ngx_http_upstream_round_robin.c
-@@ -9,6 +9,9 @@
- #include <ngx_core.h>
- #include <ngx_http.h>
-+#if (NGX_UPSTREAM_CHECK_MODULE)
-+#include "ngx_http_upstream_check_handler.h"
-+#endif
- static ngx_int_t ngx_http_upstream_cmp_servers(const void *one,
-     const void *two);
-@@ -87,7 +90,17 @@ ngx_http_upstream_init_round_robin(ngx_conf_t *cf,
-                 peers->peer[n].weight = server[i].weight;
-                 peers->peer[n].effective_weight = server[i].weight;
-                 peers->peer[n].current_weight = 0;
--                n++;
-+
-+#if (NGX_UPSTREAM_CHECK_MODULE)
-+                if (!server[i].down) {
-+                    peers->peer[n].check_index =
-+                        ngx_http_check_add_peer(cf, us, &server[i].addrs[j]);
-+                }
-+                else {
-+                    peers->peer[n].check_index = (ngx_uint_t) NGX_ERROR;
-+                }
-+#endif
-+               n++;
-             }
-         }
-@@ -145,6 +158,17 @@ ngx_http_upstream_init_round_robin(ngx_conf_t *cf,
-                 backup->peer[n].max_fails = server[i].max_fails;
-                 backup->peer[n].fail_timeout = server[i].fail_timeout;
-                 backup->peer[n].down = server[i].down;
-+
-+#if (NGX_UPSTREAM_CHECK_MODULE)
-+                if (!server[i].down) {
-+                    backup->peer[n].check_index =
-+                        ngx_http_check_add_peer(cf, us, &server[i].addrs[j]);
-+                }
-+                else {
-+                    backup->peer[n].check_index = (ngx_uint_t) NGX_ERROR;
-+                }
-+#endif
-+
-                 n++;
-             }
-         }
-@@ -206,6 +230,9 @@ ngx_http_upstream_init_round_robin(ngx_conf_t *cf,
-         peers->peer[i].current_weight = 0;
-         peers->peer[i].max_fails = 1;
-         peers->peer[i].fail_timeout = 10;
-+#if (NGX_UPSTREAM_CHECK_MODULE)
-+        peers->peer[i].check_index = (ngx_uint_t) NGX_ERROR;
-+#endif
-     }
-     us->peer.data = peers;
-@@ -323,6 +350,9 @@ ngx_http_upstream_create_round_robin_peer(ngx_http_request_t *r,
-         peers->peer[0].current_weight = 0;
-         peers->peer[0].max_fails = 1;
-         peers->peer[0].fail_timeout = 10;
-+#if (NGX_UPSTREAM_CHECK_MODULE)
-+        peers->peer[0].check_index = (ngx_uint_t) NGX_ERROR;
-+#endif
-     } else {
-@@ -356,6 +386,9 @@ ngx_http_upstream_create_round_robin_peer(ngx_http_request_t *r,
-             peers->peer[i].current_weight = 0;
-             peers->peer[i].max_fails = 1;
-             peers->peer[i].fail_timeout = 10;
-+#if (NGX_UPSTREAM_CHECK_MODULE)
-+            peers->peer[i].check_index = (ngx_uint_t) NGX_ERROR;
-+#endif
-         }
-     }
-@@ -434,6 +467,12 @@ ngx_http_upstream_get_round_robin_peer(ngx_peer_connection_t *pc, void *data)
-             goto failed;
-         }
-+#if (NGX_UPSTREAM_CHECK_MODULE)
-+        if (ngx_http_check_peer_down(peer->check_index)) {
-+            goto failed;
-+        }
-+#endif
-+
-     } else {
-         /* there are several peers */
-@@ -531,6 +570,12 @@ ngx_http_upstream_get_peer(ngx_http_upstream_rr_peer_data_t *rrp)
-             continue;
-         }
-+#if (NGX_UPSTREAM_CHECK_MODULE)
-+        if (ngx_http_check_peer_down(peer->check_index)) {
-+            continue;
-+        }
-+#endif
-+
-         if (peer->max_fails
-             && peer->fails >= peer->max_fails
-             && now - peer->checked <= peer->fail_timeout)
-diff --git a/src/http/ngx_http_upstream_round_robin.h b/src/http/ngx_http_upstream_round_robin.h
-index 3f8cbf8..1613168 100644
---- a/src/http/ngx_http_upstream_round_robin.h
-+++ b/src/http/ngx_http_upstream_round_robin.h
-@@ -30,6 +30,10 @@ typedef struct {
-     ngx_uint_t                      max_fails;
-     time_t                          fail_timeout;
-+#if (NGX_UPSTREAM_CHECK_MODULE)
-+    ngx_uint_t                      check_index;
-+#endif
-+
-     ngx_uint_t                      down;          /* unsigned  down:1; */
- #if (NGX_HTTP_SSL)
diff --git a/net/nginx/patches/100-musl-no-sysctl.patch b/net/nginx/patches/100-musl-no-sysctl.patch
deleted file mode 100644 (file)
index 4e35bf6..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-Index: nginx-1.4.7/src/os/unix/ngx_linux_config.h
-===================================================================
---- nginx-1.4.7.orig/src/os/unix/ngx_linux_config.h
-+++ nginx-1.4.7/src/os/unix/ngx_linux_config.h
-@@ -51,7 +51,6 @@
- #include <malloc.h>             /* memalign() */
- #include <limits.h>             /* IOV_MAX */
- #include <sys/ioctl.h>
--#include <sys/sysctl.h>
- #include <crypt.h>
- #include <sys/utsname.h>        /* uname() */
-
---- nginx-1.2.7/src/os/unix/ngx_user.c
-+++ nginx-1.2.7-patched/src/os/unix/ngx_user.c
-@@ -31,8 +31,6 @@
-     struct crypt_data   cd;
-     cd.initialized = 0;
--    /* work around the glibc bug */
--    cd.current_salt[0] = ~salt[0];
-     value = crypt_r((char *) key, (char *) salt, &cd);
-
-diff --git a/auto/lib/openssl/conf b/auto/lib/openssl/conf
-index 528ee17..73ef359 100644
---- a/auto/lib/openssl/conf
-+++ b/auto/lib/openssl/conf
-@@ -47,7 +47,7 @@ else
-         ngx_feature_run=no
-         ngx_feature_incs="#include <openssl/ssl.h>"
-         ngx_feature_path=
--        ngx_feature_libs="-lssl -lcrypto"
-+        ngx_feature_libs="-lssl -lcrypto -lz"
-         ngx_feature_test="SSL_library_init()"
-         . auto/feature
index 8e15fe96e81453e4c4d91cc730b11ea0a4f8e5d7..a345c0e3c90287535db4e1e622860721255b93c3 100644 (file)
@@ -11,7 +11,7 @@
      ngx_feature_libs=
 --- a/auto/cc/conf
 +++ b/auto/cc/conf
-@@ -155,7 +155,7 @@ if [ "$NGX_PLATFORM" != win32 ]; then
+@@ -178,7 +178,7 @@ if [ "$NGX_PLATFORM" != win32 ]; then
      else
          ngx_feature="C99 variadic macros"
          ngx_feature_name="NGX_HAVE_C99_VARIADIC_MACROS"
@@ -20,7 +20,7 @@
          ngx_feature_incs="#include <stdio.h>
  #define var(dummy, ...)  sprintf(__VA_ARGS__)"
          ngx_feature_path=
-@@ -169,7 +169,7 @@ if [ "$NGX_PLATFORM" != win32 ]; then
+@@ -192,7 +192,7 @@ if [ "$NGX_PLATFORM" != win32 ]; then
  
      ngx_feature="gcc variadic macros"
      ngx_feature_name="NGX_HAVE_GCC_VARIADIC_MACROS"
@@ -31,7 +31,7 @@
      ngx_feature_path=
 --- a/auto/os/linux
 +++ b/auto/os/linux
-@@ -48,7 +48,7 @@ fi
+@@ -36,7 +36,7 @@ fi
  
  ngx_feature="epoll"
  ngx_feature_name="NGX_HAVE_EPOLL"
@@ -40,7 +40,7 @@
  ngx_feature_incs="#include <sys/epoll.h>"
  ngx_feature_path=
  ngx_feature_libs=
-@@ -73,7 +73,7 @@ fi
+@@ -93,7 +93,7 @@ ngx_feature_test="int fd; struct stat sb
  CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE"
  ngx_feature="sendfile()"
  ngx_feature_name="NGX_HAVE_SENDFILE"
@@ -49,7 +49,7 @@
  ngx_feature_incs="#include <sys/sendfile.h>
                    #include <errno.h>"
  ngx_feature_path=
-@@ -94,7 +94,7 @@ fi
+@@ -114,7 +114,7 @@ fi
  CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64"
  ngx_feature="sendfile64()"
  ngx_feature_name="NGX_HAVE_SENDFILE64"
@@ -58,7 +58,7 @@
  ngx_feature_incs="#include <sys/sendfile.h>
                    #include <errno.h>"
  ngx_feature_path=
-@@ -112,7 +112,7 @@ ngx_include="sys/prctl.h"; . auto/includ
+@@ -132,7 +132,7 @@ ngx_include="sys/prctl.h"; . auto/includ
  
  ngx_feature="prctl(PR_SET_DUMPABLE)"
  ngx_feature_name="NGX_HAVE_PR_SET_DUMPABLE"
@@ -69,7 +69,7 @@
  ngx_feature_libs=
 --- a/auto/unix
 +++ b/auto/unix
-@@ -618,7 +618,7 @@ ngx_feature_test="void *p; p = memalign(
+@@ -678,7 +678,7 @@ ngx_feature_test="void *p; p = memalign(
  
  ngx_feature="mmap(MAP_ANON|MAP_SHARED)"
  ngx_feature_name="NGX_HAVE_MAP_ANON"
@@ -78,7 +78,7 @@
  ngx_feature_incs="#include <sys/mman.h>"
  ngx_feature_path=
  ngx_feature_libs=
-@@ -631,7 +631,7 @@ ngx_feature_test="void *p;
+@@ -691,7 +691,7 @@ ngx_feature_test="void *p;
  
  ngx_feature='mmap("/dev/zero", MAP_SHARED)'
  ngx_feature_name="NGX_HAVE_MAP_DEVZERO"
@@ -87,7 +87,7 @@
  ngx_feature_incs="#include <sys/mman.h>
                    #include <sys/stat.h>
                    #include <fcntl.h>"
-@@ -646,7 +646,7 @@ ngx_feature_test='void *p; int  fd;
+@@ -706,7 +706,7 @@ ngx_feature_test='void *p; int  fd;
  
  ngx_feature="System V shared memory"
  ngx_feature_name="NGX_HAVE_SYSVSHM"
@@ -96,7 +96,7 @@
  ngx_feature_incs="#include <sys/ipc.h>
                    #include <sys/shm.h>"
  ngx_feature_path=
-@@ -660,7 +660,7 @@ ngx_feature_test="int  id;
+@@ -720,7 +720,7 @@ ngx_feature_test="int  id;
  
  ngx_feature="POSIX semaphores"
  ngx_feature_name="NGX_HAVE_POSIX_SEM"
diff --git a/net/nginx/patches/300-crosscompile_ccflags.patch b/net/nginx/patches/300-crosscompile_ccflags.patch
deleted file mode 100644 (file)
index 4a06a76..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
---- a/auto/endianness
-+++ b/auto/endianness
-@@ -21,7 +21,7 @@ int main() {
- END
--ngx_test="$CC $CC_TEST_FLAGS $CC_AUX_FLAGS \
-+ngx_test="$CC $NGX_CC_OPT $CC_TEST_FLAGS $CC_AUX_FLAGS \
-           -o $NGX_AUTOTEST $NGX_AUTOTEST.c $NGX_LD_OPT $ngx_feature_libs"
- eval "$ngx_test >> $NGX_AUTOCONF_ERR 2>&1"
---- a/auto/feature
-+++ b/auto/feature
-@@ -39,7 +39,7 @@ int main() {
- END
--ngx_test="$CC $CC_TEST_FLAGS $CC_AUX_FLAGS $ngx_feature_inc_path \
-+ngx_test="$CC $NGX_CC_OPT $CC_TEST_FLAGS $CC_AUX_FLAGS $ngx_feature_inc_path \
-           -o $NGX_AUTOTEST $NGX_AUTOTEST.c $NGX_TEST_LD_OPT $ngx_feature_libs"
- ngx_feature_inc_path=
---- a/auto/include
-+++ b/auto/include
-@@ -27,7 +27,7 @@ int main() {
- END
--ngx_test="$CC -o $NGX_AUTOTEST $NGX_AUTOTEST.c"
-+ngx_test="$CC $NGX_CC_OPT -o $NGX_AUTOTEST $NGX_AUTOTEST.c"
- eval "$ngx_test >> $NGX_AUTOCONF_ERR 2>&1"
diff --git a/net/nginx/patches/400-nginx-1.4.x_proxy_protocol_patch_v2.patch b/net/nginx/patches/400-nginx-1.4.x_proxy_protocol_patch_v2.patch
deleted file mode 100644 (file)
index ba63834..0000000
+++ /dev/null
@@ -1,1183 +0,0 @@
-Index: nginx-1.4.7/auto/modules
-===================================================================
---- nginx-1.4.7.orig/auto/modules
-+++ nginx-1.4.7/auto/modules
-@@ -297,6 +297,10 @@ if [ $HTTP_SSL = YES ]; then
-     HTTP_SRCS="$HTTP_SRCS $HTTP_SSL_SRCS"
- fi
-+if [ $PROXY_PROTOCOL = YES ]; then
-+    have=NGX_PROXY_PROTOCOL . auto/have
-+fi
-+
- if [ $HTTP_PROXY = YES ]; then
-     have=NGX_HTTP_X_FORWARDED_FOR . auto/have
-     #USE_MD5=YES
-Index: nginx-1.4.7/auto/options
-===================================================================
---- nginx-1.4.7.orig/auto/options
-+++ nginx-1.4.7/auto/options
-@@ -47,6 +47,8 @@ USE_THREADS=NO
- NGX_FILE_AIO=NO
- NGX_IPV6=NO
-+PROXY_PROTOCOL=NO
-+
- HTTP=YES
- NGX_HTTP_LOG_PATH=
-@@ -192,6 +194,8 @@ do
-         --with-file-aio)                 NGX_FILE_AIO=YES           ;;
-         --with-ipv6)                     NGX_IPV6=YES               ;;
-+        --with-proxy-protocol)           PROXY_PROTOCOL=YES         ;;
-+
-         --without-http)                  HTTP=NO                    ;;
-         --without-http-cache)            HTTP_CACHE=NO              ;;
-@@ -350,6 +354,8 @@ cat << END
-   --with-file-aio                    enable file AIO support
-   --with-ipv6                        enable IPv6 support
-+  --with-proxy-protocol              enable proxy protocol support
-+
-   --with-http_ssl_module             enable ngx_http_ssl_module
-   --with-http_spdy_module            enable ngx_http_spdy_module
-   --with-http_realip_module          enable ngx_http_realip_module
-Index: nginx-1.4.7/auto/sources
-===================================================================
---- nginx-1.4.7.orig/auto/sources
-+++ nginx-1.4.7/auto/sources
-@@ -36,7 +36,8 @@ CORE_DEPS="src/core/nginx.h \
-            src/core/ngx_conf_file.h \
-            src/core/ngx_resolver.h \
-            src/core/ngx_open_file_cache.h \
--           src/core/ngx_crypt.h"
-+           src/core/ngx_crypt.h \
-+           src/core/ngx_proxy_protocol.h"
- CORE_SRCS="src/core/nginx.c \
-@@ -67,7 +68,8 @@ CORE_SRCS="src/core/nginx.c \
-            src/core/ngx_conf_file.c \
-            src/core/ngx_resolver.c \
-            src/core/ngx_open_file_cache.c \
--           src/core/ngx_crypt.c"
-+           src/core/ngx_crypt.c \
-+           src/core/ngx_proxy_protocol.c"
- REGEX_MODULE=ngx_regex_module
-Index: nginx-1.4.7/src/core/ngx_connection.h
-===================================================================
---- nginx-1.4.7.orig/src/core/ngx_connection.h
-+++ nginx-1.4.7/src/core/ngx_connection.h
-@@ -63,6 +63,10 @@ struct ngx_listening_s {
-     unsigned            shared:1;    /* shared between threads or processes */
-     unsigned            addr_ntop:1;
-+#if (NGX_PROXY_PROTOCOL)
-+    unsigned            accept_proxy_protocol:2; /* proxy_protocol flag */
-+#endif
-+
- #if (NGX_HAVE_INET6 && defined IPV6_V6ONLY)
-     unsigned            ipv6only:1;
- #endif
-@@ -148,6 +152,10 @@ struct ngx_connection_s {
-     ngx_uint_t          requests;
-+#if (NGX_PROXY_PROTOCOL)
-+    ngx_uint_t          proxy_protocol;
-+#endif
-+
-     unsigned            buffered:8;
-     unsigned            log_error:3;     /* ngx_connection_log_error_e */
-Index: nginx-1.4.7/src/core/ngx_core.h
-===================================================================
---- nginx-1.4.7.orig/src/core/ngx_core.h
-+++ nginx-1.4.7/src/core/ngx_core.h
-@@ -77,6 +77,9 @@ typedef void (*ngx_connection_handler_pt
- #include <ngx_open_file_cache.h>
- #include <ngx_os.h>
- #include <ngx_connection.h>
-+#if (NGX_PROXY_PROTOCOL)
-+#include <ngx_proxy_protocol.h>
-+#endif
- #define LF     (u_char) 10
-Index: nginx-1.4.7/src/core/ngx_proxy_protocol.c
-===================================================================
---- /dev/null
-+++ nginx-1.4.7/src/core/ngx_proxy_protocol.c
-@@ -0,0 +1,430 @@
-+
-+/*
-+ * Copyright (C) Baptiste Assmann
-+ * Copyright (C) Exceliance
-+ */
-+
-+
-+#include <ngx_config.h>
-+#include <ngx_core.h>
-+#include <ngx_event.h>
-+
-+#if (NGX_PROXY_PROTOCOL)
-+
-+int
-+ngx_recv_proxy_protocol(ngx_connection_t *c, u_char *buf, ssize_t n)
-+{
-+    u_char *end, *p, *t;
-+    size_t len;
-+    ssize_t s;
-+    int step = 0;
-+    ngx_proxy_protocol_t pp;
-+
-+    ngx_log_debug0(NGX_LOG_DEBUG_EVENT, c->log, 0, "processing proxy protocol");
-+
-+    /* 16 is the minimal length of the proxy protocol string */
-+    if (n < 18) {
-+        step = 1;
-+        goto fail;
-+    }
-+
-+    s = n;
-+    end = memchr(buf, '\n', n);
-+    if (end == NULL) {
-+        step = 2;
-+        goto fail;
-+    }
-+
-+    p = buf;
-+    if (memcmp(p, "PROXY ", 6) != 0) {
-+        ngx_log_debug0(NGX_LOG_DEBUG_EVENT, c->log, 0,
-+            "incorrect proxy protocol header string");
-+        step = 3;
-+        goto fail;
-+    }
-+    p += 6;
-+    s -= 6;
-+    if (s <= 0) {
-+        step = 4;
-+        goto fail;
-+    }
-+
-+    ngx_memzero(&pp, sizeof(ngx_proxy_protocol_t));
-+
-+    if (memcmp(p, "TCP4 ", 5) == 0) {
-+        struct sockaddr_in *sin_src;
-+        struct sockaddr_in *sin_dst;
-+
-+        pp.pp_proto = NGX_PP_PROTO_TCP4;
-+        pp.pp_src3.ss_family = AF_INET;
-+        pp.pp_dst3.ss_family = AF_INET;
-+        sin_src = (struct sockaddr_in *) &pp.pp_src3;
-+        sin_dst = (struct sockaddr_in *) &pp.pp_dst3;
-+
-+        p += 5;
-+        s -= 5;
-+        if (s <= 0) {
-+            step = 5;
-+            goto fail;
-+        }
-+
-+        /* l3 source address */
-+        if ( (t = (u_char *)memchr(p, ' ', s)) == NULL ) {
-+            step = 6;
-+            goto fail;
-+        }
-+        len = t - p;
-+        if ((sin_src->sin_addr.s_addr = ngx_inet_addr(p, len)) == INADDR_NONE) {
-+            step = 7;
-+            goto fail;
-+        }
-+        pp.pp_src3_text.data = ngx_pcalloc(c->pool, len + 1);
-+        ngx_memcpy(pp.pp_src3_text.data, p, len);
-+        pp.pp_src3_text.len = len;
-+
-+        p += (len + 1);
-+        s -= (len + 1);
-+        if (s <= 0) {
-+            step = 8;
-+            goto fail;
-+        }
-+
-+        /* l3 destination address */
-+        if ( (t = (u_char *)memchr(p, ' ', s)) == NULL ) {
-+            step = 9;
-+            goto fail;
-+        }
-+        len = t - p;
-+        if ((sin_dst->sin_addr.s_addr = ngx_inet_addr(p, len)) == INADDR_NONE) {
-+            step = 10;
-+            goto fail;
-+        }
-+// FIXME pointer shift ???
-+        pp.pp_dst3_text.data = ngx_pcalloc(c->pool, len + 1);
-+        ngx_memcpy(pp.pp_dst3_text.data, p, len);
-+        pp.pp_dst3_text.len = len;
-+
-+        p += (len + 1);
-+        s -= (len + 1);
-+        if (s <= 0) {
-+            step = 11;
-+            goto fail;
-+        }
-+
-+        /* l4 source port */
-+        if ( (t = (u_char *)memchr(p, ' ', s)) == NULL ) {
-+            step = 12;
-+            goto fail;
-+        }
-+        len = t - p;
-+        pp.pp_src4 = ngx_atoi(p, len);
-+        if ((pp.pp_src4 < 1024)
-+                || (pp.pp_src4 > 65535)) {
-+            step = 13;
-+            goto fail;
-+        }
-+        sin_src->sin_port = htons(pp.pp_src4);
-+
-+        p += (len + 1);
-+        s -= (len + 1);
-+        if (s <= 0) {
-+            step = 14;
-+            goto fail;
-+        }
-+
-+        /* l4 destination port */
-+        if ( (t = (u_char *)memchr(p, '\r', s)) == NULL ) {
-+            step = 15;
-+            goto fail;
-+        }
-+        len = t - p;
-+        pp.pp_dst4 = ngx_atoi(p, len);
-+        if (pp.pp_dst4 > 65535) {
-+            step = 16;
-+            goto fail;
-+        }
-+        sin_dst->sin_port = htons(pp.pp_dst4);
-+
-+        if (p[len + 1] != '\n') {
-+            step = 17;
-+            goto fail;
-+        }
-+
-+        p += (len + 2);
-+        s -= (len + 2);
-+
-+
-+        /* if we managed to get there, then we can safely replace the
-+         * information in the connection structure
-+         */
-+
-+        /* updating connection with source information provided by proxy protocol */
-+        if (pp.pp_src3_text.len > c->addr_text.len) {
-+            ngx_pfree(c->pool, c->addr_text.data);
-+            c->addr_text.data = ngx_pcalloc(c->pool, pp.pp_src3_text.len);
-+        } else {
-+            ngx_memzero(c->addr_text.data, c->addr_text.len);
-+        }
-+        ngx_memcpy(c->addr_text.data, pp.pp_src3_text.data, pp.pp_src3_text.len);
-+        c->addr_text.len = pp.pp_src3_text.len;
-+
-+        ngx_pfree(c->pool, c->sockaddr);
-+        c->socklen = NGX_SOCKADDRLEN;
-+        c->sockaddr = ngx_pcalloc(c->pool, c->socklen);
-+        ngx_memcpy(c->sockaddr, sin_src, c->socklen);
-+
-+        if (c->sockaddr->sa_family != AF_INET) {
-+            ngx_pfree(c->pool, c->sockaddr);
-+            c->socklen = NGX_SOCKADDRLEN;
-+            c->sockaddr = ngx_pcalloc(c->pool, c->socklen);
-+        } else {
-+            ngx_memzero(c->sockaddr, sizeof(struct sockaddr_in));
-+            c->socklen = NGX_SOCKADDRLEN;
-+        }
-+        ngx_memcpy(c->sockaddr, sin_src, c->socklen);
-+
-+        /* updating connection with destination information provided by proxy protocol */
-+        ngx_pfree(c->pool, c->local_sockaddr);
-+        c->local_sockaddr = ngx_pcalloc(c->pool, NGX_SOCKADDRLEN);
-+        ngx_memcpy(c->local_sockaddr, sin_dst, NGX_SOCKADDRLEN);
-+
-+    }
-+
-+#if (NGX_HAVE_INET6)
-+
-+     else if (memcmp(p, "TCP6 ", 5) == 0) {
-+
-+        struct sockaddr_in6 *sin6_src;
-+        struct sockaddr_in6 *sin6_dst;
-+
-+        pp.pp_proto = NGX_PP_PROTO_TCP6;
-+        pp.pp_src3.ss_family = AF_INET6;
-+        pp.pp_dst3.ss_family = AF_INET6;
-+        sin6_src = (struct sockaddr_in6 *) &pp.pp_src3;
-+        sin6_dst = (struct sockaddr_in6 *) &pp.pp_dst3;
-+
-+        p += 5;
-+        s -= 5;
-+        if (s <= 0) {
-+            step = 18;
-+            goto fail;
-+        }
-+
-+        /* l3 source address */
-+        if ( (t = (u_char *)memchr(p, ' ', s)) == NULL ) {
-+            step = 19;
-+            goto fail;
-+        }
-+        len = t - p;
-+        if (ngx_inet6_addr(p, len, sin6_src->sin6_addr.s6_addr) != NGX_OK) {
-+            step = 20;
-+            goto fail;
-+        }
-+        pp.pp_src3_text.data = ngx_pcalloc(c->pool, len + 1);
-+        ngx_memcpy(pp.pp_src3_text.data, p, len);
-+        pp.pp_src3_text.len = len;
-+
-+        p += (len + 1);
-+        s -= (len + 1);
-+        if (s <= 0) {
-+            step = 21;
-+            goto fail;
-+        }
-+
-+        /* l3 destination address */
-+        if ( (t = (u_char *)memchr(p, ' ', s)) == NULL ) {
-+            step = 22;
-+            goto fail;
-+        }
-+        len = t - p;
-+        if (ngx_inet6_addr(p, len, sin6_dst->sin6_addr.s6_addr) != NGX_OK) {
-+            step = 23;
-+            goto fail;
-+        }
-+        pp.pp_dst3_text.data = ngx_pcalloc(c->pool, len + 1);
-+        ngx_memcpy(pp.pp_dst3_text.data, p, len);
-+        pp.pp_dst3_text.len = len;
-+
-+        p += (len + 1);
-+        s -= (len + 1);
-+        if (s <= 0) {
-+            step = 24;
-+            goto fail;
-+        }
-+
-+        /* l4 source port */
-+        if ( (t = (u_char *)memchr(p, ' ', s)) == NULL ) {
-+            step = 25;
-+            goto fail;
-+        }
-+        len = t - p;
-+        pp.pp_src4 = ngx_atoi(p, len);
-+        if ((pp.pp_src4 < 1024)
-+                || (pp.pp_src4 > 65535)) {
-+            step = 26;
-+            goto fail;
-+        }
-+        sin6_src->sin6_port = htons(pp.pp_src4);
-+
-+        p += (len + 1);
-+        s -= (len + 1);
-+        if (s <= 0) {
-+            step = 27;
-+            goto fail;
-+        }
-+
-+        /* l4 destination port */
-+        if ( (t = (u_char *)memchr(p, '\r', s)) == NULL ) {
-+            step = 28;
-+            goto fail;
-+        }
-+        len = t - p;
-+        pp.pp_dst4 = ngx_atoi(p, len);
-+        if (pp.pp_dst4 > 65535) {
-+            step = 29;
-+            goto fail;
-+        }
-+        sin6_dst->sin6_port = htons(pp.pp_dst4);
-+
-+        if (p[len + 1] != '\n') {
-+            step = 30;
-+            goto fail;
-+        }
-+
-+        p += (len + 2);
-+        s -= (len + 2);
-+
-+        /* if we managed to get there, then we can safely replace the
-+         * information in the connection structure
-+         */
-+
-+        /* updating connection with source provided by proxy protocol */
-+        if (pp.pp_src3_text.len > c->addr_text.len) {
-+            ngx_pfree(c->pool, c->addr_text.data);
-+            c->addr_text.data = ngx_pcalloc(c->pool, pp.pp_src3_text.len);
-+        } else {
-+            ngx_memzero(c->addr_text.data, c->addr_text.len);
-+        }
-+        ngx_memcpy(c->addr_text.data, pp.pp_src3_text.data, pp.pp_src3_text.len);
-+        c->addr_text.len = pp.pp_src3_text.len;
-+
-+        ngx_pfree(c->pool, c->sockaddr);
-+        c->socklen = NGX_SOCKADDRLEN;
-+        c->sockaddr = ngx_pcalloc(c->pool, c->socklen);
-+        ngx_memcpy(c->sockaddr, sin6_src, c->socklen);
-+
-+        /* updating connection with destination provided by proxy protocol */
-+        if (c->sockaddr->sa_family != AF_INET6) {
-+            ngx_pfree(c->pool, c->local_sockaddr);
-+            c->local_sockaddr = ngx_pcalloc(c->pool, NGX_SOCKADDRLEN);
-+        } else {
-+            ngx_memzero(c->sockaddr, sizeof(struct sockaddr_in6));
-+            c->socklen = NGX_SOCKADDRLEN;
-+        }
-+//        ngx_memcpy(c->local_sockaddr, sin6_dst, NGX_SOCKADDRLEN);
-+//FIXME must be finished here
-+
-+    }
-+
-+#endif
-+
-+    else {
-+        step = 31;
-+        goto fail;
-+    }
-+
-+    ngx_print_proxy_protocol(&pp, c->log);
-+
-+    ngx_log_debug1(NGX_LOG_DEBUG_EVENT, c->log, 0,
-+            "proxy_protocol, asking to remove %z chars",
-+            end + 1 - buf);
-+
-+    return (end + 1 - buf);
-+
-+fail:
-+    ngx_log_debug1(NGX_LOG_DEBUG_EVENT, c->log, 0,
-+            "proxy_protocol error at step: %d", step);
-+
-+    return 0;
-+
-+}
-+
-+
-+void
-+ngx_print_proxy_protocol(ngx_proxy_protocol_t *p, ngx_log_t *log)
-+{
-+    switch (p->pp_proto) {
-+        case NGX_PP_PROTO_TCP4:
-+           ngx_log_debug0(NGX_LOG_DEBUG_EVENT, log, 0,
-+               "proxy_protocol, proto: TCP4");
-+        break;
-+        case NGX_PP_PROTO_TCP6:
-+           ngx_log_debug0(NGX_LOG_DEBUG_EVENT, log, 0,
-+               "proxy_protocol, proto: TCP6");
-+       break;
-+   }
-+
-+    ngx_log_debug1(NGX_LOG_DEBUG_EVENT, log, 0,
-+       "proxy_protocol, string length: %d", ngx_proxy_protocol_string_length(p));
-+    ngx_log_debug2(NGX_LOG_DEBUG_EVENT, log, 0,
-+       "proxy_protocol, src3: %s, %d", p->pp_src3_text.data, p->pp_src3_text.len);
-+    ngx_log_debug2(NGX_LOG_DEBUG_EVENT, log, 0,
-+       "proxy_protocol, dst3: %s, %d", p->pp_dst3_text.data, p->pp_dst3_text.len);
-+    ngx_log_debug1(NGX_LOG_DEBUG_EVENT, log, 0,
-+       "proxy_protocol, src4: %d", p->pp_src4);
-+    ngx_log_debug1(NGX_LOG_DEBUG_EVENT, log, 0,
-+       "proxy_protocol, dst4: %d", p->pp_dst4);
-+}
-+
-+
-+int
-+ngx_proxy_protocol_string_length(ngx_proxy_protocol_t *p)
-+{
-+    int len = 0;
-+
-+    /* 'PROXY ' */
-+    len += (sizeof("PROXY ") - 1);
-+
-+    /* protocol version (TCP4 or TCP6) + space */
-+    len += (sizeof("TCP0 ") - 1);
-+
-+    /* src3 + space */
-+    len += p->pp_src3_text.len;
-+    len += 1;
-+
-+    /* dst3 + space */
-+    len += p->pp_dst3_text.len;
-+    len += 1;
-+
-+    /* src4 */
-+    if (p->pp_src4 < 10000)
-+        /* 4 digits + 1 space */
-+        len += (sizeof("0000 ") - 1);
-+    else
-+        /* 5 digits + 1 space */
-+        len += (sizeof("00000 ") - 1);
-+
-+    /* dst4 */
-+    if (p->pp_dst4 >= 10000)
-+        /* 5 digits */
-+        len += (sizeof("00000 ") - 1);
-+    else if (p->pp_dst4 >= 1000)
-+        /* 4 digits */
-+        len += (sizeof("0000 ") - 1);
-+    else if (p->pp_dst4 >= 100)
-+        /* 3 digits */
-+        len += (sizeof("000 ") - 1);
-+    else if (p->pp_dst4 >= 10)
-+        /* 2 digits */
-+        len += (sizeof("00 ") - 1);
-+    else
-+        /* 1 digit */
-+        len += (sizeof("0 ") - 1);
-+
-+    /* CRLF */
-+    len += (sizeof(CRLF) - 1);
-+
-+    return len - 1;
-+}
-+
-+#endif
-Index: nginx-1.4.7/src/core/ngx_proxy_protocol.h
-===================================================================
---- /dev/null
-+++ nginx-1.4.7/src/core/ngx_proxy_protocol.h
-@@ -0,0 +1,45 @@
-+
-+/*
-+ * Copyright (C) Baptiste Assmann
-+ * Copyright (C) Exceliance
-+ */
-+
-+
-+#ifndef _NGX_PROXY_PROTOCOL_H_INCLUDED_
-+#define _NGX_PROXY_PROTOCOL_H_INCLUDED_
-+
-+
-+#include <ngx_config.h>
-+#include <ngx_core.h>
-+
-+
-+#if (NGX_PROXY_PROTOCOL)
-+
-+typedef struct ngx_proxy_protocol_s ngx_proxy_protocol_t;
-+
-+typedef enum {
-+    NGX_PP_PROTO_TCP4 = 1,
-+    NGX_PP_PROTO_TCP6
-+} ngx_pp_proto;
-+
-+
-+struct ngx_proxy_protocol_s {
-+    unsigned int          pp_proto;   /* proxy protocol related information */
-+    struct sockaddr_storage pp_src3;
-+    ngx_str_t             pp_src3_text;
-+    struct sockaddr_storage pp_dst3;
-+    ngx_str_t             pp_dst3_text;
-+    unsigned int          pp_src4;
-+    unsigned int          pp_dst4;
-+};
-+
-+
-+int  ngx_recv_proxy_protocol(ngx_connection_t *, u_char *, ssize_t);
-+void ngx_print_proxy_protocol(ngx_proxy_protocol_t *, ngx_log_t *);
-+int  ngx_proxy_protocol_string_length(ngx_proxy_protocol_t *);
-+
-+
-+#endif
-+
-+#endif /* _NGX_CONNECTION_H_INCLUDED_ */
-+
-Index: nginx-1.4.7/src/http/modules/ngx_http_proxy_module.c
-===================================================================
---- nginx-1.4.7.orig/src/http/modules/ngx_http_proxy_module.c
-+++ nginx-1.4.7/src/http/modules/ngx_http_proxy_module.c
-@@ -8,7 +8,9 @@
- #include <ngx_config.h>
- #include <ngx_core.h>
- #include <ngx_http.h>
--
-+#if (NGX_PROXY_PROTOCOL)
-+#include <ngx_proxy_protocol.h>
-+#endif
- typedef struct ngx_http_proxy_rewrite_s  ngx_http_proxy_rewrite_t;
-@@ -365,6 +367,17 @@ static ngx_command_t  ngx_http_proxy_com
-       offsetof(ngx_http_proxy_loc_conf_t, upstream.busy_buffers_size_conf),
-       NULL },
-+#if (NGX_PROXY_PROTOCOL)
-+
-+    { ngx_string("send_proxy_protocol"),
-+      NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_CONF_FLAG,
-+      ngx_conf_set_flag_slot,
-+      NGX_HTTP_LOC_CONF_OFFSET,
-+      offsetof(ngx_http_proxy_loc_conf_t, upstream.send_proxy_protocol),
-+      NULL },
-+
-+#endif
-+
- #if (NGX_HTTP_CACHE)
-     { ngx_string("proxy_cache"),
-@@ -2420,6 +2433,11 @@ ngx_http_proxy_create_loc_conf(ngx_conf_
-     conf->upstream.pass_headers = NGX_CONF_UNSET_PTR;
-     conf->upstream.intercept_errors = NGX_CONF_UNSET;
-+
-+#if (NGX_PROXY_PROTOCOL)
-+    conf->upstream.send_proxy_protocol = NGX_CONF_UNSET;
-+#endif
-+
- #if (NGX_HTTP_SSL)
-     conf->upstream.ssl_session_reuse = NGX_CONF_UNSET;
- #endif
-@@ -2695,6 +2713,11 @@ ngx_http_proxy_merge_loc_conf(ngx_conf_t
-     ngx_conf_merge_value(conf->upstream.intercept_errors,
-                               prev->upstream.intercept_errors, 0);
-+#if (NGX_PROXY_PROTOCOL)
-+    ngx_conf_merge_value(conf->upstream.send_proxy_protocol,
-+                              prev->upstream.send_proxy_protocol, 0);
-+#endif
-+
- #if (NGX_HTTP_SSL)
-     ngx_conf_merge_value(conf->upstream.ssl_session_reuse,
-                               prev->upstream.ssl_session_reuse, 1);
-Index: nginx-1.4.7/src/http/ngx_http.c
-===================================================================
---- nginx-1.4.7.orig/src/http/ngx_http.c
-+++ nginx-1.4.7/src/http/ngx_http.c
-@@ -1228,6 +1228,9 @@ ngx_http_add_addresses(ngx_conf_t *cf, n
- #if (NGX_HTTP_SPDY)
-     ngx_uint_t             spdy;
- #endif
-+#if (NGX_PROXY_PROTOCOL)
-+    ngx_uint_t             accept_proxy_protocol;
-+#endif
-     /*
-      * we cannot compare whole sockaddr struct's as kernel
-@@ -1283,6 +1286,10 @@ ngx_http_add_addresses(ngx_conf_t *cf, n
- #if (NGX_HTTP_SPDY)
-         spdy = lsopt->spdy || addr[i].opt.spdy;
- #endif
-+#if (NGX_PROXY_PROTOCOL)
-+        accept_proxy_protocol = lsopt->accept_proxy_protocol
-+                                || addr[i].opt.accept_proxy_protocol;
-+#endif
-         if (lsopt->set) {
-@@ -1316,6 +1323,9 @@ ngx_http_add_addresses(ngx_conf_t *cf, n
- #if (NGX_HTTP_SPDY)
-         addr[i].opt.spdy = spdy;
- #endif
-+#if (NGX_PROXY_PROTOCOL)
-+        addr[i].opt.accept_proxy_protocol = accept_proxy_protocol;
-+#endif
-         return NGX_OK;
-     }
-@@ -1762,6 +1772,11 @@ ngx_http_add_listening(ngx_conf_t *cf, n
-     ls->pool_size = cscf->connection_pool_size;
-     ls->post_accept_timeout = cscf->client_header_timeout;
-+#if (NGX_PROXY_PROTOCOL)
-+// CLEANUP:    ls->accept_proxy_protocol = cscf->accept_proxy_protocol;
-+    ls->accept_proxy_protocol = addr->opt.accept_proxy_protocol;
-+#endif
-+
-     clcf = cscf->ctx->loc_conf[ngx_http_core_module.ctx_index];
-     ls->logp = clcf->error_log;
-@@ -1840,6 +1855,9 @@ ngx_http_add_addrs(ngx_conf_t *cf, ngx_h
- #if (NGX_HTTP_SPDY)
-         addrs[i].conf.spdy = addr[i].opt.spdy;
- #endif
-+#if (NGX_PROXY_PROTOCOL)
-+        addrs[i].conf.accept_proxy_protocol = addr[i].opt.accept_proxy_protocol;
-+#endif
-         if (addr[i].hash.buckets == NULL
-             && (addr[i].wc_head == NULL
-@@ -1904,6 +1922,9 @@ ngx_http_add_addrs6(ngx_conf_t *cf, ngx_
- #if (NGX_HTTP_SPDY)
-         addrs6[i].conf.spdy = addr[i].opt.spdy;
- #endif
-+#if (NGX_PROXY_PROTOCOL)
-+        addrs6[i].conf.accept_proxy_protocol = addr[i].opt.accept_proxy_protocol;
-+#endif
-         if (addr[i].hash.buckets == NULL
-             && (addr[i].wc_head == NULL
-Index: nginx-1.4.7/src/http/ngx_http_core_module.c
-===================================================================
---- nginx-1.4.7.orig/src/http/ngx_http_core_module.c
-+++ nginx-1.4.7/src/http/ngx_http_core_module.c
-@@ -4090,6 +4090,15 @@ ngx_http_core_listen(ngx_conf_t *cf, ngx
-             continue;
-         }
-+#if (NGX_PROXY_PROTOCOL)
-+        if (ngx_strncmp(value[n].data, "accept_proxy_protocol=on", 24) == 0) {
-+            lsopt.accept_proxy_protocol = 1;
-+            lsopt.set = 1;
-+            lsopt.bind = 1;
-+            continue;
-+        }
-+#endif
-+
-         if (ngx_strncmp(value[n].data, "ipv6only=o", 10) == 0) {
- #if (NGX_HAVE_INET6 && defined IPV6_V6ONLY)
-             struct sockaddr  *sa;
-Index: nginx-1.4.7/src/http/ngx_http_core_module.h
-===================================================================
---- nginx-1.4.7.orig/src/http/ngx_http_core_module.h
-+++ nginx-1.4.7/src/http/ngx_http_core_module.h
-@@ -78,6 +78,11 @@ typedef struct {
- #if (NGX_HTTP_SPDY)
-     unsigned                   spdy:1;
- #endif
-+
-+#if (NGX_PROXY_PROTOCOL)
-+    unsigned                   accept_proxy_protocol:2;
-+#endif
-+
- #if (NGX_HAVE_INET6 && defined IPV6_V6ONLY)
-     unsigned                   ipv6only:1;
- #endif
-@@ -234,6 +239,10 @@ struct ngx_http_addr_conf_s {
-     ngx_http_virtual_names_t  *virtual_names;
-+#if (NGX_PROXY_PROTOCOL)
-+    ngx_flag_t                  accept_proxy_protocol;
-+#endif
-+
- #if (NGX_HTTP_SSL)
-     unsigned                   ssl:1;
- #endif
-Index: nginx-1.4.7/src/http/ngx_http_request.c
-===================================================================
---- nginx-1.4.7.orig/src/http/ngx_http_request.c
-+++ nginx-1.4.7/src/http/ngx_http_request.c
-@@ -63,6 +63,9 @@ static void ngx_http_ssl_handshake(ngx_e
- static void ngx_http_ssl_handshake_handler(ngx_connection_t *c);
- #endif
-+#if (NGX_PROXY_PROTOCOL)
-+static void ngx_http_proxy_protocol(ngx_event_t *rev);
-+#endif
- static char *ngx_http_client_errors[] = {
-@@ -343,6 +346,14 @@ ngx_http_init_connection(ngx_connection_
-     }
- #endif
-+#if (NGX_PROXY_PROTOCOL)
-+    {
-+        if (hc->addr_conf->accept_proxy_protocol) {
-+            rev->handler = ngx_http_proxy_protocol;
-+        }
-+    }
-+#endif
-+
-     if (rev->ready) {
-         /* the deferred accept(), rtsig, aio, iocp */
-@@ -364,7 +375,6 @@ ngx_http_init_connection(ngx_connection_
-     }
- }
--
- static void
- ngx_http_wait_request_handler(ngx_event_t *rev)
- {
-@@ -469,6 +479,12 @@ ngx_http_wait_request_handler(ngx_event_
-     }
-     rev->handler = ngx_http_process_request_line;
-+
-+#if (NGX_PROXY_PROTOCOL)
-+    if (hc->addr_conf->accept_proxy_protocol)
-+        rev->handler = ngx_http_proxy_protocol;
-+#endif
-+
-     ngx_http_process_request_line(rev);
- }
-@@ -582,6 +598,67 @@ ngx_http_create_request(ngx_connection_t
-     return r;
- }
-+#if (NGX_PROXY_PROTOCOL)
-+
-+static void
-+ngx_http_proxy_protocol(ngx_event_t *rev)
-+{
-+    ssize_t                n;
-+    size_t                 size = 1024;
-+    u_char                 tmpbuf[size];
-+    ngx_connection_t      *c;
-+    ngx_http_connection_t *hc;
-+
-+    c = rev->data;
-+    hc = c->data;
-+    rev->handler = ngx_http_wait_request_handler;
-+
-+#if (NGX_HTTP_SPDY)
-+    {
-+        if (hc->addr_conf->spdy) {
-+            rev->handler = ngx_http_spdy_init;
-+        }
-+    }
-+#endif
-+
-+#if (NGX_HTTP_SSL)
-+    {
-+        if (hc->addr_conf->ssl) {
-+            rev->handler = ngx_http_ssl_handshake;
-+        }
-+    }
-+#endif
-+
-+    n = recv(c->fd, tmpbuf, size, MSG_PEEK);
-+
-+    if ((n <= 0) && (c->listening)
-+            && (hc->addr_conf->accept_proxy_protocol)
-+          && (!c->proxy_protocol)) {
-+        ngx_log_debug0(NGX_LOG_DEBUG_EVENT, c->log, 0, "ngx_http_proxy_protocol: pp required but not found");
-+        return;
-+    }
-+    if ((n > 0) && (c->listening)
-+            && (hc->addr_conf->accept_proxy_protocol)
-+          && (!c->proxy_protocol)) {
-+        ssize_t m;
-+        if (!(m = ngx_recv_proxy_protocol(c, tmpbuf, n))) {
-+            ngx_log_debug0(NGX_LOG_DEBUG_EVENT, c->log, 0, "ngx_http_proxy_protocol: pp required but not found");
-+            ngx_http_close_connection(c);
-+            return;
-+        }
-+        ngx_log_debug0(NGX_LOG_DEBUG_EVENT, c->log, 0, "ngx_http_proxy_protocol: pp required and found");
-+
-+        c->proxy_protocol = 1;
-+
-+        /* strip the proxy protocol string from the buffer */
-+        recv(c->fd, tmpbuf, m, 0);
-+    }
-+
-+    rev->handler(rev);
-+}
-+
-+#endif
-+
- #if (NGX_HTTP_SSL)
-Index: nginx-1.4.7/src/http/ngx_http_upstream.c
-===================================================================
---- nginx-1.4.7.orig/src/http/ngx_http_upstream.c
-+++ nginx-1.4.7/src/http/ngx_http_upstream.c
-@@ -31,6 +31,10 @@ static ngx_int_t ngx_http_upstream_reini
-     ngx_http_upstream_t *u);
- static void ngx_http_upstream_send_request(ngx_http_request_t *r,
-     ngx_http_upstream_t *u);
-+#if (NGX_PROXY_PROTOCOL)
-+static void ngx_http_upstream_send_proxy_protocol(ngx_http_request_t *r,
-+    ngx_http_upstream_t *u);
-+#endif
- static void ngx_http_upstream_send_request_handler(ngx_http_request_t *r,
-     ngx_http_upstream_t *u);
- static void ngx_http_upstream_process_header(ngx_http_request_t *r,
-@@ -1255,6 +1259,13 @@ ngx_http_upstream_connect(ngx_http_reque
-     u->request_sent = 0;
-+#if (NGX_PROXY_PROTOCOL)
-+    if (u->conf->send_proxy_protocol && !(u->ssl && c->ssl == NULL)) {
-+        ngx_http_upstream_send_proxy_protocol(r, u);
-+      return;
-+    }
-+#endif
-+
-     if (rc == NGX_AGAIN) {
-         ngx_add_timer(c->write, u->conf->connect_timeout);
-         return;
-@@ -1498,6 +1509,228 @@ ngx_http_upstream_send_request(ngx_http_
- }
-+#if (NGX_PROXY_PROTOCOL)
-+
-+static void
-+ngx_http_upstream_send_proxy_protocol(ngx_http_request_t *r, ngx_http_upstream_t *u)
-+{
-+    size_t                   len;
-+    ngx_int_t                rc;
-+    ngx_connection_t        *uc;
-+    ngx_connection_t        *cc;
-+    ngx_chain_t             *pp_string;
-+    ngx_proxy_protocol_t     pp;
-+    ngx_buf_t               *b;
-+    char                     port[6];
-+    u_char                  *addr;
-+    struct sockaddr_storage  sa_src;
-+    struct sockaddr_storage  sa_dst;
-+    socklen_t                addrlen = NGX_SOCKADDRLEN;
-+    struct sockaddr_in      *sin_src;
-+    struct sockaddr_in      *sin_dst;
-+
-+#if (NGX_HAVE_INET6)
-+
-+    struct sockaddr_in6     *sin6_src;
-+    struct sockaddr_in6     *sin6_dst;
-+
-+#endif
-+
-+
-+    uc = u->peer.connection;
-+    cc = r->connection;
-+
-+    if ( !(u->conf->send_proxy_protocol) ) {
-+        return;
-+    }
-+
-+    ngx_log_debug0(NGX_LOG_DEBUG_HTTP, uc->log, 0,
-+                   "http upstream send proxy protocol");
-+
-+    if (!u->request_sent && ngx_http_upstream_test_connect(uc) != NGX_OK) {
-+        ngx_http_upstream_next(r, u, NGX_HTTP_UPSTREAM_FT_ERROR);
-+        return;
-+    }
-+
-+    uc->log->action = "sending proxy protocol to upstream";
-+
-+    len = 0;
-+
-+    if (r->connection->proxy_protocol) {
-+        ngx_log_debug0(NGX_LOG_DEBUG_HTTP, uc->log, 0,
-+                   "PP: got proxy-protocol from client connection");
-+
-+        switch (cc->sockaddr->sa_family) {
-+
-+#if (NGX_HAVE_INET6)
-+
-+            case AF_INET6:
-+
-+                pp.pp_proto = NGX_PP_PROTO_TCP6;
-+                sin6_dst = (struct sockaddr_in6 *) cc->local_sockaddr;
-+                sin6_src = (struct sockaddr_in6 *) cc->sockaddr;
-+
-+                break;
-+
-+#endif
-+
-+            default:
-+                pp.pp_proto = NGX_PP_PROTO_TCP4;
-+                sin_dst = (struct sockaddr_in *) cc->local_sockaddr;
-+                sin_src = (struct sockaddr_in *) cc->sockaddr;
-+
-+        }
-+
-+    } else {
-+
-+        ngx_log_debug0(NGX_LOG_DEBUG_HTTP, uc->log, 0,
-+                   "PP: collecting information from socket fd");
-+
-+        getsockname(cc->fd, (struct sockaddr *) &sa_dst, &addrlen);
-+
-+        switch (sa_dst.ss_family) {
-+
-+#if (NGX_HAVE_INET6)
-+
-+            case AF_INET6:
-+
-+                pp.pp_proto = NGX_PP_PROTO_TCP6;
-+                sin6_dst = (struct sockaddr_in6 *) &sa_dst;
-+
-+                getpeername(cc->fd, (struct sockaddr *) &sa_src, &addrlen);
-+                sin6_src = (struct sockaddr_in6 *) &sa_src;
-+
-+                break;
-+
-+#endif
-+
-+            default:
-+
-+                pp.pp_proto = NGX_PP_PROTO_TCP4;
-+                sin_dst = (struct sockaddr_in *) &sa_dst;
-+                getpeername(cc->fd, (struct sockaddr *) &sa_src, &addrlen);
-+                sin_src = (struct sockaddr_in *) &sa_src;
-+        }
-+
-+
-+    }
-+
-+    switch (pp.pp_proto) {
-+
-+#if (NGX_HAVE_INET6)
-+
-+        case NGX_PP_PROTO_TCP6:
-+
-+            /* dst3 and dst4 */
-+            addr = ngx_pcalloc(r->pool, NGX_INET6_ADDRSTRLEN);
-+            ngx_inet_ntop(AF_INET6, &sin6_dst->sin6_addr, addr, NGX_INET6_ADDRSTRLEN);
-+            pp.pp_dst3_text.data = ngx_pcalloc(r->pool, NGX_INET6_ADDRSTRLEN);
-+            pp.pp_dst3_text.len = ngx_strlen(addr);
-+            ngx_memcpy(pp.pp_dst3_text.data, addr, pp.pp_dst3_text.len);
-+            pp.pp_dst4 = htons(sin6_dst->sin6_port);
-+
-+            ngx_memzero(addr, NGX_INET6_ADDRSTRLEN);
-+
-+            /* src3 and src4 */
-+            ngx_inet_ntop(AF_INET6, &sin6_src->sin6_addr, addr, NGX_INET6_ADDRSTRLEN);
-+            pp.pp_src3_text.data = ngx_pcalloc(r->pool, NGX_INET6_ADDRSTRLEN);
-+            pp.pp_src3_text.len = ngx_strlen(addr);
-+            ngx_memcpy(pp.pp_src3_text.data, addr, pp.pp_src3_text.len);
-+            pp.pp_src4 = htons(sin6_src->sin6_port);
-+
-+        break;
-+
-+#endif
-+
-+        default:
-+
-+            /* dst3 and dst4 */
-+            addr = ngx_pcalloc(r->pool, NGX_INET_ADDRSTRLEN);
-+            ngx_inet_ntop(AF_INET, &sin_dst->sin_addr, addr, NGX_INET_ADDRSTRLEN);
-+            pp.pp_dst3_text.data = ngx_pcalloc(r->pool, NGX_INET_ADDRSTRLEN);
-+            pp.pp_dst3_text.len = ngx_strlen(addr);
-+            ngx_memcpy(pp.pp_dst3_text.data, addr, pp.pp_dst3_text.len);
-+            pp.pp_dst4 = htons(sin_dst->sin_port);
-+
-+            ngx_memzero(addr, NGX_INET_ADDRSTRLEN);
-+
-+            /* src3 and src4 */
-+            ngx_inet_ntop(AF_INET, &sin_src->sin_addr, addr, NGX_INET_ADDRSTRLEN);
-+            pp.pp_src3_text.data = ngx_pcalloc(r->pool, NGX_INET_ADDRSTRLEN);
-+            pp.pp_src3_text.len = ngx_strlen(addr);
-+            ngx_memcpy(pp.pp_src3_text.data, addr, pp.pp_src3_text.len);
-+            pp.pp_src4 = htons(sin_src->sin_port);
-+
-+    }
-+
-+    len += ngx_proxy_protocol_string_length(&pp);
-+
-+    ngx_print_proxy_protocol(&pp, uc->log);
-+
-+    b = ngx_create_temp_buf(uc->pool, len);
-+    if (b == NULL) {
-+        return;
-+    }
-+
-+    pp_string = ngx_alloc_chain_link(uc->pool);
-+    if (pp_string == NULL) {
-+        return;
-+    }
-+
-+    pp_string->buf = b;
-+    pp_string->next = NULL;
-+
-+    b->last = ngx_cpymem(b->last, "PROXY ", sizeof("PROXY ") - 1);
-+
-+    switch (pp.pp_proto) {
-+        case NGX_PP_PROTO_TCP4:
-+            b->last = ngx_cpymem(b->last, "TCP4 ", sizeof("TCP4 ") - 1);
-+        break;
-+        case NGX_PP_PROTO_TCP6:
-+            b->last = ngx_cpymem(b->last, "TCP6 ", sizeof("TCP6 ") - 1);
-+        break;
-+    }
-+
-+    /* src3 */
-+    b->last = ngx_cpymem(b->last, pp.pp_src3_text.data, pp.pp_src3_text.len);
-+    b->last = ngx_cpymem(b->last, " ", 1);
-+
-+    /* dst3 */
-+    b->last = ngx_cpymem(b->last, pp.pp_dst3_text.data, pp.pp_dst3_text.len);
-+    b->last = ngx_cpymem(b->last, " ", 1);
-+
-+    /* src4 */
-+    ngx_memzero(port, 6);
-+    sprintf(port,"%d", pp.pp_src4);
-+    b->last = ngx_cpymem(b->last, port, strlen(port));
-+    b->last = ngx_cpymem(b->last, " ", 1);
-+
-+    /* dst4 */
-+    ngx_memzero(port, 6);
-+    sprintf(port,"%d", pp.pp_dst4);
-+    b->last = ngx_cpymem(b->last, port, strlen(port));
-+
-+    /* CRLF */
-+    b->last = ngx_cpymem(b->last, CRLF, sizeof(CRLF) - 1);
-+
-+    ngx_log_debug3(NGX_LOG_DEBUG_HTTP, uc->log, 0,
-+            "http upstream send proxy protocol: %d -%*s-",
-+            ngx_proxy_protocol_string_length(&pp),
-+            ngx_proxy_protocol_string_length(&pp) - 2,
-+            b->start);
-+
-+    rc = ngx_output_chain(&u->output, pp_string);
-+
-+    if (rc == NGX_ERROR) {
-+        ngx_http_upstream_next(r, u, NGX_HTTP_UPSTREAM_FT_ERROR);
-+        return;
-+    }
-+
-+}
-+
-+#endif
-+
-+
- static void
- ngx_http_upstream_send_request_handler(ngx_http_request_t *r,
-     ngx_http_upstream_t *u)
-Index: nginx-1.4.7/src/http/ngx_http_upstream.h
-===================================================================
---- nginx-1.4.7.orig/src/http/ngx_http_upstream.h
-+++ nginx-1.4.7/src/http/ngx_http_upstream.h
-@@ -188,6 +188,10 @@ typedef struct {
-     unsigned                         intercept_404:1;
-     unsigned                         change_buffering:1;
-+#if (NGX_PROXY_PROTOCOL)
-+    ngx_flag_t                       send_proxy_protocol;
-+#endif
-+
- #if (NGX_HTTP_SSL)
-     ngx_ssl_t                       *ssl;
-     ngx_flag_t                       ssl_session_reuse;
-Index: nginx-1.4.7/auto/cc/gcc
-===================================================================
---- nginx-1.4.7.orig/auto/cc/gcc
-+++ nginx-1.4.7/auto/cc/gcc
-@@ -168,7 +168,7 @@ esac
- # stop on warning
--CFLAGS="$CFLAGS -Werror"
-+CFLAGS="$CFLAGS"
- # debug
- CFLAGS="$CFLAGS -g"
-Index: nginx-1.4.7/auto/cc/icc
-===================================================================
---- nginx-1.4.7.orig/auto/cc/icc
-+++ nginx-1.4.7/auto/cc/icc
-@@ -115,7 +115,7 @@ case "$NGX_ICC_VER" in
- esac
- # stop on warning
--CFLAGS="$CFLAGS -Werror"
-+CFLAGS="$CFLAGS "
- # debug
- CFLAGS="$CFLAGS -g"
diff --git a/net/nginx/patches/401-nginx-1.4.0-syslog.patch b/net/nginx/patches/401-nginx-1.4.0-syslog.patch
deleted file mode 100644 (file)
index 941c79a..0000000
+++ /dev/null
@@ -1,698 +0,0 @@
-Index: nginx-1.4.7/src/core/ngx_cycle.c
-===================================================================
---- nginx-1.4.7.orig/src/core/ngx_cycle.c
-+++ nginx-1.4.7/src/core/ngx_cycle.c
-@@ -85,6 +85,12 @@ ngx_init_cycle(ngx_cycle_t *old_cycle)
-     cycle->pool = pool;
-     cycle->log = log;
-     cycle->new_log.log_level = NGX_LOG_ERR;
-+#if (NGX_ENABLE_SYSLOG)
-+    cycle->new_log.facility = SYSLOG_FACILITY;
-+    cycle->new_log.facility = ERR_SYSLOG_PRIORITY;
-+    cycle->new_log.syslog_on = 0;
-+    cycle->new_log.syslog_set = 0;
-+#endif
-     cycle->old_cycle = old_cycle;
-     cycle->conf_prefix.len = old_cycle->conf_prefix.len;
-Index: nginx-1.4.7/src/core/ngx_log.c
-===================================================================
---- nginx-1.4.7.orig/src/core/ngx_log.c
-+++ nginx-1.4.7/src/core/ngx_log.c
-@@ -10,6 +10,15 @@
- static char *ngx_error_log(ngx_conf_t *cf, ngx_command_t *cmd, void *conf);
-+#if (NGX_ENABLE_SYSLOG)
-+static char *ngx_set_syslog(ngx_conf_t *cf, ngx_command_t *cmd, void *conf);
-+void log_exit(ngx_cycle_t *cycle);
-+
-+typedef struct{
-+    ngx_str_t     name;
-+    ngx_int_t     macro;
-+} ngx_string_to_macro_t;
-+#endif
- static ngx_command_t  ngx_errlog_commands[] = {
-@@ -21,6 +30,15 @@ static ngx_command_t  ngx_errlog_command
-      0,
-      NULL},
-+#if (NGX_ENABLE_SYSLOG)
-+    {ngx_string("syslog"),
-+     NGX_MAIN_CONF|NGX_CONF_TAKE12,
-+     ngx_set_syslog,
-+     0,
-+     0,
-+     NULL},
-+#endif
-+
-     ngx_null_command
- };
-@@ -43,7 +61,11 @@ ngx_module_t  ngx_errlog_module = {
-     NULL,                                  /* init thread */
-     NULL,                                  /* exit thread */
-     NULL,                                  /* exit process */
--    NULL,                                  /* exit master */
-+#if (NGX_ENABLE_SYSLOG)
-+    log_exit,                              /* exit master */
-+#else
-+    NULL,
-+#endif
-     NGX_MODULE_V1_PADDING
- };
-@@ -52,6 +74,48 @@ static ngx_log_t        ngx_log;
- static ngx_open_file_t  ngx_log_file;
- ngx_uint_t              ngx_use_stderr = 1;
-+#if (NGX_ENABLE_SYSLOG)
-+static ngx_string_to_macro_t ngx_syslog_facilities[] = {
-+    {ngx_string("auth"),     LOG_AUTH},
-+#if !(NGX_SOLARIS)
-+    {ngx_string("authpriv"), LOG_AUTHPRIV},
-+#endif
-+    {ngx_string("cron"),     LOG_CRON},
-+    {ngx_string("daemon"),   LOG_DAEMON},
-+#if !(NGX_SOLARIS)
-+    {ngx_string("ftp"),      LOG_FTP},
-+#endif
-+    {ngx_string("kern"),     LOG_KERN},
-+    {ngx_string("local0"),   LOG_LOCAL0},
-+    {ngx_string("local1"),   LOG_LOCAL1},
-+    {ngx_string("local2"),   LOG_LOCAL2},
-+    {ngx_string("local3"),   LOG_LOCAL3},
-+    {ngx_string("local4"),   LOG_LOCAL4},
-+    {ngx_string("local5"),   LOG_LOCAL5},
-+    {ngx_string("local6"),   LOG_LOCAL6},
-+    {ngx_string("local7"),   LOG_LOCAL7},
-+    {ngx_string("lpr"),      LOG_LPR},
-+    {ngx_string("mail"),     LOG_MAIL},
-+    {ngx_string("news"),     LOG_NEWS},
-+    {ngx_string("syslog"),   LOG_SYSLOG},
-+    {ngx_string("user"),     LOG_USER},
-+    {ngx_string("uucp"),     LOG_UUCP},
-+    { ngx_null_string, 0}
-+};
-+
-+static ngx_string_to_macro_t ngx_syslog_priorities[] = {
-+    {ngx_string("emerg"), LOG_EMERG},
-+    {ngx_string("alert"), LOG_ALERT},
-+    {ngx_string("crit"),  LOG_CRIT},
-+    {ngx_string("error"), LOG_ERR},
-+    {ngx_string("err"),   LOG_ERR},
-+    {ngx_string("warn"),  LOG_WARNING},
-+    {ngx_string("notice"),LOG_NOTICE},
-+    {ngx_string("info"),  LOG_INFO},
-+    {ngx_string("debug"), LOG_DEBUG},
-+    { ngx_null_string, 0}
-+};
-+#endif
- static ngx_str_t err_levels[] = {
-     ngx_null_string,
-@@ -89,11 +153,16 @@ ngx_log_error_core(ngx_uint_t level, ngx
-     va_list  args;
- #endif
-     u_char  *p, *last, *msg;
-+#if (NGX_ENABLE_SYSLOG)
-+    u_char *errstr_syslog;
-+#endif
-     u_char   errstr[NGX_MAX_ERROR_STR];
-+#if !(NGX_ENABLE_SYSLOG)
-     if (log->file->fd == NGX_INVALID_FILE) {
-         return;
-     }
-+#endif
-     last = errstr + NGX_MAX_ERROR_STR;
-@@ -102,6 +171,10 @@ ngx_log_error_core(ngx_uint_t level, ngx
-     p = errstr + ngx_cached_err_log_time.len;
-+#if (NGX_ENABLE_SYSLOG)
-+    errstr_syslog = p;
-+#endif
-+
-     p = ngx_slprintf(p, last, " [%V] ", &err_levels[level]);
-     /* pid#tid */
-@@ -140,11 +213,27 @@ ngx_log_error_core(ngx_uint_t level, ngx
-     ngx_linefeed(p);
-+#if (NGX_ENABLE_SYSLOG)
-+    if (log->file != NULL && log->file->name.len != 0) {
-     (void) ngx_write_fd(log->file->fd, errstr, p - errstr);
-+    }
-+
-+    /* Don't send the debug level info to syslog */
-+    if (log->syslog_on && level < NGX_LOG_DEBUG) {
-+        /* write to syslog */
-+        syslog(log->priority, "%.*s", (int)(p - errstr_syslog), errstr_syslog);
-+    }
-+#else
-+    (void) ngx_write_fd(log->file->fd, errstr, p - errstr);
-+#endif
-     if (!ngx_use_stderr
-         || level > NGX_LOG_WARN
-+#if (NGX_ENABLE_SYSLOG)
-+        || (log->file != NULL && log->file->fd == ngx_stderr))
-+#else
-         || log->file->fd == ngx_stderr)
-+#endif
-     {
-         return;
-     }
-@@ -367,6 +456,50 @@ ngx_log_create(ngx_cycle_t *cycle, ngx_s
- }
-+#if (NGX_ENABLE_SYSLOG)
-+ngx_int_t
-+ngx_log_get_priority(ngx_conf_t *cf, ngx_str_t *priority)
-+{
-+    ngx_int_t  p = 0;
-+    ngx_uint_t n, match = 0;
-+
-+    for (n = 0; ngx_syslog_priorities[n].name.len != 0; n++) {
-+        if (ngx_strncmp(priority->data, ngx_syslog_priorities[n].name.data, 
-+                    ngx_syslog_priorities[n].name.len) == 0) {
-+            p = ngx_syslog_priorities[n].macro;
-+            match = 1;
-+        }
-+    }
-+
-+    if (!match) {
-+        ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
-+                "invalid syslog priority \"%V\"", priority);
-+        return -1;
-+    }
-+
-+    return p;
-+}
-+
-+
-+char *
-+ngx_log_set_priority(ngx_conf_t *cf, ngx_str_t *priority, ngx_log_t *log)
-+{
-+    log->priority = ERR_SYSLOG_PRIORITY;
-+
-+    if (priority->len == 0) {
-+        return NGX_CONF_OK;
-+    }
-+
-+    log->priority = ngx_log_get_priority(cf, priority);
-+    if (log->priority == (-1)) {
-+        return NGX_CONF_ERROR;
-+    }
-+
-+    return NGX_CONF_OK;
-+}
-+#endif
-+
-+
- char *
- ngx_log_set_levels(ngx_conf_t *cf, ngx_log_t *log)
- {
-@@ -429,6 +562,13 @@ static char *
- ngx_error_log(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
- {
-     ngx_str_t  *value, name;
-+#if (NGX_ENABLE_SYSLOG)
-+    u_char     *off = NULL;
-+    ngx_str_t  priority;
-+
-+    ngx_str_null(&name);
-+    ngx_str_null(&priority);
-+#endif
-     if (cf->cycle->new_log.file) {
-         return "is duplicate";
-@@ -436,7 +576,44 @@ ngx_error_log(ngx_conf_t *cf, ngx_comman
-     value = cf->args->elts;
-+#if (NGX_ENABLE_SYSLOG)
-+    if (ngx_strncmp(value[1].data, "syslog", sizeof("syslog") - 1) == 0) {
-+        if (!cf->cycle->new_log.syslog_set) {
-+            ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
-+                    "You must set the syslog directive and enable it first.");
-+            return NGX_CONF_ERROR;
-+        }
-+
-+        cf->cycle->new_log.syslog_on = 1;
-+
-+        if (value[1].data[sizeof("syslog") - 1] == ':') {
-+            priority.len = value[1].len - sizeof("syslog");
-+            priority.data = value[1].data + sizeof("syslog");
-+
-+            off = (u_char *)ngx_strchr(priority.data, (int) '|');
-+            if (off != NULL) {
-+                priority.len = off - priority.data;
-+
-+                off++;
-+                name.len = value[1].data + value[1].len - off;
-+                name.data = off;
-+            }
-+        }
-+        else {
-+            if (value[1].len > sizeof("syslog")) {
-+                name.len = value[1].len - sizeof("syslog");
-+                name.data = value[1].data + sizeof("syslog");
-+            }
-+        }
-+
-+        if (ngx_log_set_priority(cf, &priority, &cf->cycle->new_log) == NGX_CONF_ERROR) {
-+            return NGX_CONF_ERROR;
-+        }
-+    }
-+    else if (ngx_strcmp(value[1].data, "stderr") == 0) {
-+#else
-     if (ngx_strcmp(value[1].data, "stderr") == 0) {
-+#endif
-         ngx_str_null(&name);
-     } else {
-@@ -457,3 +634,63 @@ ngx_error_log(ngx_conf_t *cf, ngx_comman
-     return ngx_log_set_levels(cf, &cf->cycle->new_log);
- }
-+
-+
-+#if (NGX_ENABLE_SYSLOG)
-+
-+#define SYSLOG_IDENT_NAME "nginx"
-+
-+static char *
-+ngx_set_syslog(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
-+{
-+    char       *program;
-+    ngx_str_t  *value;
-+    ngx_int_t   facility, match = 0;
-+    ngx_uint_t  n;
-+
-+    value = cf->args->elts;
-+
-+    if (cf->cycle->new_log.syslog_set) {
-+        return "is duplicate";
-+    }
-+
-+    cf->cycle->new_log.syslog_set = 1;
-+
-+    for (n = 0; ngx_syslog_facilities[n].name.len != 0; n++) {
-+        if (ngx_strncmp(value[1].data, ngx_syslog_facilities[n].name.data, 
-+                    ngx_syslog_facilities[n].name.len) == 0) {
-+            facility = ngx_syslog_facilities[n].macro;
-+            match = 1;
-+            break;
-+        }
-+    }
-+
-+    if (match) {
-+        cf->cycle->new_log.facility = facility;
-+        cf->cycle->new_log.priority = ERR_SYSLOG_PRIORITY;
-+    }
-+    else {
-+        ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
-+                "invalid syslog facility \"%V\"", &value[1]);
-+        return NGX_CONF_ERROR;
-+    }
-+
-+    program = SYSLOG_IDENT_NAME; 
-+    if (cf->args->nelts > 2) {
-+        program = (char *) value[2].data;
-+    }
-+
-+    openlog(program, LOG_ODELAY, facility);
-+
-+    return NGX_CONF_OK;
-+}
-+
-+
-+void log_exit(ngx_cycle_t *cycle)
-+{
-+    if (cycle->new_log.syslog_set) {
-+        closelog();
-+    }
-+}
-+#endif
-+
-Index: nginx-1.4.7/src/core/ngx_log.h
-===================================================================
---- nginx-1.4.7.orig/src/core/ngx_log.h
-+++ nginx-1.4.7/src/core/ngx_log.h
-@@ -12,6 +12,13 @@
- #include <ngx_config.h>
- #include <ngx_core.h>
-+#if (NGX_ENABLE_SYSLOG)
-+#include <syslog.h>
-+
-+#define SYSLOG_FACILITY LOG_LOCAL5
-+#define ERR_SYSLOG_PRIORITY LOG_ERR
-+#endif
-+
- #define NGX_LOG_STDERR            0
- #define NGX_LOG_EMERG             1
-@@ -61,6 +68,13 @@ struct ngx_log_s {
-      */
-     char                *action;
-+
-+#if (NGX_ENABLE_SYSLOG)
-+    ngx_int_t           priority;
-+    ngx_int_t           facility;
-+    unsigned            syslog_on:1;      /* unsigned :1 syslog_on */
-+    unsigned            syslog_set:1;      /*unsigned :1 syslog_set */
-+#endif
- };
-@@ -221,6 +235,10 @@ void ngx_cdecl ngx_log_debug_core(ngx_lo
- ngx_log_t *ngx_log_init(u_char *prefix);
- ngx_log_t *ngx_log_create(ngx_cycle_t *cycle, ngx_str_t *name);
-+#if (NGX_ENABLE_SYSLOG)
-+ngx_int_t ngx_log_get_priority(ngx_conf_t *cf, ngx_str_t *priority);
-+char * ngx_log_set_priority(ngx_conf_t *cf, ngx_str_t *priority, ngx_log_t *log);
-+#endif
- char *ngx_log_set_levels(ngx_conf_t *cf, ngx_log_t *log);
- void ngx_cdecl ngx_log_abort(ngx_err_t err, const char *fmt, ...);
- void ngx_cdecl ngx_log_stderr(ngx_err_t err, const char *fmt, ...);
-Index: nginx-1.4.7/src/http/modules/ngx_http_log_module.c
-===================================================================
---- nginx-1.4.7.orig/src/http/modules/ngx_http_log_module.c
-+++ nginx-1.4.7/src/http/modules/ngx_http_log_module.c
-@@ -13,6 +13,11 @@
- #include <zlib.h>
- #endif
-+#if (NGX_ENABLE_SYSLOG)
-+#include <syslog.h>
-+
-+#define HTTP_SYSLOG_PRIORITY LOG_NOTICE
-+#endif
- typedef struct ngx_http_log_op_s  ngx_http_log_op_t;
-@@ -67,6 +72,11 @@ typedef struct {
-     time_t                      disk_full_time;
-     time_t                      error_log_time;
-     ngx_http_log_fmt_t         *format;
-+
-+#if (NGX_ENABLE_SYSLOG)
-+    ngx_int_t                   priority;
-+    unsigned                    syslog_on:1;      /* unsigned :1 syslog_on */
-+#endif
- } ngx_http_log_t;
-@@ -348,6 +358,14 @@ ngx_http_log_write(ngx_http_request_t *r
-     time_t               now;
-     ssize_t              n;
-     ngx_err_t            err;
-+
-+#if (NGX_ENABLE_SYSLOG)
-+    n = 0;
-+    if (log->syslog_on) {
-+        syslog(log->priority, "%.*s", (int)len, buf);
-+    }
-+#endif
-+
- #if (NGX_ZLIB)
-     ngx_http_log_buf_t  *buffer;
- #endif
-@@ -355,6 +373,9 @@ ngx_http_log_write(ngx_http_request_t *r
-     if (log->script == NULL) {
-         name = log->file->name.data;
-+#if (NGX_ENABLE_SYSLOG)
-+        if (name != NULL) {
-+#endif
- #if (NGX_ZLIB)
-         buffer = log->file->data;
-@@ -367,7 +388,11 @@ ngx_http_log_write(ngx_http_request_t *r
- #else
-         n = ngx_write_fd(log->file->fd, buf, len);
- #endif
--
-+#if (NGX_ENABLE_SYSLOG)
-+        } else {
-+            n = len;
-+        }
-+#endif
-     } else {
-         name = NULL;
-         n = ngx_http_log_script_write(r, log->script, &name, buf, len);
-@@ -1068,6 +1093,10 @@ ngx_http_log_merge_loc_conf(ngx_conf_t *
-     log->script = NULL;
-     log->disk_full_time = 0;
-     log->error_log_time = 0;
-+#if (NGX_ENABLE_SYSLOG)
-+    log->priority = HTTP_SYSLOG_PRIORITY;
-+    log->syslog_on = 0;
-+#endif
-     lmcf = ngx_http_conf_get_module_main_conf(cf, ngx_http_log_module);
-     fmt = lmcf->formats.elts;
-@@ -1096,6 +1125,13 @@ ngx_http_log_set_log(ngx_conf_t *cf, ngx
-     ngx_http_log_main_conf_t   *lmcf;
-     ngx_http_script_compile_t   sc;
-+#if (NGX_ENABLE_SYSLOG)
-+    u_char                     *off;
-+    ngx_str_t                   priority;
-+    ngx_uint_t                  syslog_on = 0;
-+    name = priority = (ngx_str_t)ngx_null_string;
-+#endif
-+
-     value = cf->args->elts;
-     if (ngx_strcmp(value[1].data, "off") == 0) {
-@@ -1108,6 +1144,38 @@ ngx_http_log_set_log(ngx_conf_t *cf, ngx
-                            "invalid parameter \"%V\"", &value[2]);
-         return NGX_CONF_ERROR;
-     }
-+#if (NGX_ENABLE_SYSLOG)
-+    else if (ngx_strncmp(value[1].data, "syslog", sizeof("syslog") - 1) == 0) {
-+        if (!cf->cycle->new_log.syslog_set) {
-+            ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
-+                               "You must set the syslog directive and enable it first.");
-+            return NGX_CONF_ERROR;
-+        }
-+
-+        syslog_on = 1;
-+        if (value[1].data[sizeof("syslog") - 1] == ':') {
-+            priority.len = value[1].len - sizeof("syslog");
-+            priority.data = value[1].data + sizeof("syslog");
-+
-+            off = (u_char*) ngx_strchr(priority.data, '|'); 
-+            if (off != NULL) {
-+                priority.len = off - priority.data;
-+                
-+                off++;
-+                name.len = value[1].data + value[1].len - off;
-+                name.data = off;
-+            }
-+        }
-+        else {
-+            if (value[1].len > sizeof("syslog")) {
-+                name.len = value[1].len - sizeof("syslog");
-+                name.data = value[1].data + sizeof("syslog");
-+            }
-+        }
-+    } else {
-+        name = value[1];
-+    }
-+#endif
-     if (llcf->logs == NULL) {
-         llcf->logs = ngx_array_create(cf->pool, 2, sizeof(ngx_http_log_t));
-@@ -1125,6 +1193,52 @@ ngx_http_log_set_log(ngx_conf_t *cf, ngx
-     ngx_memzero(log, sizeof(ngx_http_log_t));
-+#if (NGX_ENABLE_SYSLOG)
-+    log->syslog_on = syslog_on;
-+
-+    if (priority.len == 0) {
-+        log->priority = HTTP_SYSLOG_PRIORITY;
-+    }
-+    else {
-+        log->priority = ngx_log_get_priority(cf, &priority);
-+    }
-+
-+    if (name.len != 0) {
-+        n = ngx_http_script_variables_count(&name);
-+
-+        if (n == 0) {
-+            log->file = ngx_conf_open_file(cf->cycle, &name);
-+            if (log->file == NULL) {
-+                return NGX_CONF_ERROR;
-+            }
-+        } else {
-+            if (ngx_conf_full_name(cf->cycle, &name, 0) != NGX_OK) {
-+                return NGX_CONF_ERROR;
-+            }
-+            log->script = ngx_pcalloc(cf->pool, sizeof(ngx_http_log_script_t));
-+            if (log->script == NULL) {
-+                return NGX_CONF_ERROR;
-+            }
-+            ngx_memzero(&sc, sizeof(ngx_http_script_compile_t));
-+            sc.cf = cf;
-+            sc.source = &name;
-+            sc.lengths = &log->script->lengths;
-+            sc.values = &log->script->values;
-+            sc.variables = n;
-+            sc.complete_lengths = 1;
-+            sc.complete_values = 1;
-+            if (ngx_http_script_compile(&sc) != NGX_OK) {
-+                return NGX_CONF_ERROR;
-+            }
-+        }
-+    }
-+    else {
-+        log->file = ngx_conf_open_file(cf->cycle, &name);
-+        if (log->file == NULL) {
-+            return NGX_CONF_ERROR;
-+        }
-+    }
-+#else
-     n = ngx_http_script_variables_count(&value[1]);
-     if (n == 0) {
-@@ -1157,6 +1271,7 @@ ngx_http_log_set_log(ngx_conf_t *cf, ngx
-             return NGX_CONF_ERROR;
-         }
-     }
-+#endif
-     if (cf->args->nelts >= 3) {
-         name = value[2];
-Index: nginx-1.4.7/src/http/ngx_http_core_module.c
-===================================================================
---- nginx-1.4.7.orig/src/http/ngx_http_core_module.c
-+++ nginx-1.4.7/src/http/ngx_http_core_module.c
-@@ -1462,6 +1462,9 @@ ngx_http_update_location_config(ngx_http
-     if (r == r->main) {
-         ngx_http_set_connection_log(r->connection, clcf->error_log);
-+#if (NGX_ENABLE_SYSLOG)
-+        r->connection->log->priority = clcf->error_log->priority;
-+#endif
-     }
-     if ((ngx_io.flags & NGX_IO_SENDFILE) && clcf->sendfile) {
-@@ -4901,6 +4904,15 @@ ngx_http_core_error_log(ngx_conf_t *cf,
-     ngx_str_t  *value, name;
-+#if (NGX_ENABLE_SYSLOG)
-+    u_char     *off = NULL;
-+    ngx_int_t   syslog_on = 0;
-+    ngx_str_t   priority;
-+
-+    name = priority = (ngx_str_t) ngx_null_string;
-+#endif
-+
-+
-     if (clcf->error_log) {
-         return "is duplicate";
-     }
-@@ -4910,6 +4922,36 @@ ngx_http_core_error_log(ngx_conf_t *cf,
-     if (ngx_strcmp(value[1].data, "stderr") == 0) {
-         ngx_str_null(&name);
-+#if (NGX_ENABLE_SYSLOG)
-+    } else if (ngx_strncmp(value[1].data, "syslog", sizeof("syslog") - 1) == 0) {
-+        if (!cf->cycle->new_log.syslog_set) {
-+            ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
-+                    "You must set the syslog directive and enable it first.");
-+            return NGX_CONF_ERROR;
-+        }
-+
-+        syslog_on = 1;
-+
-+        if (value[1].data[sizeof("syslog") - 1] == ':') {
-+            priority.len = value[1].len - sizeof("syslog");
-+            priority.data = value[1].data + sizeof("syslog");
-+
-+            off = (u_char*) ngx_strchr(priority.data, '|'); 
-+            if (off != NULL) {
-+                priority.len = off - priority.data;
-+
-+                off++;
-+                name.len = value[1].data + value[1].len - off;
-+                name.data = off;
-+            }
-+        }
-+        else {
-+            if (value[1].len > sizeof("syslog")) {
-+                name.len = value[1].len - sizeof("syslog");
-+                name.data = value[1].data + sizeof("syslog");
-+            }
-+        }
-+#endif
-     } else {
-         name = value[1];
-     }
-@@ -4919,6 +4961,17 @@ ngx_http_core_error_log(ngx_conf_t *cf,
-         return NGX_CONF_ERROR;
-     }
-+#if (NGX_ENABLE_SYSLOG)
-+    if (syslog_on) {
-+        clcf->error_log->syslog_on = 1;
-+        if (ngx_log_set_priority(cf, &priority, clcf->error_log) == NGX_CONF_ERROR) {
-+            return NGX_CONF_ERROR;
-+        }
-+    }
-+
-+    clcf->error_log->log_level = 0;
-+#endif
-+
-     if (cf->args->nelts == 2) {
-         clcf->error_log->log_level = NGX_LOG_ERR;
-         return NGX_CONF_OK;
-Index: nginx-1.4.7/src/http/ngx_http_request.c
-===================================================================
---- nginx-1.4.7.orig/src/http/ngx_http_request.c
-+++ nginx-1.4.7/src/http/ngx_http_request.c
-@@ -533,6 +533,9 @@ ngx_http_create_request(ngx_connection_t
-     clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module);
-     ngx_http_set_connection_log(r->connection, clcf->error_log);
-+#if (NGX_ENABLE_SYSLOG)
-+    c->log->priority = clcf->error_log->priority;
-+#endif
-     r->header_in = hc->nbusy ? hc->busy[0] : c->buffer;
-@@ -872,6 +875,9 @@ ngx_http_ssl_servername(ngx_ssl_conn_t *
-     clcf = ngx_http_get_module_loc_conf(hc->conf_ctx, ngx_http_core_module);
-     ngx_http_set_connection_log(c, clcf->error_log);
-+#if (NGX_ENABLE_SYSLOG)
-+    c->log->priority = clcf->error_log->priority;
-+#endif
-     sscf = ngx_http_get_module_srv_conf(hc->conf_ctx, ngx_http_ssl_module);
-@@ -2077,6 +2083,9 @@ ngx_http_set_virtual_server(ngx_http_req
-     clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module);
-     ngx_http_set_connection_log(r->connection, clcf->error_log);
-+#if (NGX_ENABLE_SYSLOG)
-+    r->connection->log->priority = clcf->error_log->priority;
-+#endif
-     return NGX_OK;
- }
index 251b91e2dbe512b13127ae25a259f0fd749da4f1..797549b780e8c20732fa28cb9b99c8718d4dc3f9 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2006-2014 OpenWrt.org
+# Copyright (C) 2006-2015 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=nmap
-PKG_VERSION:=6.47
-PKG_RELEASE:=2
+PKG_VERSION:=7.00
+PKG_RELEASE:=1
 PKG_MAINTAINER=Nuno Goncalves <nunojpg@gmail.com>
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=http://nmap.org/dist/
-PKG_MD5SUM:=edfe81f6763223c0a29bfa15a8526e2a
+PKG_MD5SUM:=6cdf5d03cc3294b99d69dfca83f2f2ee
 PKG_LICENSE:=GPL-2.0
 PKG_LICENSE_FILES:=COPYING
 
index 787e77955b5330572654dd89e0aed697e6f24cc3..feff2b4588eab9e3f54f7ba4f4e7332f2272261c 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=ntp
-PKG_VERSION:=4.2.8p2
-PKG_RELEASE:=3
+PKG_VERSION:=4.2.8p4
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/
-PKG_MD5SUM:=fa37049383316322d060ec9061ac23a9
+PKG_MD5SUM:=6af96862b09324a8ef965ca76b759c8b
 
 PKG_LICENSE:=Unique
 PKG_LICENSE_FILES:=COPYRIGHT html/copyright.html
@@ -67,6 +67,7 @@ endef
 define Package/ntp-utils
 $(call Package/ntpd/Default)
   TITLE+= utilities
+  DEPENDS+= +libcap
 endef
 
 define Package/ntp-utils/description
@@ -78,6 +79,7 @@ endef
 define Package/ntp-keygen
 $(call Package/ntpd/Default)
   TITLE+=keygen
+  DEPENDS+= +libcap +libevent2-core
 endef
 
 define Package/ntp-keygen/description
index b37dbca01d54a6aca4e542623628363ac7ba025d..b48102f34f131568bfada501da6b75d46b0f8b62 100644 (file)
                        some space and build NUT without SSL support.
                default n
        
-       config NUT_DRIVER_SERIAL
-               depends on PACKAGE_nut
-               bool "Build with support for serial drivers"
-               help
-                       If you have a UPS connected via serial, select this.
-               default n
-       
        config NUT_DRIVER_USB
                depends on PACKAGE_nut
                bool "Build with support for USB drivers"
index 32a3e1343b74fca3b7953e4032a8ae9334ad38fb..41ab4cc4448c4338c95ef82fd5012518c4f9e0f8 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=nut
 PKG_VERSION:=2.7.3
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.networkupstools.org/source/2.7/
@@ -28,11 +28,10 @@ PKG_CONFIG_DEPENDS:= \
        CONFIG_NUT_CLIENTS_UPSMON \
        CONFIG_NUT_CLIENTS_UPSRW \
        CONFIG_NUT_CLIENTS_UPSSCHED \
-       CONFIG_NUT_DRIVER_SERIAL \
        CONFIG_NUT_DRIVER_SNMP \
        CONFIG_NUT_DRIVER_USB \
        CONFIG_NUT_SERVER \
-       CONFIG_NUT_SSL \
+       CONFIG_NUT_SSL
 
 include $(INCLUDE_DIR)/package.mk
 
@@ -55,6 +54,7 @@ define Package/nut
        $(call Package/nut/Default)
        TITLE:=Network UPS Tools
        DEPENDS:= \
+               +libpthread \
                +NUT_DRIVER_SNMP:libnetsnmp \
                +NUT_DRIVER_USB:libusb-compat \
                +NUT_SSL:libopenssl
@@ -77,7 +77,6 @@ endef
 define Package/nut/install
        $(INSTALL_DIR) $(1)/etc/nut
        $(INSTALL_DIR) $(1)/usr/bin
-       $(INSTALL_DIR) $(1)/usr/bin
        $(INSTALL_DIR) $(1)/usr/lib
        $(INSTALL_DIR) $(1)/usr/sbin
        $(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/nut/nut.conf.sample $(1)/etc/nut/nut.conf
@@ -101,7 +100,7 @@ define Package/nut/install
        $(if $(CONFIG_NUT_SERVER),$(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/nut/upsd.users.sample $(1)/etc/nut/upsd.users)
        $(if $(CONFIG_NUT_CLIENTS_UPSC),$(CP) $(PKG_INSTALL_DIR)/usr/bin/upsc $(1)/usr/bin/)
        $(if $(CONFIG_NUT_CLIENTS_UPSCMD),$(CP) $(PKG_INSTALL_DIR)/usr/bin/upscmd $(1)/usr/bin/)
-       $(if $(CONFIG_NUT_CLIENTS_LOG),$(CP) $(PKG_INSTALL_DIR)/usr/bin/upslog $(1)/usr/bin/)
+       $(if $(CONFIG_NUT_CLIENTS_UPSLOG),$(CP) $(PKG_INSTALL_DIR)/usr/bin/upslog $(1)/usr/bin/)
        $(if $(CONFIG_NUT_CLIENTS_UPSRW),$(CP) $(PKG_INSTALL_DIR)/usr/bin/upsrw $(1)/usr/bin/)
        $(if $(CONFIG_NUT_CLIENTS_UPSMON),$(CP) ./files/nut-monitor.init $(1)/etc/init.d/)
        $(if $(CONFIG_NUT_CLIENTS_UPSMON),$(CP) $(PKG_INSTALL_DIR)/usr/sbin/upsmon $(1)/usr/sbin/)
@@ -111,13 +110,62 @@ define Package/nut/install
        $(if $(CONFIG_NUT_CLIENTS_UPSSCHED),$(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/nut/upssched.conf.sample $(1)/etc/nut/upssched.conf)
 endef
 
+define Package/nut-web-cgi
+       $(call Package/nut/Default)
+       TITLE+= Web CGI interface
+       DEPENDS+=+libgd
+endef
+
+define Package/nut-web-cgi/description
+The CGI programs are clients that run through your web server.
+They allow you to see UPS status and perform certain administrative
+commands from any web browser. Javascript and cookies are not required.
+endef
+
+define Package/nut-web-cgi/conffiles
+       /etc/nut/hosts.conf
+       /etc/nut/upsset.conf
+       /etc/nut/upsstats.html
+       /etc/nut/upsstats-single.html
+endef
+
+define Package/nut-web-cgi/install
+       $(INSTALL_DIR) $(1)/etc/nut
+       $(INSTALL_DIR) $(1)/usr/share/www/cgi-bin
+       $(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/nut/hosts.conf.sample $(1)/etc/nut/hosts.conf
+       $(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/nut/upsset.conf.sample $(1)/etc/nut/upsset.conf
+       $(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/nut/upsstats.html.sample $(1)/etc/nut/upsstats.html
+       $(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/nut/upsstats-single.html.sample $(1)/etc/nut/upsstats-single.html
+       $(CP) $(PKG_INSTALL_DIR)/usr/share/www/nut $(1)/usr/share/www/
+       $(CP) $(PKG_INSTALL_DIR)/usr/share/www/cgi-bin/nut $(1)/usr/share/www/cgi-bin/
+endef
+
+define Package/nut-avahi-service
+       $(call Package/nut/Default)
+       TITLE+= (Avahi service)
+       DEPENDS+=+avahi-daemon
+endef
+
+define Package/nut-avahi-service/description
+This package contains the service definition for announcing the
+attached UPS via mDNS/DNS-SD.
+endef
+
+define Package/nut-avahi-service/conffiles
+       /etc/avahi/services/nut.service
+endef
+
+define Package/nut-avahi-service/install
+       $(INSTALL_DIR) $(1)/etc/avahi/services
+       $(INSTALL_CONF) ./files/nut.service $(1)/etc/avahi/services/
+endef
+
 # Dealing with all of the drivers is very repetitive, but the previous
 # maintainer had a neat solution which just needed some tweaking.
 define DriverPackage
         define Package/nut-driver-$(2)
                $(call Package/nut/Default)
                TITLE:=$(2) (NUT $(1) driver)
-               $(if $(filter $(1),serial),DEPENDS+= @NUT_DRIVER_SERIAL)
                $(if $(filter $(1),snmp),DEPENDS+= @NUT_DRIVER_SNMP)
                $(if $(filter $(1),usb),DEPENDS+= @NUT_DRIVER_USB)
         endef
@@ -269,24 +317,36 @@ $(eval $(call DriverDescription,usb,nutdrv_qx,\
        Driver for Q* protocol serial and USB based UPS equipment))
 
 CONFIGURE_ARGS += \
-       --$(if $(CONFIG_NUT_DRIVER_SERIAL),with,without)-serial \
+       --sysconfdir=/etc/nut \
+       --datadir=/usr/share/nut \
+       --with-dev \
        --$(if $(CONFIG_NUT_DRIVER_USB),with,without)-usb \
+       --without-avahi \
        --$(if $(CONFIG_NUT_DRIVER_SNMP),with,without)-snmp \
        --without-neon \
        --without-powerman \
        --without-ipmi \
        --without-freeipmi \
        --$(if $(CONFIG_NUT_SSL),with,without)-ssl $(if $(CONFIG_NUT_SSL),--with-openssl) \
-       --without-avahi \
        --without-libltdl \
-       --with-user=root \
-       --with-group=root \
-       --sysconfdir=/etc/nut \
-       --with-drvpath=/lib/nut \
+       --$(if $(CONFIG_PACKAGE_nut-web-cgi),with,without)-cgi \
        --with-statepath=/var/run \
-       --datadir=/usr/share/nut
+       --with-drvpath=/lib/nut \
+       --with-cgipath=/usr/share/www/cgi-bin/nut \
+       --with-htmlpath=/usr/share/www/nut \
+       --with-user=root \
+       --with-group=root
+
+define Build/InstallDev
+       $(INSTALL_DIR) $(1)/usr/include $(1)/usr/lib/pkgconfig
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/lib*.so* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/include/*.h $(1)/usr/include/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/*.pc $(1)/usr/lib/pkgconfig/
+endef
 
 $(eval $(call BuildPackage,nut))
+$(eval $(call BuildPackage,nut-web-cgi))
+$(eval $(call BuildPackage,nut-avahi-service))
 $(foreach d,$(filter-out $(SERIAL_DRIVERLIST_IGNORE),$(SERIAL_DRIVERLIST)),$(eval $(call BuildPackage,nut-driver-$(d))))
 $(foreach d,$(SNMP_DRIVERLIST),$(eval $(call BuildPackage,nut-driver-$(d))))
 $(foreach d,$(USB_LIBUSB_DRIVERLIST),$(eval $(call BuildPackage,nut-driver-$(d))))
diff --git a/net/nut/files/nut.service b/net/nut/files/nut.service
new file mode 100644 (file)
index 0000000..5ad6b31
--- /dev/null
@@ -0,0 +1,34 @@
+<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
+<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
+
+<!--
+  This file is part of NUT - Network UPS Tools
+
+  NUT is free software; you can redistribute it and/or modify it
+  under the terms of the GNU Lesser General Public License as
+  published by the Free Software Foundation; either version 2 of the
+  License, or (at your option) any later version.
+
+  NUT is distributed in the hope that it will be useful, but
+  WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+  General Public License for more details.
+
+  You should have received a copy of the GNU Lesser General Public
+  License along with NUT; if not, write to the Free Software
+  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+  02111-1307 USA.
+-->
+
+<!-- See avahi.service(5) for more information about this configuration file -->
+
+<service-group>
+
+  <name replace-wildcards="yes">%h</name>
+
+  <service>
+    <type>_nut._tcp</type>
+    <port>3493</port>
+  </service>
+
+</service-group>
index 6845aed8d30246a550fcbf9553c2ee55254daffe..5cf3265d311c16a7381414f53a5d105f25ce7b87 100644 (file)
@@ -8,14 +8,14 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=ocserv
-PKG_VERSION:=0.10.6
-PKG_RELEASE:=1
+PKG_VERSION:=0.10.9
+PKG_RELEASE:=2
 PKG_USE_MIPS16:=0
 
 PKG_BUILD_DIR :=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=ftp://ftp.infradead.org/pub/ocserv/
-PKG_MD5SUM:=b99c74b781a180348f3a3240940fc838
+PKG_MD5SUM:=74834c59aa96beaa222c21ee6521adb2
 
 PKG_LICENSE:=GPLv2
 PKG_LICENSE_FILES:=COPYING
@@ -92,7 +92,6 @@ define Package/ocserv/install
        $(INSTALL_DIR) $(1)/usr/bin
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/ocpasswd $(1)/usr/bin/
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/occtl $(1)/usr/bin/
-       $(INSTALL_BIN) ./files/ocserv-script $(1)/usr/bin/
        $(INSTALL_DIR) $(1)/etc/init.d
        $(INSTALL_BIN) ./files/ocserv.init $(1)/etc/init.d/ocserv
        $(INSTALL_DIR) $(1)/etc/ocserv
index 9d000ccc82d45eab01b309e799d123e4fba62c37..ed1ff4287f0ae65bb75c3f5f967559225b1c3f66 100644 (file)
@@ -1,24 +1,92 @@
+Setting up OpenConnect VPN server
+=================================
+
 The openconnect server expects to be configured using the uci interface.
 
 It is recommended to setup a dynamic DNS address with openwrt prior
 to starting the server. That is because during the first startup
 a certificate file which contain the setup dynamic DNS name will be
-created.
+created. You can always regenerate the certificate by deleting
+/etc/ocserv/server-key.pem.
+
+There are two approaches to setup the VPN. The proxy-arp approach (1)
+which provides clients with addresses of the LAN, and the "forwarding"
+approach (2) which provides clients with addresses of a separate private
+network. The former is suitable when you have "roadwarrior" type of clients
+connecting to the LAN, and the latter when you may need to connect
+multiple networks with the LAN.
+
+
+1. Proxy-ARP Approach
+=====================
+
+[This option is available since ocserv-0.10.9-2 package]
+
+To setup a server the provides access to LAN with network address
+10.100.2.0/255.255.255.0 add the following to /etc/config/ocserv.
+The following setup will assign the upper 62 addresses for VPN use.
+
+```
+----/etc/config/ocserv-------------------------------------------
+config ocserv 'config'
+       option port '443'
+       option dpd '120'
+       option max_clients '8'
+       option max_same '2'
+       option netmask '255.255.255.192'
+       option ipaddr '10.100.2.192'
+       option auth 'plain'
+       option default_domain 'lan'
+       option compression '1'
+       option proxy_arp '1'
+       option ping_leases '1'
+       option enable '1'
+
+config dns
+       option ip '10.100.2.1'
+
+config routes
+       option ip '10.100.2.0'
+       option netmask '255.255.255.0'
+
+config ocservusers
+       option name 'test'
+       option password '$5$unl8uKAGNsdTh9zm$PnUHEGhDc5VHbFE2EfWwW38Bub6Y6EZ5hrFwZE1r2F1'
+
+-----------------------------------------------------------------
+```
+
+This setup re-utilizes the addresses assigned to LAN for the VPN clients.
+To ensure that there are no conflicts with the DHCP server use the following
+commands. These will set the maximum address assigned by DHCP to be 10.100.2.191
+which is below the first VPN assigned address (10.100.2.192).
+
+```
+# uci set dhcp.lan.start=100
+# uci set dhcp.lan.limit=91
+```
+
+For simple networks like that you may also leave the 'netmask' and 'ipaddr'
+fields empty and ocserv on startup will set the necessary values.
+
+
+2. Forwarding Approach
+======================
 
 To setup a server the provides access to LAN with network address
 10.100.2.0/255.255.255.0 using the VPN address range
 10.100.3.0/255.255.255.0 add the following to /etc/config/ocserv:
 
+```
 ----/etc/config/ocserv-------------------------------------------
 config ocserv 'config'
-       option port '4443'
+       option port '443'
        option dpd '120'
        option max_clients '8'
        option max_same '2'
        option netmask '255.255.255.0'
        option ipaddr '10.100.3.0'
        option auth 'plain'
-       option zone 'vpn'
        option default_domain 'lan'
        option compression '1'
        option enable '1'
@@ -35,19 +103,21 @@ config ocservusers
        option password '$5$unl8uKAGNsdTh9zm$PnUHEGhDc5VHbFE2EfWwW38Bub6Y6EZ5hrFwZE1r2F1'
 
 -----------------------------------------------------------------
+```
 
-This configuration also adds the user "test" with password "test". The
-password is specified in the crypt(3) format.
 
-The server can be enabled and started using:
-# /etc/init.d/ocserv enable
-# /etc/init.d/ocserv start
+Setting up the firewall
+=======================
 
+Since the connected users will be assigned to other interfaces than the LAN
+one, it is required to assign the VPN clients to an interface, and enable
+forwarding for them. That is, you should setup an unmanaged interface (e.g.,
+called vpn), which will have assigned the 'vpns+' interfaces (i.e., all vpns
+interfaces). Then a zone called vpn should be setup to handle interactions
+with lan. An example, which alls all forwarding between LAN and VPN clients,
+follows.
 
-To simplify firewall configuration, you should setup an unmanaged interface
-(e.g., called vpn), and will have assigned the 'vpns+' interfaces. Then a zone
-called vpn should be setup to handle interactions with lan. An example
-follows:
+```
 ----/etc/config/network------------------------------------------
 config interface 'vpn'
         option proto 'none'
@@ -57,7 +127,7 @@ config interface 'vpn'
 ----/etc/config/firewall-----------------------------------------
 config zone
         option input 'ACCEPT'
-        option forward 'REJECT'
+        option forward 'ACCEPT'
         option output 'ACCEPT'
         option name 'vpn'
         option device 'vpns+'
@@ -75,17 +145,35 @@ config rule
         option target 'ACCEPT'
         option src 'wan'
         option proto 'tcp'
-        option dest_port '4443'
+        option dest_port '443'
         option name 'vpn'
 
 config rule
         option target 'ACCEPT'
         option src 'wan'
         option proto 'udp'
-        option dest_port '4443'
+        option dest_port '443'
         option name 'vpn'
 -----------------------------------------------------------------
+```
+
+Note, that the last two rules, enable connections to port 443 from the
+Internet. That is the port used by OpenConnect VPN.
+
+
+Starting the server
+===================
+
+Note that both configurations above add the user "test" with password "test". The
+password is specified in the crypt(3) format.
+
+The server can be enabled and started using:
+# /etc/init.d/ocserv enable
+# /etc/init.d/ocserv start
 
+For any custom configuration options of ocserv you may add values in
+/etc/ocserv/ocserv.conf.local.
 
 There is a luci plugin to allow configuring the server from
 the web environment; see the package luci-app-ocserv.
+
diff --git a/net/ocserv/files/ocserv-script b/net/ocserv/files/ocserv-script
deleted file mode 100755 (executable)
index 3251986..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-
-ZONE=`uci get ocserv.config.zone`
-
-if [ "$REASON" = "connect" ];then
-       env -i ACTION=ifup INTERFACE="$ZONE" DEVICE=$DEVICE /sbin/hotplug-call "iface"
-else
-       env -i ACTION=ifdown INTERFACE="$ZONE" DEVICE=$DEVICE /sbin/hotplug-call "iface"
-fi
-
-exit 0
index dce96d832598cd49c7b59ee51dc1b64573132718..9a5f195c618fc8171c8bade58f6f7802dea79d90 100644 (file)
@@ -268,7 +268,6 @@ ipv4-netmask = |NETMASK|
 
 # The IPv6 subnet that leases will be given from.
 |ENABLE_IPV6|ipv6-network = |IPV6ADDR|
-|ENABLE_IPV6|ipv6-prefix = |IPV6PREFIX|
 
 # The domains over which the provided DNS should be used. Use
 # multiple lines for multiple domains.
@@ -276,7 +275,7 @@ ipv4-netmask = |NETMASK|
 
 # Prior to leasing any IP from the pool ping it to verify that
 # it is not in use by another (unrelated to this server) host.
-ping-leases = false
+ping-leases = |PING_LEASES|
 
 # Unset to assign the default MTU of the device
 # mtu = 
index c4597a40f25c5bf22a1d92a2d4863c78fca8ae58..61eb67cd32efcd30b619ba0c288f5fb93ce50c90 100644 (file)
@@ -13,11 +13,47 @@ setup_config() {
        config_get udp          $1 udp "1"
        config_get auth         $1 auth "plain"
        config_get cisco_compat $1 cisco_compat "1"
-       config_get ipaddr       $1 ipaddr "192.168.100.0"
-       config_get netmask      $1 netmask "255.255.255.0"
+       config_get ipaddr       $1 ipaddr ""
+       config_get netmask      $1 netmask ""
        config_get ip6addr      $1 ip6addr ""
+       config_get proxy_arp    $1 proxy_arp "0"
+       config_get ping_leases  $1 ping_leases "0"
        config_get default_domain  $1 default_domain ""
 
+       # Enable proxy arp, and make sure that ping leases is set to true in that case,
+       # to prevent conflicts.
+       if test "$proxy_arp" = 1;then
+               local ip
+               # IP address is empty. Auto-configure LAN + VPN.
+               if test -z "$ipaddr";then
+                       local mask
+                       mask=$(uci get network.lan.netmask)
+                       if test "$mask" = "255.255.255.0";then
+                               uci set dhcp.lan.start=100
+                               uci set dhcp.lan.limit=91
+                       fi
+                       ip=$(uci get network.lan.ipaddr)
+                       ipaddr="$(echo $ip|cut -d . -f1,2,3).192"
+                       netmask="255.255.255.192"
+                       uci set ocserv.config.ipaddr="$ipaddr"
+                       uci set ocserv.config.netmask="$netmask"
+                       uci commit
+               fi
+
+               if test -z "$ip6addr";then
+                       ip6addr=$(uci get network.lan.ip6addr 2>/dev/null)
+                       test -n "$ip6addr" && uci set ocserv.config.ip6addr="$ip6addr"
+                       uci commit
+               fi
+
+               ping_leases=1
+               test -n "$ipaddr" && sysctl -w "net.ipv4.conf.$(uci get network.lan.ifname).proxy_arp"=1 >/dev/null
+               test -n "$ip6addr" && sysctl -w "net.ipv6.conf.$(uci get network.lan.ifname).proxy_ndp"=1 >/dev/null
+       else
+               test "$ipaddr" = "" && ipaddr="192.168.100.0"
+               test "$netmask" = "" && ipaddr="255.255.255.0"
+       fi
+
        enable_default_domain="#"
        enable_udp="#"
        enable_compression="#"
@@ -25,14 +61,13 @@ setup_config() {
        test $predictable_ips = "1" && predictable_ips="true"
        test $cisco_compat = "0" && cisco_compat="false"
        test $cisco_compat = "1" && cisco_compat="true"
+       test $ping_leases = "0" && ping_leases="false"
+       test $ping_leases = "1" && ping_leases="true"
        test $udp = "1" && enable_udp=""
        test $compression = "1" && enable_compression=""
        test -z $default_domain && enable_default_domain=""
        test -z $ip6addr && enable_ipv6="#"
 
-       ipv6_addr=`echo $ip6addr|cut -d '/' -f 1`
-       ipv6_prefix=`echo $ip6addr|cut -d '/' -f 2`
-
        test $auth = "plain" && authsuffix="\[passwd=/var/etc/ocpasswd\]"
 
        dyndns="false"
@@ -50,14 +85,16 @@ setup_config() {
            -e "s/|DEFAULT_DOMAIN|/$default_domain/g" \
            -e "s/|ENABLE_DEFAULT_DOMAIN|/$enable_default_domain/g" \
            -e "s/|CISCO_COMPAT|/$cisco_compat/g" \
+           -e "s/|PING_LEASES|/$ping_leases/g" \
            -e "s/|UDP|/$enable_udp/g" \
            -e "s/|COMPRESSION|/$enable_compression/g" \
            -e "s/|IPV4ADDR|/$ipaddr/g" \
            -e "s/|NETMASK|/$netmask/g" \
-           -e "s/|IPV6ADDR|/$ipv6_addr/g" \
-           -e "s/|IPV6PREFIX|/$ipv6_prefix/g" \
+           -e "s#|IPV6ADDR|#$ip6addr#g" \
            -e "s/|ENABLE_IPV6|/$enable_ipv6/g" \
            /etc/ocserv/ocserv.conf.template > /var/etc/ocserv.conf
+
+       test -f /etc/ocserv/ocserv.conf.local && cat /etc/ocserv/ocserv.conf.local >> /var/etc/ocserv.conf
 }
 
 setup_users() {
@@ -166,3 +203,4 @@ start_service() {
        procd_set_param respawn
        procd_close_instance
 }
+
index 4c6c350c6790e2a03c63c9088d46e5f889af6ff9..fdffcb2ddc0b5ce798793fcf701dc00ea519417f 100644 (file)
@@ -2,6 +2,7 @@
 /etc/ocserv/ca.pem
 /etc/ocserv/server-key.pem
 /etc/ocserv/server-cert.pem
+/etc/ocserv/ocserv.conf.local
 /etc/ocserv/config-per-user/*
 /etc/ocserv/config-per-group/*
 /etc/ocserv/crl.pem
index 86e6c52afb096f0061993779c7af8807072f57f8..f6d7e01923f04002a4c26a335f24b49d9450b353 100644 (file)
@@ -11,7 +11,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=openvswitch
 
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 PKG_VERSION:=2.4.0
 PKG_RELEASE=$(PKG_SOURCE_VERSION)
 PKG_LICENSE:=Apache-2.0
@@ -21,7 +21,7 @@ PKG_USE_MIPS16:=0
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/openvswitch/ovs
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=1b05a9d3298f92525d1c2d91bec11abf0766fdf1
+PKG_SOURCE_VERSION:=b979c282ef040a20d09b8d6885648b09352f05db
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
 
 PKG_BUILD_PARALLEL:=1
@@ -98,7 +98,7 @@ define KernelPackage/openvswitch
   SUBMENU:=Network Support
   TITLE:=Open vSwitch Kernel Package
   KCONFIG:=CONFIG_BRIDGE
-  DEPENDS:=+kmod-stp +kmod-ipv6 +kmod-gre +kmod-lib-crc32c +kmod-vxlan @($(SUPPORTED_KERNELS))
+  DEPENDS:=+kmod-stp @IPV6 +kmod-gre +kmod-lib-crc32c +kmod-vxlan @($(SUPPORTED_KERNELS))
   FILES:= \
        $(PKG_BUILD_DIR)/datapath/linux/openvswitch.$(LINUX_KMOD_SUFFIX)
   AUTOLOAD:=$(call AutoLoad,21,openvswitch)
@@ -116,6 +116,9 @@ CONFIGURE_ARGS += --enable-shared
 
 TARGET_CFLAGS += -flto -std=gnu99
 
+CONFIGURE_VARS += KARCH=$(LINUX_KARCH)
+MAKE_FLAGS += ARCH="$(LINUX_KARCH)"
+
 define Package/openvswitch/install
        $(INSTALL_DIR) $(1)/etc/openvswitch
 
diff --git a/net/openvswitch/patches/0005-add-wait-any-define-in-test-ovn.patch b/net/openvswitch/patches/0005-add-wait-any-define-in-test-ovn.patch
deleted file mode 100644 (file)
index d6dd6a1..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/tests/test-ovn.c b/tests/test-ovn.c
-index 60b87de..4ad3697 100644
---- a/tests/test-ovn.c
-+++ b/tests/test-ovn.c
-@@ -974,6 +974,9 @@ test_tree_shape_exhaustively(struct expr *expr, struct shash *symtab,
- }
- #ifndef _WIN32
-+#ifndef WAIT_ANY
-+#define WAIT_ANY   (-1)
-+#endif
- static void
- wait_pid(pid_t *pids, int *n)
- {
diff --git a/net/openvswitch/patches/0005-datapath-Add-net-ip6_checksum.h-to-stt.c.patch b/net/openvswitch/patches/0005-datapath-Add-net-ip6_checksum.h-to-stt.c.patch
new file mode 100644 (file)
index 0000000..61504d2
--- /dev/null
@@ -0,0 +1,34 @@
+From 554daf066bf4a8eb7bbc8edc1a877a3afc0de38d Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Jason=20K=C3=B6lker?= <jason@koelker.net>
+Date: Wed, 2 Sep 2015 22:40:24 +0000
+Subject: [PATCH] datapath: Add net/ip6_checksum.h to stt.c
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+`csum_ipv6_magic` is an asm inline on most platforms. However if it is
+not defined (like on ppc64le) including <net/ip6_checksum.h> will fall
+back to the c implementation by wrapping it in an
+`#ifndef _HAVE_ARCH_IPV6_CSUM`.
+
+Signed-off-by: Jason Kölker <jason@koelker.net>
+Signed-off-by: Jesse Gross <jesse@nicira.com>
+---
+ datapath/linux/compat/stt.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/datapath/linux/compat/stt.c b/datapath/linux/compat/stt.c
+index b44f470..dd21753 100644
+--- a/datapath/linux/compat/stt.c
++++ b/datapath/linux/compat/stt.c
+@@ -30,6 +30,7 @@
+ #include <net/icmp.h>
+ #include <net/inet_ecn.h>
+ #include <net/ip.h>
++#include <net/ip6_checksum.h>
+ #include <net/net_namespace.h>
+ #include <net/netns/generic.h>
+ #include <net/sock.h>
+-- 
+2.1.4
+
diff --git a/net/openvswitch/patches/0006-force-kernel-4-1.patch b/net/openvswitch/patches/0006-force-kernel-4-1.patch
new file mode 100644 (file)
index 0000000..d87fd90
--- /dev/null
@@ -0,0 +1,17 @@
+diff --git a/acinclude.m4 b/acinclude.m4
+index 45cfaf6..42866de 100644
+--- a/acinclude.m4
++++ b/acinclude.m4
+@@ -134,10 +134,10 @@ AC_DEFUN([OVS_CHECK_LINUX], [
+     AC_MSG_RESULT([$kversion])
+     if test "$version" -ge 4; then
+-       if test "$version" = 4 && test "$patchlevel" -le 0; then
++       if test "$version" = 4 && test "$patchlevel" -le 1; then
+           : # Linux 4.x
+        else
+-          AC_ERROR([Linux kernel in $KBUILD is version $kversion, but version newer than 4.0.x is not supported (please refer to the FAQ for advice)])
++          AC_ERROR([Linux kernel in $KBUILD is version $kversion, but version newer than 4.1.x is not supported (please refer to the FAQ for advice)])
+        fi
+     elif test "$version" = 3; then
+        : # Linux 3.x
diff --git a/net/openvswitch/patches/0007-add-netns-compat.patch b/net/openvswitch/patches/0007-add-netns-compat.patch
new file mode 100644 (file)
index 0000000..b6592c8
--- /dev/null
@@ -0,0 +1,93 @@
+diff --git a/datapath/datapath.h b/datapath/datapath.h
+index fdf35f0..02be8be 100644
+--- a/datapath/datapath.h
++++ b/datapath/datapath.h
+@@ -86,10 +86,8 @@ struct datapath {
+       /* Stats. */
+       struct dp_stats_percpu __percpu *stats_percpu;
+-#ifdef CONFIG_NET_NS
+       /* Network namespace ref. */
+-      struct net *net;
+-#endif
++      possible_net_t net;
+       u32 user_features;
+ };
+@@ -154,12 +152,12 @@ int lockdep_ovsl_is_held(void);
+ static inline struct net *ovs_dp_get_net(const struct datapath *dp)
+ {
+-      return read_pnet(&dp->net);
++      return ovs_compat_read_pnet(&dp->net);
+ }
+ static inline void ovs_dp_set_net(struct datapath *dp, struct net *net)
+ {
+-      write_pnet(&dp->net, net);
++      ovs_compat_write_pnet(&dp->net, net);
+ }
+ struct vport *ovs_lookup_vport(const struct datapath *dp, u16 port_no);
+diff --git a/datapath/linux/compat/include/net/net_namespace.h b/datapath/linux/compat/include/net/net_namespace.h
+index b7dbfe3..7763584 100644
+--- a/datapath/linux/compat/include/net/net_namespace.h
++++ b/datapath/linux/compat/include/net/net_namespace.h
+@@ -51,4 +51,57 @@ static void rpl_unregister_pernet_gen_##TYPE(struct rpl_pernet_operations *rpl_p
+ #define DEFINE_COMPAT_PNET_REG_FUNC(TYPE)
+ #endif /* 2.6.33 */
++/* In recent kernel versions (4.1) this type is defined ; for older versions we have to define it */
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,1,0)
++#define ovs_compat_read_pnet  read_pnet
++#define ovs_compat_write_pnet write_pnet
++
++#if defined(CONFIG_NET_NS) && defined(NETNS_REFCNT_DEBUG)
++static inline struct net *hold_net(struct net *net)
++{
++      if (net)
++              atomic_inc(&net->use_count);
++      return net;
++}
++
++static inline void release_net(struct net *net)
++{
++      if (net)
++              atomic_dec(&net->use_count);
++}
++#else
++static inline struct net *hold_net(struct net *net)
++{
++      return net;
++}
++
++static inline void release_net(struct net *net)
++{
++}
++#endif
++
++#else /* lower than 4.1 */
++typedef struct {
++#ifdef CONFIG_NET_NS
++      struct net *net;
++#endif
++} possible_net_t;
++
++static inline void ovs_compat_write_pnet(possible_net_t *pnet, struct net *net)
++{
++#ifdef CONFIG_NET_NS
++      pnet->net = net;
++#endif
++}
++
++static inline struct net *ovs_compat_read_pnet(const possible_net_t *pnet)
++{
++#ifdef CONFIG_NET_NS
++      return pnet->net;
++#else
++      return &init_net;
++#endif
++}
++#endif /* 4.1.0 */
++
+ #endif /* net/net_namespace.h wrapper */
diff --git a/net/openvswitch/patches/0008-add-back-old-gfp-this-node-define.patch b/net/openvswitch/patches/0008-add-back-old-gfp-this-node-define.patch
new file mode 100644 (file)
index 0000000..ec7d325
--- /dev/null
@@ -0,0 +1,19 @@
+diff --git a/datapath/flow.c b/datapath/flow.c
+index a7a2063..8db8041 100644
+--- a/datapath/flow.c
++++ b/datapath/flow.c
+@@ -51,6 +51,14 @@
+ #include "vlan.h"
++#ifndef GFP_THISNODE
++#ifdef CONFIG_NUMA  
++#define GFP_THISNODE    (__GFP_THISNODE | __GFP_NOWARN | __GFP_NORETRY)
++#else                             
++#define GFP_THISNODE    ((__force gfp_t)0)
++#endif 
++#endif
++
+ u64 ovs_flow_used_time(unsigned long flow_jiffies)
+ {
+       struct timespec cur_ts;
diff --git a/net/openvswitch/patches/0010-patch-nf_ip_hook-4.1.patch b/net/openvswitch/patches/0010-patch-nf_ip_hook-4.1.patch
new file mode 100644 (file)
index 0000000..46c3432
--- /dev/null
@@ -0,0 +1,20 @@
+diff --git a/datapath/linux/compat/stt.c b/datapath/linux/compat/stt.c
+index b44f470..f95416e 100644
+--- a/datapath/linux/compat/stt.c
++++ b/datapath/linux/compat/stt.c
+@@ -1326,9 +1326,14 @@ static void clean_percpu(struct work_struct *work)
+ static unsigned int nf_ip_hook(FIRST_PARAM
+                              struct sk_buff *skb,
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,1,0)
++                             const struct nf_hook_state *state
++#else
+                              const struct net_device *in,
+                              const struct net_device *out,
+-                             int (*okfn)(struct sk_buff *))
++                             int (*okfn)(struct sk_buff *)
++#endif
++                             )
+ {
+       struct stt_sock *stt_sock;
+       int ip_hdr_len;
diff --git a/net/openvswitch/patches/0011-fix-vxlan-xmit-skb-4.1.patch b/net/openvswitch/patches/0011-fix-vxlan-xmit-skb-4.1.patch
new file mode 100644 (file)
index 0000000..1aecdab
--- /dev/null
@@ -0,0 +1,18 @@
+diff --git a/datapath/linux/compat/include/net/vxlan.h b/datapath/linux/compat/include/net/vxlan.h
+index 0d60c18..db4dfb6 100644
+--- a/datapath/linux/compat/include/net/vxlan.h
++++ b/datapath/linux/compat/include/net/vxlan.h
+@@ -99,8 +99,13 @@ static inline int rpl_vxlan_xmit_skb(struct vxlan_sock *vs,
+               return -ENOSYS;
+       }
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,1,0)
++      return vxlan_xmit_skb(rt, vs->sock->sk, skb, src, dst, tos, ttl, df,
++                            src_port, dst_port, md, xnet, vxflags);
++#else
+       return vxlan_xmit_skb(rt, skb, src, dst, tos, ttl, df,
+                             src_port, dst_port, md, xnet, vxflags);
++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4,1,0)  */
+ }
+ #define vxlan_xmit_skb rpl_vxlan_xmit_skb
diff --git a/net/openvswitch/patches/0012-fix-vport-lisp-4.1.patch b/net/openvswitch/patches/0012-fix-vport-lisp-4.1.patch
new file mode 100644 (file)
index 0000000..47bbfb4
--- /dev/null
@@ -0,0 +1,16 @@
+diff --git a/datapath/vport-lisp.c b/datapath/vport-lisp.c
+index 0024eb4..ce1c3a8 100644
+--- a/datapath/vport-lisp.c
++++ b/datapath/vport-lisp.c
+@@ -455,7 +455,11 @@ static int lisp_send(struct vport *vport, struct sk_buff *skb)
+       ovs_skb_set_inner_protocol(skb, skb->protocol);
+       df = tun_key->tun_flags & TUNNEL_DONT_FRAGMENT ? htons(IP_DF) : 0;
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,1,0)
++      sent_len = udp_tunnel_xmit_skb(rt, lisp_port->lisp_rcv_socket->sk, skb, saddr, tun_key->ipv4_dst,
++#else
+       sent_len = udp_tunnel_xmit_skb(rt, skb, saddr, tun_key->ipv4_dst,
++#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4,1,0)  */
+                                      tun_key->ipv4_tos, tun_key->ipv4_ttl,
+                                      df, src_port, dst_port, false, true);
diff --git a/net/port-mirroring/Makefile b/net/port-mirroring/Makefile
new file mode 100644 (file)
index 0000000..fdc4b39
--- /dev/null
@@ -0,0 +1,44 @@
+# 
+# Copyright (c) 2015 OpenWrt.org
+#
+# This is free software, licensed under the BSD 2-Clause License.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=port-mirroring
+PKG_VERSION:=1.4.2
+PKG_RELEASE:=1
+PKG_MAINTAINER:=Mike Maraya <mike.maraya@gmail.com>
+PKG_LICENSE:=BSD-2-Clause
+PKG_LICENSE_FILES:=LICENSE
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
+PKG_SOURCE_URL:=git://github.com/mmaraya/port-mirroring.git
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_VERSION:=f6ead68b7760fa86e8da73ac1e062349f243ac93
+PKG_FIXUP:=autoreconf
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/port-mirroring
+       SECTION:=net
+       CATEGORY:=Network
+       DEPENDS:=+libpcap +libpthread
+       TITLE:=Copy network packets with optional support for TaZmen Sniffer Protocol (TZSP) 
+       URL:=https://github.com/mmaraya/port-mirroring
+       MENU:=1
+endef
+
+define Package/port-mirroring/install
+       $(INSTALL_DIR) $(1)/usr/sbin
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/port-mirroring $(1)/usr/sbin/
+       $(INSTALL_DIR) $(1)/etc/config
+       $(INSTALL_CONF) $(PKG_BUILD_DIR)/port-mirroring.conf $(1)/etc/config/port-mirroring
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/port-mirroringd $(1)/etc/init.d/port_mirroring
+endef
+
+$(eval $(call BuildPackage,port-mirroring))
+
diff --git a/net/pppossh/Makefile b/net/pppossh/Makefile
new file mode 100644 (file)
index 0000000..a4a048f
--- /dev/null
@@ -0,0 +1,37 @@
+#
+# Copyright (C) 2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=pppossh
+PKG_RELEASE:=2
+PKG_MAINTAINER:=Yousong Zhou <yszhou4tech@gmail.com>
+PKG_LICENSE:=GPLv2
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/pppossh
+  SECTION:=net
+  CATEGORY:=Network
+  TITLE:=PPPoSSH (Point-to-Point Protocol over SSH)
+  DEPENDS:=+ppp +resolveip @(PACKAGE_dropbear||PACKAGE_openssh-client)
+endef
+
+define Package/pppossh/description
+This package adds protocol support for PPP over SSH.  The protocol name is
+'pppossh' as in netifd interface config option 'proto'.
+endef
+
+define Build/Compile
+endef
+
+define Package/pppossh/install
+       $(INSTALL_DIR) $(1)/lib/netifd/proto
+       $(INSTALL_BIN) ./files/pppossh.sh $(1)/lib/netifd/proto
+endef
+
+$(eval $(call BuildPackage,pppossh))
diff --git a/net/pppossh/README.md b/net/pppossh/README.md
new file mode 100644 (file)
index 0000000..2f44f77
--- /dev/null
@@ -0,0 +1,68 @@
+This package will add the so-called `pppossh` protocol support to OpenWrt.  The idea is mainly from [`pvpn` project](https://github.com/halhen/pvpn) (poor man's VPN over SSH).
+
+PPPoSSH is generally not considered a network setup for production use mainly due to the TCP-over-TCP styles of traffic transport, but it can be quite handy for personal use.  And with what's already in OpenWrt, it is really easy and takes little extra space to configure it up running.
+
+## Prerequisites and dependency.
+
+`pppossh` depends on either `dropbear` or `openssh-client`; `dropbear` is normally enabled in OpenWrt by default.
+
+The following requirements need to be fulfilled for it to work.
+
+- A SSH account on the remote machine with `CAP_NET_ADMIN` capability is required.
+- Public key authentication must be enabled and setup properly.
+
+       Public key of the one generated automatially by dropbear can be induced by the following command.  But you can always use your own (dropbear can work with OpenSSH public key).
+
+               dropbearkey -y -f /etc/dropbear/dropbear_rsa_host_key
+
+- SSH server's fingerprint has to be present in `~/.ssh/known_hosts` for the authentication to proceed in an unattended way.
+
+       Manually logging in at least once to the remote server from OpenWrt should do this for you.
+
+## How to use it.
+
+The protocol name to use in `/etc/config/network` is `pppossh`.  Options are as described below.
+
+- `server`, SSH server name
+- `port`, SSH server port (defaults to `22`).
+- `sshuser`, SSH login username
+- `identity`, list of client private key files.  `~/.ssh/id_{rsa,dsa}` will
+   be used if no identity file was specified and at least one of them must be
+   valid for the public key authentication to proceed.
+- `ipaddr`, local ip address to be assigned.
+- `peeraddr`, peer ip address to be assigned.
+- `ssh_options`, extra options for the ssh client.
+- `use_hostdep`, set it to `0` to disable the use of `proto_add_host_dependency`.  This is mainly for the case that the appropriate route to `server` is not registered to `netifd` and thus causing a incorrect route being setup.
+
+## Tips
+
+An `uci batch` command template for your reference.  Modify it to suite your situation.
+
+       uci batch <<EOF
+       delete network.fs
+       set network.fs=interface
+       set network.fs.proto=pppossh
+       set network.fs.sshuser=root
+       set network.fs.server=ssh.example.cn
+       set network.fs.port=30244
+       add_list network.fs.identity=/etc/dropbear/dropbear_rsa_host_key
+       set network.fs.ipaddr=192.168.177.2
+       set network.fs.peeraddr=192.168.177.1
+       commit
+       EOF
+
+Allow forward and NAT on the remote side (`ppp0` is the peer interface on the remote side.  `eth0` is the interface for Internet access).
+
+       sysctl -w net.ipv4.ip_forward=1
+       iptables -t filter -A FORWARD -i ppp0 -j ACCEPT
+       iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
+
+It's possible that pppd may output protocol negotiation incompatibilities issues to syslog, such as something like the following which did not hurt the connectivity and was annoying only because we thought it can do better.
+
+       Sun Oct 25 09:45:14 2015 daemon.err pppd[22188]: Received bad configure-rej:  12 06 00 00 00 00
+
+To debug such problems, we can try adding `option pppd_optinos debug` to the interface config.  In the above case, it's a LCP CCP configure rej (the CCP options struct is exactly 6 octets in size as indicated in source code `pppd/ccp.h`) and since the internet fee is not charged on the bytes transfered, I will just use `noccp` to disable the negotiation altogether.
+
+Also to optimize bulk transfer performance, you can try tweaking the ciphers.  OpenSSH client does not support `none` cipher by default and you have to patch and install it for by yourself.  Another option is to try ciphers like `arcfour` and `blowfish-cbc`.  In my case, `arcfour` has the best throughput.
+
+       option ssh_options '-o "Ciphers arcfour"'
diff --git a/net/pppossh/files/pppossh.sh b/net/pppossh/files/pppossh.sh
new file mode 100644 (file)
index 0000000..421980d
--- /dev/null
@@ -0,0 +1,72 @@
+#!/bin/sh
+
+SSH=/usr/bin/ssh
+[ -x "$SSH" ] || {
+       echo "Cannot find executable $SSH." >&2
+       exit 1
+}
+
+. /lib/functions.sh
+. ../netifd-proto.sh
+init_proto "$@"
+
+INCLUDE_ONLY=1
+
+. ./ppp.sh
+
+proto_pppossh_init_config() {
+       ppp_generic_init_config
+       config_add_string server sshuser ipaddr peeraddr ssh_options
+       config_add_array 'identity:list(string)'
+       config_add_int port use_hostdep
+       available=1
+       no_device=1
+}
+
+proto_pppossh_setup() {
+       local config="$1"
+       local iface="$2"
+       local user="$(id -nu)"
+       local home=$(sh -c "echo ~$user")
+       local server port sshuser ipaddr peeraddr ssh_options identity use_hostdep
+       local ip fn errmsg opts pty
+
+       json_get_vars port sshuser ipaddr peeraddr ssh_options use_hostdep
+       json_get_var server server && {
+               [ -z "$use_hostdep" ] && use_hostdep=1
+               for ip in $(resolveip -t 5 "$server"); do
+                       if [ "$use_hostdep" -gt 0 ]; then
+                               ( proto_add_host_dependency "$config" "$ip" )
+                       else
+                               break
+                       fi
+               done
+       }
+       [ -n "$ip" ] || errmsg="${errmsg}Could not resolve $server\n"
+       [ -n "$sshuser" ] || errmsg="${errmsg}Missing sshuser option\n"
+
+       json_get_values identity identity
+       [ -z "$identity" ] && identity="$home/.ssh/id_rsa $home/.ssh/id_dsa"
+       for fn in $identity; do
+               [ -f "$fn" ] && opts="$opts -i $fn"
+       done
+       [ -n "$opts" ] || errmsg="${errmsg}Cannot find valid identity file\n"
+
+       [ -n "$errmsg" ] && {
+               echo -ne "$errmsg" >&2
+               proto_setup_failed "$config"
+               exit 1
+       }
+       opts="$opts ${port:+-p $port}"
+       opts="$opts ${ssh_options}"
+       opts="$opts $sshuser@$server"
+       pty="exec env 'HOME=$home' $SSH $opts pppd nodetach notty noauth"
+
+       ppp_generic_setup "$config" noauth pty "$pty" "$ipaddr:$peeraddr"
+}
+
+proto_pppossh_teardown() {
+       ppp_generic_teardown "$@"
+}
+
+add_protocol pppossh
diff --git a/net/rsyslog/Makefile b/net/rsyslog/Makefile
new file mode 100644 (file)
index 0000000..3b70827
--- /dev/null
@@ -0,0 +1,57 @@
+#
+# Copyright (C) 2006-2014 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=rsyslog
+PKG_VERSION:=8.14.0
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://www.rsyslog.com/files/download/rsyslog/
+PKG_MD5SUM:=9862b08fd8d13753c13d7f9d86ec8f4e
+
+PKG_MAINTAINER:=Dov Murik <dmurik@us.ibm.com>
+PKG_LICENSE:=GPL-3.0
+PKG_LICENSE_FILES:=COPYING
+
+PKG_INSTALL:=1
+PKG_FIXUP:=autoreconf
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/rsyslog
+  SECTION:=net
+  CATEGORY:=Network
+  TITLE:=Enhanced system logging and kernel message trapping daemons
+  URL:=http://www.rsyslog.com/
+  DEPENDS:=+libestr +libjson-c +libuuid +zlib
+endef
+
+define Package/rsyslog/conffiles
+/etc/rsyslog.conf
+endef
+
+CONFIGURE_ARGS+= \
+       --disable-libgcrypt \
+       --disable-liblogging-stdlog
+
+TARGET_CFLAGS += \
+       -std=c99
+
+define Package/rsyslog/install
+       $(INSTALL_DIR) $(1)/usr/sbin
+       $(CP) $(PKG_INSTALL_DIR)/usr/sbin/rsyslogd $(1)/usr/sbin/
+       $(INSTALL_DIR) $(1)/usr/lib/rsyslog
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/rsyslog/* $(1)/usr/lib/rsyslog/
+       $(INSTALL_DIR) $(1)/etc
+       $(INSTALL_CONF) ./files/rsyslog.conf $(1)/etc
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_BIN) ./files/rsyslog.init $(1)/etc/init.d/rsyslog
+endef
+
+$(eval $(call BuildPackage,rsyslog))
diff --git a/net/rsyslog/files/rsyslog.conf b/net/rsyslog/files/rsyslog.conf
new file mode 100644 (file)
index 0000000..5aaed41
--- /dev/null
@@ -0,0 +1,18 @@
+module(load="imuxsock")
+module(load="imklog")
+module(load="imudp")
+input(type="imudp" port="514")
+#module(load="imtcp")
+#input(type="imtcp" port="514")
+
+$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
+
+*.info;mail.none;authpriv.none;cron.none  /var/log/messages
+
+authpriv.*                                /var/log/secure
+
+mail.*                                    /var/log/maillog
+
+cron.*                                    /var/log/cron
+
+local7.*                                  /var/log/boot.log
diff --git a/net/rsyslog/files/rsyslog.init b/net/rsyslog/files/rsyslog.init
new file mode 100644 (file)
index 0000000..5fc8849
--- /dev/null
@@ -0,0 +1,12 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2014 OpenWrt.org
+
+START=20
+
+USE_PROCD=1
+
+start_service() {
+       procd_open_instance
+       procd_set_param command /usr/sbin/rsyslogd
+       procd_close_instance
+}
index bba6ddee0153a095cca20c54479f0e19d649d650..596854eba3e4c79b8ec27fb27de8e1bf2ff6e8f1 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2007-2013 OpenWrt.org
+# Copyright (C) 2007-2015 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=rtorrent
-PKG_VERSION:=0.9.4-git-1
+PKG_VERSION:=0.9.6-git-1
 PKG_RELEASE=$(PKG_SOURCE_VERSION)
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/rakshasa/rtorrent.git
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=7343e33a6a0d279179b304a380bf011f1c8be64a
+PKG_SOURCE_VERSION:=62cb5a4605c0664bc522e0e0da9c72f09cf643a9
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
 
 PKG_LICENSE:=GPL-2.0
@@ -73,7 +73,7 @@ CONFIGURE_ARGS+= \
        --enable-shared \
        --disable-static \
        --disable-debug \
-       $(call autoconf_bool,CONFIG_IPV6,ipv6)
+       --disable-ipv6
 
 ifeq ($(BUILD_VARIANT),rpc)
        CONFIGURE_ARGS += \
index a4213514534022afaaed6b3e53d54dbb87ec98c0..82dcc7648b403412a008b643928bd5af0656d680 100644 (file)
@@ -1,6 +1,6 @@
 --- a/configure.ac
 +++ b/configure.ac
-@@ -4,7 +4,6 @@ AC_DEFINE(API_VERSION, 8, api version)
+@@ -4,7 +4,6 @@ AC_DEFINE(API_VERSION, 9, api version)
  
  AM_INIT_AUTOMAKE
  AC_CONFIG_HEADERS(config.h)
diff --git a/net/scapy/Makefile b/net/scapy/Makefile
new file mode 100644 (file)
index 0000000..e8af27a
--- /dev/null
@@ -0,0 +1,56 @@
+#
+# Copyright (C) 2006-2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=scapy
+PKG_VERSION:=2.2.0
+PKG_RELEASE:=1
+PKG_LICENSE:=GPL-2.0
+PKG_LICENSE_FILES:=PKG-INFO
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).zip
+PKG_SOURCE_URL:=https://bitbucket.org/secdev/scapy/downloads/
+PKG_MD5SUM:=d68903c5d877820026dc544caa0b5d3c
+
+PKG_BUILD_DEPENDS:=python python-setuptools
+
+include $(INCLUDE_DIR)/package.mk
+$(call include_mk, python-package.mk)
+
+define Package/scapy
+  SECTION:=net
+  CATEGORY:=Network
+  TITLE:=Interactive packet manipulation tool and network scanner
+  MAINTAINER:=W. Michael Petullo <mike@flyn.org>
+  URL:=http://www.secdev.org/projects/scapy/
+  DEPENDS:=+python
+endef
+
+define Package/scapy/description
+  Scapy is a powerful interactive packet manipulation program built on top
+  of the Python interpreter. It can be used to forge or decode packets of
+  a wide number of protocols, send them over the wire, capture them, match
+  requests and replies, and much more.
+endef
+
+define Build/Compile
+       $(call Build/Compile/PyMod,., \
+               install --prefix="/usr" --root="$(PKG_INSTALL_DIR)", \
+       )
+endef
+
+define Package/scapy/install
+       $(INSTALL_DIR) $(1)$(PYTHON_PKG_DIR)
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(CP) \
+               $(PKG_INSTALL_DIR)$(PYTHON_PKG_DIR)/* \
+               $(1)$(PYTHON_PKG_DIR)/
+       $(CP) $(PKG_INSTALL_DIR)/usr/bin/* $(1)/usr/bin
+endef
+
+$(eval $(call BuildPackage,scapy))
index 6c7ae8d7b3cc05960dadafcdb60c463a3fafe7fe..91e6e237bc421e10bbed6f3be40b636d44aad08a 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=seafile-ccnet
 PKG_VERSION:=4.1.2
-PKG_RELEASE=$(PKG_SOURCE_VERSION)
+PKG_RELEASE=$(PKG_SOURCE_VERSION)-2
 PKG_LICENSE:=GPL-3.0
 
 PKG_SOURCE_PROTO:=git
diff --git a/net/seafile-ccnet/patches/010-libevent-include-path.patch b/net/seafile-ccnet/patches/010-libevent-include-path.patch
new file mode 100644 (file)
index 0000000..11b809c
--- /dev/null
@@ -0,0 +1,300 @@
+diff -rupN seafile-ccnet-4.1.2.orig/include/ccnet/ccnet-client.h seafile-ccnet-4.1.2/include/ccnet/ccnet-client.h
+--- seafile-ccnet-4.1.2.orig/include/ccnet/ccnet-client.h      2015-09-09 18:49:35.000000000 +0200
++++ seafile-ccnet-4.1.2/include/ccnet/ccnet-client.h   2015-09-09 19:22:23.515461892 +0200
+@@ -10,11 +10,7 @@
+ #include <glib.h>
+ #include <glib-object.h>
+-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
+ #include <event2/util.h>
+-#else
+-#include <evutil.h>
+-#endif
+ #include "ccnet-session-base.h"
+diff -rupN seafile-ccnet-4.1.2.orig/include/ccnet/cevent.h seafile-ccnet-4.1.2/include/ccnet/cevent.h
+--- seafile-ccnet-4.1.2.orig/include/ccnet/cevent.h    2015-09-09 18:49:35.000000000 +0200
++++ seafile-ccnet-4.1.2/include/ccnet/cevent.h 2015-09-09 19:22:23.516461920 +0200
+@@ -6,13 +6,9 @@
+ #ifndef CEVENT_H
+ #define CEVENT_H
+-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
+ #include <event2/event.h>
+ #include <event2/event_compat.h>
+ #include <event2/event_struct.h>
+-#else
+-#include <event.h>
+-#endif
+ #include <glib.h>
+diff -rupN seafile-ccnet-4.1.2.orig/lib/job-mgr.c seafile-ccnet-4.1.2/lib/job-mgr.c
+--- seafile-ccnet-4.1.2.orig/lib/job-mgr.c     2015-09-09 18:49:35.000000000 +0200
++++ seafile-ccnet-4.1.2/lib/job-mgr.c  2015-09-09 19:22:23.516461920 +0200
+@@ -1,11 +1,7 @@
+ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
+ #include <event2/event.h>
+ #include <event2/event_compat.h>
+-#else
+-#include <event.h>
+-#endif
+ #include <string.h>
+ #include <stdlib.h>
+diff -rupN seafile-ccnet-4.1.2.orig/lib/libccnet_utils.h seafile-ccnet-4.1.2/lib/libccnet_utils.h
+--- seafile-ccnet-4.1.2.orig/lib/libccnet_utils.h      2015-09-09 18:49:35.000000000 +0200
++++ seafile-ccnet-4.1.2/lib/libccnet_utils.h   2015-09-09 19:22:23.517461948 +0200
+@@ -15,11 +15,7 @@
+ #include <glib-object.h>
+ #include <stdlib.h>
+-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
+ #include <event2/util.h>
+-#else
+-#include <evutil.h>
+-#endif
+ #ifdef WIN32
+     #include <errno.h>
+diff -rupN seafile-ccnet-4.1.2.orig/lib/mainloop.c seafile-ccnet-4.1.2/lib/mainloop.c
+--- seafile-ccnet-4.1.2.orig/lib/mainloop.c    2015-09-09 18:49:35.000000000 +0200
++++ seafile-ccnet-4.1.2/lib/mainloop.c 2015-09-09 19:22:23.517461948 +0200
+@@ -3,13 +3,9 @@
+ #include "include.h"
+ #include <ccnet.h>
+-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
+ #include <event2/event.h>
+ #include <event2/event_compat.h>
+ #include <event2/event_struct.h>
+-#else
+-#include <event.h>
+-#endif
+ static int
+ cmdrsp_cb (const char *code, char *content, int clen, void *data)
+diff -rupN seafile-ccnet-4.1.2.orig/lib/net.h seafile-ccnet-4.1.2/lib/net.h
+--- seafile-ccnet-4.1.2.orig/lib/net.h 2015-09-09 18:49:35.000000000 +0200
++++ seafile-ccnet-4.1.2/lib/net.h      2015-09-09 19:22:23.517461948 +0200
+@@ -19,11 +19,7 @@
+     #include <netinet/tcp.h>
+ #endif
+-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
+ #include <event2/util.h>
+-#else
+-#include <evutil.h>
+-#endif
+ #ifdef WIN32
+     #define ECONNREFUSED WSAECONNREFUSED
+diff -rupN seafile-ccnet-4.1.2.orig/lib/packet-io.h seafile-ccnet-4.1.2/lib/packet-io.h
+--- seafile-ccnet-4.1.2.orig/lib/packet-io.h   2015-09-09 18:49:35.000000000 +0200
++++ seafile-ccnet-4.1.2/lib/packet-io.h        2015-09-09 19:22:23.518461976 +0200
+@@ -5,11 +5,7 @@
+ #include <packet.h>
+-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
+ #include <event2/util.h>
+-#else
+-#include <evutil.h>
+-#endif
+ struct buffer;
+diff -rupN seafile-ccnet-4.1.2.orig/lib/processor.c seafile-ccnet-4.1.2/lib/processor.c
+--- seafile-ccnet-4.1.2.orig/lib/processor.c   2015-09-09 18:49:35.000000000 +0200
++++ seafile-ccnet-4.1.2/lib/processor.c        2015-09-09 19:22:23.518461976 +0200
+@@ -4,11 +4,7 @@
+ #include <pthread.h>
+-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
+ #include <event2/event.h>
+-#else
+-#include <event.h>
+-#endif
+ #include "ccnet-client.h"
+ #include "processor.h"
+diff -rupN seafile-ccnet-4.1.2.orig/lib/timer.c seafile-ccnet-4.1.2/lib/timer.c
+--- seafile-ccnet-4.1.2.orig/lib/timer.c       2015-09-09 18:49:35.000000000 +0200
++++ seafile-ccnet-4.1.2/lib/timer.c    2015-09-09 19:22:23.519462004 +0200
+@@ -1,12 +1,8 @@
+ /* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
+ #include <event2/event.h>
+ #include <event2/event_compat.h>
+ #include <event2/event_struct.h>
+-#else
+-#include <event.h>
+-#endif
+ #include <sys/time.h>
+diff -rupN seafile-ccnet-4.1.2.orig/lib/utils.h seafile-ccnet-4.1.2/lib/utils.h
+--- seafile-ccnet-4.1.2.orig/lib/utils.h       2015-09-09 18:49:35.000000000 +0200
++++ seafile-ccnet-4.1.2/lib/utils.h    2015-09-09 19:22:23.519462004 +0200
+@@ -11,11 +11,7 @@
+ #include <glib-object.h>
+ #include <stdlib.h>
+-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
+ #include <event2/util.h>
+-#else
+-#include <evutil.h>
+-#endif
+ #ifdef WIN32
+ #include <errno.h>
+diff -rupN seafile-ccnet-4.1.2.orig/net/cluster/server.c seafile-ccnet-4.1.2/net/cluster/server.c
+--- seafile-ccnet-4.1.2.orig/net/cluster/server.c      2015-09-09 18:49:35.000000000 +0200
++++ seafile-ccnet-4.1.2/net/cluster/server.c   2015-09-09 19:24:33.800125741 +0200
+@@ -6,11 +6,7 @@
+ #include <stdio.h>
+ #include <getopt.h>
+-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
+ #include <event2/dns.h>
+-#else
+-#include <evdns.h>
+-#endif
+ #include "inner-session.h"
+ #include "outer-session.h"
+diff -rupN seafile-ccnet-4.1.2.orig/net/common/connect-mgr.h seafile-ccnet-4.1.2/net/common/connect-mgr.h
+--- seafile-ccnet-4.1.2.orig/net/common/connect-mgr.h  2015-09-09 18:49:35.000000000 +0200
++++ seafile-ccnet-4.1.2/net/common/connect-mgr.h       2015-09-09 19:22:23.520462032 +0200
+@@ -3,11 +3,7 @@
+ #ifndef CCNET_CONNECTION_MANAGER
+ #define CCNET_CONNECTION_MANAGER
+-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
+ #include <event2/event.h>
+-#else
+-#include <event.h>
+-#endif
+ #include "timer.h"
+diff -rupN seafile-ccnet-4.1.2.orig/net/common/packet-io.c seafile-ccnet-4.1.2/net/common/packet-io.c
+--- seafile-ccnet-4.1.2.orig/net/common/packet-io.c    2015-09-09 18:49:35.000000000 +0200
++++ seafile-ccnet-4.1.2/net/common/packet-io.c 2015-09-09 19:22:23.521462060 +0200
+@@ -13,13 +13,9 @@
+ #include <unistd.h>
+-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
+ #include <event2/event.h>
+ #include <event2/bufferevent.h>
+ #include <event2/bufferevent_struct.h>
+-#else
+-#include <event.h>
+-#endif
+ #include <glib.h>
+ #include <errno.h>
+diff -rupN seafile-ccnet-4.1.2.orig/net/common/packet-io.h seafile-ccnet-4.1.2/net/common/packet-io.h
+--- seafile-ccnet-4.1.2.orig/net/common/packet-io.h    2015-09-09 18:49:35.000000000 +0200
++++ seafile-ccnet-4.1.2/net/common/packet-io.h 2015-09-09 19:22:23.521462060 +0200
+@@ -5,13 +5,9 @@
+ #include "packet.h"
+-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
+ #include <event2/util.h>
+ #include <event2/buffer.h>
+ #include <event2/buffer_compat.h>
+-#else
+-#include <evutil.h>
+-#endif
+ /* struct evbuffer; */
+ /* for libevent2 */
+diff -rupN seafile-ccnet-4.1.2.orig/net/common/peer.c seafile-ccnet-4.1.2/net/common/peer.c
+--- seafile-ccnet-4.1.2.orig/net/common/peer.c 2015-09-09 18:49:35.000000000 +0200
++++ seafile-ccnet-4.1.2/net/common/peer.c      2015-09-09 19:22:23.522462088 +0200
+@@ -2,14 +2,10 @@
+ #include "common.h"
+-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
+ #include <event2/event.h>
+ #include <event2/bufferevent.h>
+ #include <event2/bufferevent_compat.h>
+ #include <event2/bufferevent_struct.h>
+-#else
+-#include <event.h>
+-#endif
+ #include <stdio.h>
+ #include <stdlib.h>
+diff -rupN seafile-ccnet-4.1.2.orig/net/common/session.h seafile-ccnet-4.1.2/net/common/session.h
+--- seafile-ccnet-4.1.2.orig/net/common/session.h      2015-09-09 18:49:35.000000000 +0200
++++ seafile-ccnet-4.1.2/net/common/session.h   2015-09-09 19:22:23.523462116 +0200
+@@ -3,13 +3,9 @@
+ #ifndef CCNET_SESSION_H
+ #define CCNET_SESSION_H
+-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
+ #include <event2/event.h>
+ #include <event2/event_compat.h>
+ #include <event2/event_struct.h>
+-#else
+-#include <event.h>
+-#endif
+ #include <glib.h>
+ #include <glib/gstdio.h>
+diff -rupN seafile-ccnet-4.1.2.orig/net/daemon/ccnet-daemon.c seafile-ccnet-4.1.2/net/daemon/ccnet-daemon.c
+--- seafile-ccnet-4.1.2.orig/net/daemon/ccnet-daemon.c 2015-09-09 18:49:35.000000000 +0200
++++ seafile-ccnet-4.1.2/net/daemon/ccnet-daemon.c      2015-09-09 19:24:59.313846178 +0200
+@@ -6,12 +6,8 @@
+ #include <stdio.h>
+ #include <getopt.h>
+-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
+ #include <event2/dns.h>
+ #include <event2/dns_compat.h>
+-#else
+-#include <evdns.h>
+-#endif
+ #include "daemon-session.h"
+ #include "rpc-service.h"
+diff -rupN seafile-ccnet-4.1.2.orig/net/daemon/ccnet-test.c seafile-ccnet-4.1.2/net/daemon/ccnet-test.c
+--- seafile-ccnet-4.1.2.orig/net/daemon/ccnet-test.c   2015-09-09 18:49:35.000000000 +0200
++++ seafile-ccnet-4.1.2/net/daemon/ccnet-test.c        2015-09-09 19:24:45.089444412 +0200
+@@ -5,11 +5,7 @@
+ #include <stdio.h>
+-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
+ #include <event2/dns.h>
+-#else
+-#include <evdns.h>
+-#endif
+ #include "utils.h"
+diff -rupN seafile-ccnet-4.1.2.orig/net/server/ccnet-server.c seafile-ccnet-4.1.2/net/server/ccnet-server.c
+--- seafile-ccnet-4.1.2.orig/net/server/ccnet-server.c 2015-09-09 18:49:35.000000000 +0200
++++ seafile-ccnet-4.1.2/net/server/ccnet-server.c      2015-09-09 19:25:53.967392265 +0200
+@@ -6,11 +6,7 @@
+ #include <stdio.h>
+ #include <getopt.h>
+-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
+ #include <event2/dns.h>
+-#else
+-#include <evdns.h>
+-#endif
+ #include "server-session.h"
+ #include "user-mgr.h"
index f671a799fab6168ec7028a74fe28a68c82771abf..949345d8abbcf4a5bc6f4ec4c011af3c96345e9f 100644 (file)
@@ -5,11 +5,13 @@
 # See /LICENSE for more information.
 #
 
+# NOTE: make sure to update EXTRA_DEPENDS in case of version/release changes!
+
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=seafile-server
 PKG_VERSION:=4.1.2
-PKG_RELEASE=$(PKG_SOURCE_VERSION)-2
+PKG_RELEASE=$(PKG_SOURCE_VERSION)-5
 PKG_LICENSE:=GPL-3.0
 
 PKG_SOURCE_PROTO:=git
@@ -29,11 +31,11 @@ define Package/seafile-server
     TITLE:=Seafile server
     MAINTAINER:=Gergely Kiss <mail.gery@gmail.com>
     URL:=http://seafile.com/
-    DEPENDS:=+shadow-useradd +libarchive +libopenssl +glib2 +libsearpc +seafile-ccnet +seafile-seahub \
+    DEPENDS:=+libarchive +libopenssl +glib2 +libsearpc +seafile-ccnet +seafile-seahub \
                +sqlite3-cli +python-mysql +jansson +libevent2 +libevent2-openssl +zlib +libzdb +libsqlite3 \
                +libmysqlclient +libpthread +libuuid \
-               +bash +sudo +procps +procps-pkill $(ICONV_DEPENDS)
-    EXTRA_DEPENDS:=seafile-ccnet (=4.1.2-a73109f09af4ecc49cdc4c57cdde51b38e15c31a), seafile-seahub (=4.1.2-3fb1288f920de03a4e2e6a06b60671ce98971742)
+               +bash +sudo +procps-ng +procps-ng-pkill $(ICONV_DEPENDS)
+    EXTRA_DEPENDS:=seafile-ccnet (=4.1.2-a73109f09af4ecc49cdc4c57cdde51b38e15c31a-2), seafile-seahub (=4.1.2-3fb1288f920de03a4e2e6a06b60671ce98971742)
 endef
 
 define Package/seafile-server/description
@@ -91,43 +93,50 @@ endef
 define Package/seafile-server/postinst
 #!/bin/sh
 
-if ! id -u seafile >/dev/null 2>&1; then
-    useradd seafile -d "/usr/share/seafile" -s /bin/sh; fi
+if ! group_exists seafile; then
+   group_add_next seafile; fi
 
-chown -R seafile:seafile /usr/share/seafile/
-chmod -R o-rwx /usr/share/seafile/
+SEAFILE_GID=$$(grep -s '^seafile:' "$${IPKG_INSTROOT}/etc/group" | cut -d: -f3)
+
+if ! user_exists seafile; then
+   user_add seafile "" "$${SEAFILE_GID}" seafile /usr/share/seafile /bin/sh; fi
 
-if [ ! -d "/usr/share/seafile/seafile-data" ]
+if [ -z "$${IPKG_INSTROOT}" ]
 then
-   echo "*** Installation completed, running configuration script..."
-   /etc/init.d/seafile setup
+   chown -R seafile:seafile /usr/share/seafile/
+   chmod -R o-rwx /usr/share/seafile/
 
-   if [ $$? -ne 0 ]
+   if [ ! -d /usr/share/seafile/seafile-data ]
    then
+      echo "*** Installation completed, running configuration script..."
+      /etc/init.d/seafile setup
+
+      if [ $$? -ne 0 ]
+      then
+         echo
+         echo "*** ERROR: Configuration failed. Please fix the issues if any and re-run the script using the command below:"
+         echo "*** \"/etc/init.d/seafile setup\""
+      fi
+
       echo
-      echo "*** ERROR: Configuration failed. Please fix the issues if any and re-run the script using the command below:"
-      echo "*** \"/etc/init.d/seafile setup\""
+      echo "*** NOTE: you need to create an admin account before using Seafile."
+      echo "*** Please run \"/etc/init.d/seafile create_admin\" to do so."
+   else
+      echo "*** It seems you are upgrading from an older version."
+      echo "*** If so, please run the appropriate upgrade scripts before using the new version of Seafile."
+      echo "*** Upgrade scripts are located at \"/usr/share/seafile/seafile-server/upgrade\""
+      echo
+      echo "*** For more information, please read http://manual.seafile.com/deploy/upgrade.html"
    fi
-
-   echo
-   echo "*** NOTE: you need to create an admin account before using Seafile."
-   echo "*** Please run \"/etc/init.d/seafile create_admin\" to do so."
 else
-   echo "*** WARNING: it seems you are upgrading from an older version."
-   echo "*** If so, please run the appropriate upgrade script before using the new version of Seafile."
-   echo "*** Upgrade scripts are located at \"/usr/share/seafile/seafile-server/upgrade\""
-   echo
-   echo "*** For more information, please read http://manual.seafile.com/deploy/upgrade.html"
-   exit
-fi
-
-/etc/init.d/seafile enable
-/etc/init.d/seafile restart
-endef
-
-define Package/seafile-server/prerm
+   cat > "$${IPKG_INSTROOT}/etc/uci-defaults/99_seafile-server" << EOF
 #!/bin/sh
-/etc/init.d/seafile stop
+
+chown -R seafile:seafile /usr/share/seafile/
+chmod -R o-rwx /usr/share/seafile/
+exit 0
+EOF
+fi
 endef
 
 $(eval $(call BuildPackage,seafile-server))
diff --git a/net/seafile-server/patches/060-libevent2-include-path.patch b/net/seafile-server/patches/060-libevent2-include-path.patch
new file mode 100644 (file)
index 0000000..958a136
--- /dev/null
@@ -0,0 +1,107 @@
+diff -rupN seafile-server-4.1.2.orig/lib/net.c seafile-server-4.1.2/lib/net.c
+--- seafile-server-4.1.2.orig/lib/net.c        2015-09-09 19:31:56.000000000 +0200
++++ seafile-server-4.1.2/lib/net.c     2015-09-14 20:20:30.906021296 +0200
+@@ -31,11 +31,7 @@
+ #include <fcntl.h>
+-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
+ #include <event2/util.h>
+-#else
+-#include <evutil.h>
+-#endif
+ #include "net.h"
+diff -rupN seafile-server-4.1.2.orig/lib/net.h seafile-server-4.1.2/lib/net.h
+--- seafile-server-4.1.2.orig/lib/net.h        2015-09-09 19:31:56.000000000 +0200
++++ seafile-server-4.1.2/lib/net.h     2015-09-14 20:20:30.906021296 +0200
+@@ -19,11 +19,7 @@
+     #include <netinet/tcp.h>
+ #endif
+-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
+ #include <event2/util.h>
+-#else
+-#include <evutil.h>
+-#endif
+ #ifdef WIN32
+     #define ECONNREFUSED WSAECONNREFUSED
+diff -rupN seafile-server-4.1.2.orig/lib/utils.h seafile-server-4.1.2/lib/utils.h
+--- seafile-server-4.1.2.orig/lib/utils.h      2015-09-09 19:31:56.000000000 +0200
++++ seafile-server-4.1.2/lib/utils.h   2015-09-14 20:20:30.907021326 +0200
+@@ -13,11 +13,7 @@
+ #include <stdlib.h>
+ #include <sys/stat.h>
+-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
+ #include <event2/util.h>
+-#else
+-#include <evutil.h>
+-#endif
+ #ifdef __linux__
+ #include <endian.h>
+diff -rupN seafile-server-4.1.2.orig/server/access-file.c seafile-server-4.1.2/server/access-file.c
+--- seafile-server-4.1.2.orig/server/access-file.c     2015-09-09 19:31:56.000000000 +0200
++++ seafile-server-4.1.2/server/access-file.c  2015-09-14 20:20:30.907021326 +0200
+@@ -3,13 +3,9 @@
+ #define DEBUG_FLAG SEAFILE_DEBUG_HTTP
+ #include "log.h"
+-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
+ #include <event2/event.h>
+ #include <event2/bufferevent.h>
+ #include <event2/bufferevent_struct.h>
+-#else
+-#include <event.h>
+-#endif
+ #include <evhtp.h>
+diff -rupN seafile-server-4.1.2.orig/server/http-server.c seafile-server-4.1.2/server/http-server.c
+--- seafile-server-4.1.2.orig/server/http-server.c     2015-09-09 19:31:56.000000000 +0200
++++ seafile-server-4.1.2/server/http-server.c  2015-09-14 20:20:30.908021355 +0200
+@@ -6,11 +6,7 @@
+ #include <locale.h>
+ #include <sys/types.h>
+-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
+ #include <event2/event.h>
+-#else
+-#include <event.h>
+-#endif
+ #include <evhtp.h>
+diff -rupN seafile-server-4.1.2.orig/server/listen-mgr.c seafile-server-4.1.2/server/listen-mgr.c
+--- seafile-server-4.1.2.orig/server/listen-mgr.c      2015-09-09 19:31:56.000000000 +0200
++++ seafile-server-4.1.2/server/listen-mgr.c   2015-09-14 20:23:15.614452334 +0200
+@@ -3,11 +3,9 @@
+ #include <event2/event.h>
+ #include <event2/listener.h>
+-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
+ #include <event2/bufferevent.h>
+ #include <event2/buffer_compat.h>
+ #include <event2/bufferevent_struct.h>
+-#endif
+ #include "seafile-session.h"
+diff -rupN seafile-server-4.1.2.orig/server/upload-file.c seafile-server-4.1.2/server/upload-file.c
+--- seafile-server-4.1.2.orig/server/upload-file.c     2015-09-09 19:31:56.000000000 +0200
++++ seafile-server-4.1.2/server/upload-file.c  2015-09-14 20:20:30.909021385 +0200
+@@ -6,11 +6,7 @@
+ #include <getopt.h>
+ #include <fcntl.h>
+-#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)
+ #include <event2/event.h>
+-#else
+-#include <event.h>
+-#endif
+ #include <evhtp.h>
index 69e170145d112b403875fa6b9aa32f026ca1c491..da128db4aaf55a78134e705afb24a3f18377f8ac 100644 (file)
@@ -8,9 +8,9 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=sqm-scripts
-PKG_SOURCE_VERSION:=de551af17e54f07a59e357b951c83b373ee659e5
-PKG_VERSION:=1.0.2
-PKG_RELEASE:=1
+PKG_SOURCE_VERSION:=90399ffc4ddbe0b25374682d7914afee3d522328
+PKG_VERSION:=1.0.5
+PKG_RELEASE:=2
 PKG_LICENSE:=GPLv2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_RELEASE).tar.xz
@@ -24,7 +24,7 @@ include $(INCLUDE_DIR)/package.mk
 define Package/sqm-scripts
   SECTION:=net
   CATEGORY:=Base system
-  DEPENDS:=+tc +kmod-sched +kmod-ifb iptables +ip \
+  DEPENDS:=+tc +kmod-sched +kmod-ifb +iptables \
        +iptables-mod-ipopt +iptables-mod-conntrack-extra
   TITLE:=SQM Scripts (QoS)
   PKGARCH:=all
index 79843dab0d06c979e911554dddf696e41e63c1b9..38c1cd703284d49944519c0063b71ac1a458d645 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=squid
-PKG_VERSION:=3.5.6
+PKG_VERSION:=3.5.9
 PKG_RELEASE:=1
 
 PKG_LICENSE:=GPL-2.0
@@ -16,7 +16,7 @@ PKG_MAINTAINER:=Luka Perkov <luka@openwrt.org>
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=http://www.squid-cache.org/Versions/v3/3.5/
-PKG_MD5SUM:=93e18bd257857e35bb634ddb8a348563
+PKG_MD5SUM:=fe7306a90a0ba2fc906e9a8c741cc8ea
 
 PKG_BUILD_PARALLEL:=1
 PKG_INSTALL:=1
index 946bed761076bc448d226c0821ac9aa84e5c6eb2..96828e2345a59efd3bdf7cab76d893df28d8baa5 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=strongswan
-PKG_VERSION:=5.3.2
-PKG_RELEASE:=2
+PKG_VERSION:=5.3.4
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=http://download.strongswan.org/ http://download2.strongswan.org/
-PKG_MD5SUM:=fab014be1477ef4ebf9a765e10f8802c
+PKG_MD5SUM:=655a632a515c74a99f2e9cc337ab2f33
 PKG_LICENSE:=GPL-2.0+
 PKG_MAINTAINER:=Steven Barth <cyrus@openwrt.org>
 
@@ -45,6 +45,7 @@ PKG_MOD_AVAILABLE:= \
        gcm \
        gcrypt \
        gmp \
+       gmpdh \
        ha \
        hmac \
        kernel-libipsec \
@@ -115,7 +116,7 @@ define Package/strongswan
 $(call Package/strongswan/Default)
   DEPENDS:= +libpthread +ip \
        +kmod-crypto-authenc \
-       +kmod-ipsec +kmod-ipsec4 +kmod-ipsec6 \
+       +kmod-ipsec +kmod-ipsec4 +IPV6:kmod-ipsec6 \
        +kmod-ipt-ipsec +iptables-mod-ipsec
 endef
 
@@ -254,6 +255,37 @@ $(call Package/strongswan/description/Default)
  This meta-package contains only dependencies to match upstream defaults.
 endef
 
+
+define Package/strongswan-isakmp
+$(call Package/strongswan/Default)
+  TITLE+= (isakmp)
+  DEPENDS:= +strongswan \
+       +strongswan-charon \
+       +strongswan-mod-aes \
+       +strongswan-mod-des \
+       +strongswan-mod-gmpdh \
+       +strongswan-mod-hmac \
+       +strongswan-mod-kernel-netlink \
+       +strongswan-mod-md5 \
+       +strongswan-mod-nonce \
+       +strongswan-mod-pubkey \
+       +strongswan-mod-random \
+       +strongswan-mod-sha1 \
+       +strongswan-mod-socket-default \
+       +strongswan-mod-stroke \
+       +strongswan-mod-uci \
+       +strongswan-mod-updown \
+       +strongswan-utils
+endef
+
+define Package/strongswan-isakmp/description
+$(call Package/strongswan/description/Default)
+ This meta-package contains only dependencies to establish  ISAKMP /
+ IKE PSK connections, dropping other capabilities in favor of small size 
+ Can fit most routers even with 4Mb flash (after removing IPv6 support).
+endef
+
+
 define Package/strongswan-minimal
 $(call Package/strongswan/Default)
   TITLE+= (minimal)
@@ -376,6 +408,10 @@ define Package/strongswan-full/install
        true
 endef
 
+define Package/strongswan-isakmp/install
+       true
+endef
+
 define Package/strongswan-minimal/install
        true
 endef
@@ -454,6 +490,7 @@ $(eval $(call BuildPackage,strongswan))
 $(eval $(call BuildPackage,strongswan-default))
 $(eval $(call BuildPackage,strongswan-full))
 $(eval $(call BuildPackage,strongswan-minimal))
+$(eval $(call BuildPackage,strongswan-isakmp))
 $(eval $(call BuildPackage,strongswan-charon))
 $(eval $(call BuildPackage,strongswan-utils))
 $(eval $(call BuildPackage,strongswan-libtls))
@@ -484,6 +521,7 @@ $(eval $(call BuildPlugin,fips-prf,FIPS PRF crypto,+strongswan-mod-sha1))
 $(eval $(call BuildPlugin,gcm,GCM AEAD wrapper crypto,))
 $(eval $(call BuildPlugin,gcrypt,libgcrypt,+PACKAGE_strongswan-mod-gcrypt:libgcrypt))
 $(eval $(call BuildPlugin,gmp,libgmp,+PACKAGE_strongswan-mod-gmp:libgmp))
+$(eval $(call BuildPlugin,gmpdh,DH-Groups; no libgmp dep,))
 $(eval $(call BuildPlugin,ha,high availability cluster,))
 $(eval $(call BuildPlugin,hmac,HMAC crypto,))
 $(eval $(call BuildPlugin,kernel-libipsec,libipsec kernel interface,))
diff --git a/net/strongswan/patches/305-minimal_dh_plugin.patch b/net/strongswan/patches/305-minimal_dh_plugin.patch
new file mode 100644 (file)
index 0000000..d143c16
--- /dev/null
@@ -0,0 +1,221 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -135,6 +135,7 @@ ARG_DISBL_SET([fips-prf],       [disable
+ ARG_ENABL_SET([gcm],            [enables the GCM AEAD wrapper crypto plugin.])
+ ARG_ENABL_SET([gcrypt],         [enables the libgcrypt plugin.])
+ ARG_DISBL_SET([gmp],            [disable GNU MP (libgmp) based crypto implementation plugin.])
++ARG_DISBL_SET([gmpdh],          [disable GNU MP (libgmp) based static-linked crypto DH minimal implementation plugin.])
+ ARG_DISBL_SET([hmac],           [disable HMAC crypto implementation plugin.])
+ ARG_ENABL_SET([md4],            [enable MD4 software implementation plugin.])
+ ARG_DISBL_SET([md5],            [disable MD5 software implementation plugin.])
+@@ -1310,6 +1311,7 @@ ADD_PLUGIN([gcrypt],               [s ch
+ ADD_PLUGIN([af-alg],               [s charon scepclient pki scripts medsrv attest nm cmd aikgen])
+ ADD_PLUGIN([fips-prf],             [s charon nm cmd])
+ ADD_PLUGIN([gmp],                  [s charon scepclient pki scripts manager medsrv attest nm cmd aikgen])
++ADD_PLUGIN([gmpdh],                [s charon scepclient pki scripts manager medsrv attest nm cmd aikgen])
+ ADD_PLUGIN([agent],                [s charon nm cmd])
+ ADD_PLUGIN([keychain],             [s charon cmd])
+ ADD_PLUGIN([chapoly],              [s charon scripts nm cmd])
+@@ -1441,6 +1443,7 @@ AM_CONDITIONAL(USE_SHA1, test x$sha1 = x
+ AM_CONDITIONAL(USE_SHA2, test x$sha2 = xtrue)
+ AM_CONDITIONAL(USE_FIPS_PRF, test x$fips_prf = xtrue)
+ AM_CONDITIONAL(USE_GMP, test x$gmp = xtrue)
++AM_CONDITIONAL(USE_GMPDH, test x$gmpdh = xtrue)
+ AM_CONDITIONAL(USE_RDRAND, test x$rdrand = xtrue)
+ AM_CONDITIONAL(USE_AESNI, test x$aesni = xtrue)
+ AM_CONDITIONAL(USE_RANDOM, test x$random = xtrue)
+@@ -1688,6 +1691,7 @@ AC_CONFIG_FILES([
+       src/libstrongswan/plugins/sha2/Makefile
+       src/libstrongswan/plugins/fips_prf/Makefile
+       src/libstrongswan/plugins/gmp/Makefile
++      src/libstrongswan/plugins/gmpdh/Makefile
+       src/libstrongswan/plugins/rdrand/Makefile
+       src/libstrongswan/plugins/aesni/Makefile
+       src/libstrongswan/plugins/random/Makefile
+--- a/src/libstrongswan/Makefile.am
++++ b/src/libstrongswan/Makefile.am
+@@ -295,6 +295,13 @@ if MONOLITHIC
+ endif
+ endif
++if USE_GMPDH
++  SUBDIRS += plugins/gmpdh
++if MONOLITHIC
++  libstrongswan_la_LIBADD += plugins/gmpdh/libstrongswan-gmpdh.la
++endif
++endif
++
+ if USE_RDRAND
+   SUBDIRS += plugins/rdrand
+ if MONOLITHIC
+--- /dev/null
++++ b/src/libstrongswan/plugins/gmpdh/Makefile.am
+@@ -0,0 +1,19 @@
++AM_CPPFLAGS = \
++      -I$(top_srcdir)/src/libstrongswan
++
++AM_CFLAGS = \
++      $(PLUGIN_CFLAGS)
++
++if MONOLITHIC
++noinst_LTLIBRARIES = libstrongswan-gmpdh.la
++else
++plugin_LTLIBRARIES = libstrongswan-gmpdh.la
++endif
++
++libstrongswan_gmpdh_la_SOURCES = \
++      gmpdh_plugin.h gmpdh_plugin.c \
++      ../gmp/gmp_diffie_hellman.c ../gmp/gmp_diffie_hellman.h 
++
++      
++libstrongswan_gmpdh_la_LDFLAGS = -module -avoid-version -Wl,-Bstatic -Wl,-lgmp -Wl,-Bdynamic -Wl,--as-needed
++libstrongswan_gmpdh_la_LIBADD  =
+--- /dev/null
++++ b/src/libstrongswan/plugins/gmpdh/gmpdh_plugin.c
+@@ -0,0 +1,101 @@
++/*
++ * Copyright (C) 2008-2009 Martin Willi
++ * Hochschule fuer Technik Rapperswil
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License as published by the
++ * Free Software Foundation; either version 2 of the License, or (at your
++ * option) any later version.  See <http://www.fsf.org/copyleft/gpl.txt>.
++ *
++ * This program is distributed in the hope that it will be useful, but
++ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
++ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
++ * for more details.
++ */
++
++#include "gmpdh_plugin.h"
++
++#include <library.h>
++#include "../gmp/gmp_diffie_hellman.h"
++
++typedef struct private_gmpdh_plugin_t private_gmpdh_plugin_t;
++
++/**
++ * private data of gmp_plugin
++ */
++struct private_gmpdh_plugin_t {
++
++      /**
++       * public functions
++       */
++      gmpdh_plugin_t public;
++};
++
++METHOD(plugin_t, get_name, char*,
++      private_gmpdh_plugin_t *this)
++{
++      return "gmpdh";
++}
++
++METHOD(plugin_t, get_features, int,
++      private_gmpdh_plugin_t *this, plugin_feature_t *features[])
++{
++      static plugin_feature_t f[] = {
++              /* DH groups */
++              PLUGIN_REGISTER(DH, gmp_diffie_hellman_create),
++                      PLUGIN_PROVIDE(DH, MODP_2048_BIT),
++                              PLUGIN_DEPENDS(RNG, RNG_STRONG),
++                      PLUGIN_PROVIDE(DH, MODP_2048_224),
++                              PLUGIN_DEPENDS(RNG, RNG_STRONG),
++                      PLUGIN_PROVIDE(DH, MODP_2048_256),
++                              PLUGIN_DEPENDS(RNG, RNG_STRONG),
++                      PLUGIN_PROVIDE(DH, MODP_1536_BIT),
++                              PLUGIN_DEPENDS(RNG, RNG_STRONG),
++                      PLUGIN_PROVIDE(DH, MODP_3072_BIT),
++                              PLUGIN_DEPENDS(RNG, RNG_STRONG),
++                      PLUGIN_PROVIDE(DH, MODP_4096_BIT),
++                              PLUGIN_DEPENDS(RNG, RNG_STRONG),
++                      PLUGIN_PROVIDE(DH, MODP_6144_BIT),
++                              PLUGIN_DEPENDS(RNG, RNG_STRONG),
++                      PLUGIN_PROVIDE(DH, MODP_8192_BIT),
++                              PLUGIN_DEPENDS(RNG, RNG_STRONG),
++                      PLUGIN_PROVIDE(DH, MODP_1024_BIT),
++                              PLUGIN_DEPENDS(RNG, RNG_STRONG),
++                      PLUGIN_PROVIDE(DH, MODP_1024_160),
++                              PLUGIN_DEPENDS(RNG, RNG_STRONG),
++                      PLUGIN_PROVIDE(DH, MODP_768_BIT),
++                              PLUGIN_DEPENDS(RNG, RNG_STRONG),
++              PLUGIN_REGISTER(DH, gmp_diffie_hellman_create_custom),
++                      PLUGIN_PROVIDE(DH, MODP_CUSTOM),
++                              PLUGIN_DEPENDS(RNG, RNG_STRONG),
++      };
++      *features = f;
++      return countof(f);
++}
++
++METHOD(plugin_t, destroy, void,
++      private_gmpdh_plugin_t *this)
++{
++      free(this);
++}
++
++/*
++ * see header file
++ */
++plugin_t *gmpdh_plugin_create()
++{
++      private_gmpdh_plugin_t *this;
++
++      INIT(this,
++              .public = {
++                      .plugin = {
++                              .get_name = _get_name,
++                              .get_features = _get_features,
++                              .destroy = _destroy,
++                      },
++              },
++      );
++
++      return &this->public.plugin;
++}
++
+--- /dev/null
++++ b/src/libstrongswan/plugins/gmpdh/gmpdh_plugin.h
+@@ -0,0 +1,42 @@
++/*
++ * Copyright (C) 2008 Martin Willi
++ * Hochschule fuer Technik Rapperswil
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License as published by the
++ * Free Software Foundation; either version 2 of the License, or (at your
++ * option) any later version.  See <http://www.fsf.org/copyleft/gpl.txt>.
++ *
++ * This program is distributed in the hope that it will be useful, but
++ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
++ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
++ * for more details.
++ */
++
++/**
++ * @defgroup gmpdh_p gmpdh
++ * @ingroup plugins
++ *
++ * @defgroup gmpdh_plugin gmpdh_plugin
++ * @{ @ingroup gmpdh_p
++ */
++
++#ifndef GMPDH_PLUGIN_H_
++#define GMPDH_PLUGIN_H_
++
++#include <plugins/plugin.h>
++
++typedef struct gmpdh_plugin_t gmpdh_plugin_t;
++
++/**
++ * Plugin implementing asymmetric crypto algorithms using the GNU MP library.
++ */
++struct gmpdh_plugin_t {
++
++      /**
++       * implements plugin interface
++       */
++      plugin_t plugin;
++};
++
++#endif /** GMPDH_PLUGIN_H_ @}*/
index 77e5180050413c225157835c53b1e4910215bcec..0ec19c3fa3229b7c4e9ce984eea4ab4c1fa656ec 100644 (file)
@@ -7,9 +7,9 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=tgt
-PKG_VERSION:=1.0.53
-PKG_REV:=9764e0afd9a7115e356fc85569a780f9003c4eac
-PKG_RELEASE:=4
+PKG_VERSION:=1.0.61
+PKG_REV:=f13345e12f49e5bcae2cfd6c5c7d530b328753f0
+PKG_RELEASE:=1
 PKG_USE_MIPS16:=0
 
 PKG_SOURCE_PROTO:=git
diff --git a/net/tgt/patches/010-fallocate.patch b/net/tgt/patches/010-fallocate.patch
deleted file mode 100644 (file)
index 9d572d6..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
---- tgt-1.0.48.orig/usr/util.h 2014-06-04 15:03:53.000000000 +0300
-+++ tgt-1.0.48/usr/util.h      2014-06-04 15:17:48.548123039 +0300
-@@ -212,11 +212,6 @@
-  */
- static inline int unmap_file_region(int fd, off_t offset, off_t length)
- {
--#ifdef FALLOC_FL_PUNCH_HOLE
--      if (fallocate(fd, FALLOC_FL_KEEP_SIZE | FALLOC_FL_PUNCH_HOLE,
--                      offset, length) == 0)
--              return 0;
--#endif
-       return -1;
- }
index 2deb305c001d2246507e78dda0a68f2464acf490..c67d68542dc00606c127904ca18a6fca5339e281 100644 (file)
@@ -1,5 +1,7 @@
---- tgt-1.0.48.orig/usr/Makefile       2014-06-04 15:03:53.000000000 +0300
-+++ tgt-1.0.48/usr/Makefile    2014-06-04 15:17:56.373670618 +0300
+diff --git a/usr/Makefile b/usr/Makefile
+index 1fae7e7..b05b970 100644
+--- a/usr/Makefile
++++ b/usr/Makefile
 @@ -1,13 +1,13 @@
  sbindir ?= $(PREFIX)/sbin
  libdir ?= $(PREFIX)/lib/tgt
@@ -18,7 +20,7 @@
  
  TGTD_OBJS += $(addprefix iscsi/, conn.o param.o session.o \
                iscsid.o target.o chap.o sha1.o md5.o transport.o iscsi_tcp.o \
-@@ -25,8 +25,9 @@
+@@ -25,8 +25,9 @@ ifneq ($(SD_NOTIFY),)
  CFLAGS += -DUSE_SYSTEMD
  endif
  
@@ -30,8 +32,8 @@
  TGTD_OBJS += bs_aio.o
  LIBS += -laio
  endif
-@@ -55,7 +56,7 @@
- LIBS += -lsystemd-daemon
+@@ -55,7 +56,7 @@ ifneq ($(SD_NOTIFY),)
+ LIBS += -lsystemd
  endif
  
 -PROGRAMS += tgtd tgtadm tgtimg
@@ -39,7 +41,7 @@
  TGTD_OBJS += tgtd.o mgmt.o target.o scsi.o log.o driver.o util.o work.o \
                concat_buf.o parser.o spc.o sbc.o mmc.o osd.o scc.o smc.o \
                ssc.o libssc.o bs_rdwr.o bs_ssc.o \
-@@ -82,14 +83,8 @@
+@@ -82,14 +83,8 @@ tgtadm: $(TGTADM_OBJS)
  
  -include $(TGTADM_DEP)
  
index 4d84955b4447ff6cb6c5c3bbb8f0cf2b3df187bd..f606207d20b7cb00a20b4eedb9bbfdcde6ad7366 100644 (file)
@@ -1,3 +1,5 @@
+diff --git a/usr/tgtd.h b/usr/tgtd.h
+index d8b2ac1..c6eee54 100644
 --- a/usr/tgtd.h
 +++ b/usr/tgtd.h
 @@ -9,6 +9,10 @@
@@ -5,12 +7,14 @@
  #endif
  
 +#ifndef __WORDSIZE
-+#include <sys/user.h>
++#include <sys/reg.h>
 +#endif
 +
  struct concat_buf;
  
  #define NR_SCSI_OPCODES               256
+diff --git a/usr/util.h b/usr/util.h
+index 0e34c35..3e2e63b 100644
 --- a/usr/util.h
 +++ b/usr/util.h
 @@ -16,6 +16,10 @@
  #include <linux/types.h>
  
 +#ifndef __WORDSIZE
-+#include <sys/user.h>
++#include <sys/reg.h>
 +#endif
 +
  #include "be_byteshift.h"
  
  #define roundup(x, y) ((((x) + ((y) - 1)) / (y)) * (y))
---- a/usr/libssc.c
-+++ b/usr/libssc.c
-@@ -23,6 +23,7 @@
- #include <string.h>
- #include <unistd.h>
- #include <stdio.h>
-+#include <fcntl.h>
- #include "bs_ssc.h"
- #include "ssc.h"
- #include "be_byteshift.h"
diff --git a/net/u2pnpd/Makefile b/net/u2pnpd/Makefile
new file mode 100644 (file)
index 0000000..f859d3b
--- /dev/null
@@ -0,0 +1,63 @@
+#
+# Copyright (C) 2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=u2pnpd
+PKG_VERSION:=0.1
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
+PKG_SOURCE_URL:=https://github.com/mhei/u2pnpd/releases/download/v$(PKG_VERSION)
+PKG_MD5SUM:=a98089923d93803fa90d03a504c98b8e
+
+PKG_LICENSE:=GPL-2.0
+PKG_LICENSE_FILES:=COPYING
+
+PKG_MAINTAINER:=Michael Heimpold <mhei@heimpold.de>
+
+PKG_INSTALL:=1
+PKG_BUILD_PARALLEL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/u2pnpd
+  SECTION:=net
+  CATEGORY:=Network
+  TITLE:=Announce device via UPnP on the network
+  URL:=https://github.com/mhei/u2pnpd
+  DEPENDS:=+libupnp
+endef
+
+define Package/u2pnpd/description
+  This tools announces a device via UPnP on the local network, thus it is possible
+  to find it within the network neightboorhood of a well-known OS and the user
+  can easily double-click on an icon to open the web frontend of this device without
+  knowing the IP address.
+endef
+
+define Package/u2pnpd/install
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/u2pnpd $(1)/usr/bin/
+
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_BIN) ./files/u2pnpd.init $(1)/etc/init.d/u2pnpd
+
+       $(INSTALL_DIR) $(1)/etc/uci-defaults
+       $(INSTALL_DATA) ./files/u2pnpd.defaults $(1)/etc/uci-defaults/u2pnpd
+
+       $(INSTALL_DIR) $(1)/etc/config
+       $(INSTALL_CONF) ./files/u2pnpd.config $(1)/etc/config/u2pnpd
+endef
+
+define Package/u2pnpd/postinst
+#!/bin/sh
+[ -n "$${IPKG_INSTROOT}" ] || (. /etc/uci-defaults/u2pnpd) && rm -f /etc/uci-defaults/u2pnpd
+exit 0
+endef
+
+$(eval $(call BuildPackage,u2pnpd))
diff --git a/net/u2pnpd/files/u2pnpd.config b/net/u2pnpd/files/u2pnpd.config
new file mode 100644 (file)
index 0000000..8c0d561
--- /dev/null
@@ -0,0 +1,11 @@
+config u2pnpd
+#      option interface        br-lan
+#      option use_https        no
+#      option manufacturer     'OpenWrt'
+#      option manufacturerURL  'http://www.openwrt.org/'
+#      option modelDescription ''
+#      option modelName        'Generic'
+#      option modelNumber      ''
+#      option modelURL         ''
+#      option serialNumber     ''
+#      option uuid             ''
diff --git a/net/u2pnpd/files/u2pnpd.defaults b/net/u2pnpd/files/u2pnpd.defaults
new file mode 100644 (file)
index 0000000..322b0bc
--- /dev/null
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+uuid=$(cat /proc/sys/kernel/random/uuid)
+
+uci -q batch <<-EOF >/dev/null
+       set u2pnpd.@u2pnpd[0].uuid=$uuid
+       commit u2pnpd
+EOF
+
+exit 0
diff --git a/net/u2pnpd/files/u2pnpd.init b/net/u2pnpd/files/u2pnpd.init
new file mode 100644 (file)
index 0000000..01437fd
--- /dev/null
@@ -0,0 +1,62 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2015 OpenWrt.org
+
+START=50
+STOP=20
+
+SERVICE_DAEMONIZE=1
+SERVICE_PID_FILE=/var/run/u2pnpd.pid
+SERVICE_USE_PID=1
+SERVICE_WRITE_PID=1
+
+start_instance() {
+       local section="$1"
+       local enabled
+       local interface manufacturer manufacturerURL modelDescription
+       local modelName modelNumber modelURL serialNumber friendlyName
+       local uuid httpsURL
+       local i
+
+       config_get_bool enabled "$section" 'enabled' 1
+       [ "$enabled" -gt 0 ] || return 0
+
+       for i in interface httpsURL manufacturer manufacturerURL modelDescription \
+                modelName modelNumber modelURL serialNumber friendlyName uuid; do
+               config_get "$i" "$section" "$i"
+       done
+
+       [ -n "$interface" ] && SERVICE_PID_FILE="/var/run/u2pnpd.$interface.pid"
+
+       service_start /usr/bin/u2pnpd ${httpsURL:+-s} \
+           ${interface:+--interface="$interface"} \
+           ${manufacturer:+--manufacturer="$manufacturer"} \
+           ${manufacturerURL:+--manufacturerURL="$manufacturerURL"} \
+           ${modelDescription:+--modelDescription="$modelDescription"} \
+           ${modelName:+--modelName="$modelName"} \
+           ${modelNumber:+--modelNumber="$modelNumber"} \
+           ${modelURL:+--modelURL="$modelURL"} \
+           ${serialNumber:+--serialNumber="$serialNumber"} \
+           ${friendlyName:+--friendlyName="$friendlyName"} \
+           ${uuid:+--uuid="$uuid"}
+}
+
+stop_instance() {
+       local section="$1"
+       local interface
+
+       config_get interface "$section" 'interface'
+       [ -n "$interface" ] && SERVICE_PID_FILE="/var/run/u2pnpd.$interface.pid"
+
+       service_stop /usr/bin/u2pnpd
+       rm -f "$SERVICE_PID_FILE"
+}
+
+start() {
+       config_load 'u2pnpd'
+       config_foreach start_instance 'u2pnpd'
+}
+
+stop() {
+       config_load 'u2pnpd'
+       config_foreach stop_instance 'u2pnpd'
+}
index e39c3b2e324eaf706f1660138b54898d3f942400..ae346b1bdd01a6438265fb7e6bb40d5c12ac6770 100644 (file)
@@ -8,8 +8,8 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=unbound
-PKG_VERSION:=1.5.3
-PKG_RELEASE:=2
+PKG_VERSION:=1.5.6
+PKG_RELEASE:=1
 
 PKG_LICENSE:=BSD-3-Clause
 PKG_LICENSE_FILES:=LICENSE
@@ -17,7 +17,7 @@ PKG_MAINTAINER:=Michael Hanselmann <public@hansmi.ch>
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.unbound.net/downloads
-PKG_MD5SUM:=1e95fdcbaaf5dc87432d898006a5eb13
+PKG_MD5SUM:=691a34abd8e9257dd65b70f28326c1f0
 
 PKG_BUILD_DEPENDS:=libexpat
 PKG_BUILD_PARALLEL:=1
index 052da0c3b53be9bb1d009a4cca699f1a658e6df9..c6bcdf38cde63bec78e7450d771ff3e3503ddaf0 100644 (file)
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
 PKG_NAME:=vpnc
 PKG_REV:=550
 PKG_VERSION:=0.5.3.r$(PKG_REV)
-PKG_RELEASE:=3
+PKG_RELEASE:=4
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://svn.unix-ag.uni-kl.de/vpnc/trunk/
index 1186428af3b4dfc2807252092303d97d9fc79391..0a46770e484e3fa06b59c7b7129b45dea47f0a84 100644 (file)
  #endif
 --- a/sysdep.c
 +++ b/sysdep.c
-@@ -59,7 +59,9 @@
+@@ -59,6 +59,10 @@
  #if defined(__DragonFly__)
  #include <net/tun/if_tun.h>
  #elif defined(__linux__)
--#include <linux/if_tun.h>
-+# if defined(__GLIBC__) || defined(__UCLIBC__)
-+#  include <linux/if_tun.h>
++# if !defined(__GLIBC__) && !defined(__UCLIBC__)
++#  define _LINUX_IF_ETHER_H
++#  include <net/ethernet.h>
 +# endif
+ #include <linux/if_tun.h>
  #elif defined(__APPLE__)
  /* no header for tun */
- #elif defined(__CYGWIN__)
 --- a/config.c
 +++ b/config.c
 @@ -28,6 +28,7 @@
index ddc2bb1faee598c29604a828444ba8d7cccc27c9..591f29107b294ed5c67c69f40fbad91f588b032e 100644 (file)
@@ -8,8 +8,8 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=wifidog
-PKG_VERSION:=1.2.1
-PKG_RELEASE=2
+PKG_VERSION:=1.3.0
+PKG_RELEASE=1
 
 
 PKG_LICENSE:=GPL-2.0
@@ -22,7 +22,7 @@ PKG_LICENSE_FILES:=COPYING
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=git://github.com/wifidog/wifidog-gateway.git
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=1.2.1
+PKG_SOURCE_VERSION:=1.3.0
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
 
 PKG_FIXUP:=autoreconf
diff --git a/net/wifidog/patches/100-musl-compat.patch b/net/wifidog/patches/100-musl-compat.patch
deleted file mode 100644 (file)
index 599c1fe..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
---- a/libhttpd/protocol.c
-+++ b/libhttpd/protocol.c
-@@ -28,6 +28,7 @@
- #if defined(_WIN32)
- #else
-+#include <fcntl.h>
- #include <unistd.h>
- #include <sys/file.h>
- #endif
---- a/src/firewall.c
-+++ b/src/firewall.c
-@@ -35,7 +35,6 @@
- #include <pthread.h>
- #include <sys/wait.h>
- #include <sys/types.h>
--#include <sys/unistd.h>
- #include <string.h>
---- a/src/client_list.c
-+++ b/src/client_list.c
-@@ -31,9 +31,9 @@
- #include <syslog.h>
- #include <errno.h>
- #include <pthread.h>
-+#include <unistd.h>
- #include <sys/wait.h>
- #include <sys/types.h>
--#include <sys/unistd.h>
- #include <string.h>
---- a/src/util.c
-+++ b/src/util.c
-@@ -33,10 +33,10 @@
- #include <syslog.h>
- #include <errno.h>
- #include <pthread.h>
-+#include <unistd.h>
- #include <sys/wait.h>
- #include <sys/types.h>
- #include <sys/time.h>
--#include <sys/unistd.h>
- #include <netinet/in.h>
- #include <sys/ioctl.h>
- #include <arpa/inet.h>
index f46cec615840654d02accb19e76c4859c2338fab..91dcbfb037228b41e9e0c03334fe1c1f488d6065 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=xl2tpd
-PKG_VERSION:=devel-20150812
+PKG_VERSION:=devel-20150930
 PKG_RELEASE:=1
 PKG_MAINTAINER:=Yousong Zhou <yszhou4tech@gmail.com>
 PKG_LICENSE:=GPL-2.0
@@ -17,7 +17,7 @@ PKG_LICENSE_FILES:=LICENSE
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://github.com/xelerance/xl2tpd.git
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=5674a5835e9b89b7438917a380f3a6d68528fa3e
+PKG_SOURCE_VERSION:=5faece38704ae32063abe1d25e199c03e6f44669
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 
 PKG_INSTALL:=1
index f23e93dbbdfa68cc46159e1f8d1eebc650684399..f0a1ef01e0bd47569b6b0028aee1cbf6c71dca34 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=madplay
 PKG_VERSION:=0.15.2b
-PKG_RELEASE:=3
+PKG_RELEASE:=5
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@SF/mad \
@@ -19,19 +19,25 @@ PKG_LICENSE:=GPL-2.0+
 PKG_LICENSE_FILES:=COPYING
 PKG_MAINTAINER:=Simon Peter <probono@puredarwin.org>
 
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
+
 PKG_FIXUP:=autoreconf
-PKG_INSTALL:=1
 
 include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/nls.mk
 
-define Package/madplay
+define Package/madplay/default
   SECTION:=sound
   CATEGORY:=Sound
-  DEPENDS:=+libid3tag +libmad
-  TITLE:=MPEG audio player in fixed point
+  DEPENDS:=+libid3tag +libmad $(INTL_DEPENDS) $(2)
+  TITLE:=MPEG audio player in fixed point - $(1)
+  VARIANT:=$(1)
   URL:=http://sourceforge.net/projects/mad
 endef
 
+Package/madplay-alsa=$(call Package/madplay/default,alsa,+alsa-lib)
+Package/madplay=$(call Package/madplay/default,oss)
+
 define Package/madplay/description
        MAD is an MPEG audio decoder. It currently only supports the MPEG 1
        standard, but fully implements all three audio layers (Layer I, Layer II,
@@ -48,16 +54,32 @@ define Build/Configure
                --disable-experimental \
                --without-libiconv-prefix \
                --without-libintl-prefix \
-               --without-alsa \
                --without-esd \
                , \
                LIBS="-lz" \
        )
 endef
 
+ifeq ($(BUILD_VARIANT),alsa)
+       CONFIGURE_ARGS += \
+               --without-oss \
+               --with-alsa
+endif
+
+ifeq ($(BUILD_VARIANT),oss)
+       CONFIGURE_ARGS += \
+               --without-alsa
+endif
+
 define Package/madplay/install
        $(INSTALL_DIR) $(1)/usr/bin
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/madplay $(1)/usr/bin/
 endef
 
+define Package/madplay-alsa/install
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/madplay $(1)/usr/bin/
+endef
+
+$(eval $(call BuildPackage,madplay-alsa))
 $(eval $(call BuildPackage,madplay))
diff --git a/sound/madplay/patches/0001-switch-to-new-alsa-api.patch b/sound/madplay/patches/0001-switch-to-new-alsa-api.patch
new file mode 100644 (file)
index 0000000..60d7bd3
--- /dev/null
@@ -0,0 +1,173 @@
+Switch madplay to the new API. This is done thanks to a patch written
+by Micha Nelissen <micha@neli.hopto.org> and available at
+http://article.gmane.org/gmane.comp.audio.mad.devel/729.
+
+--- madplay-0.15.2b/audio_alsa.c       2008-10-18 15:10:16.000000000 +0200
++++ madplay-0.15.2b/audio_alsa.c.new   2008-10-18 15:03:27.000000000 +0200
+@@ -28,31 +28,30 @@
+
+ #include <errno.h>
+
+-#define ALSA_PCM_OLD_HW_PARAMS_API
+-#define ALSA_PCM_OLD_SW_PARAMS_API
+ #include <alsa/asoundlib.h>
+
+ #include <mad.h>
+
+ #include "audio.h"
+
+-char *buf     = NULL;
+-int paused    = 0;
++#define BUFFER_TIME_MAX     500000
+
+-int rate      = -1;
+-int channels  = -1;
+-int bitdepth  = -1;
+-int sample_size       = -1;
+-
+-int buffer_time               = 500000;
+-int period_time               = 100000;
+-char *defaultdev      = "plughw:0,0";
++unsigned char *buf  = NULL;
++int paused        = 0;
++
++unsigned int rate           = 0;
++unsigned int channels     = -1;
++unsigned int bitdepth     = -1;
++unsigned int sample_size    = -1;
++
++unsigned int buffer_time;
++unsigned int period_time;
++char *defaultdev          = "plughw:0,0";
+
+ snd_pcm_hw_params_t *alsa_hwparams;
+ snd_pcm_sw_params_t *alsa_swparams;
+
+-snd_pcm_sframes_t buffer_size;
+-snd_pcm_sframes_t period_size;
++snd_pcm_uframes_t buffer_size;
+
+ snd_pcm_format_t  alsa_format = -1;
+ snd_pcm_access_t  alsa_access = SND_PCM_ACCESS_MMAP_INTERLEAVED;
+@@ -66,14 +65,20 @@
+                snd_pcm_hw_params_t *params,
+                snd_pcm_access_t access)
+ {
+-      int err, dir;
+-      
++      int err;
++
+       /* choose all parameters */
+       err = snd_pcm_hw_params_any(handle,params);
+       if (err < 0) {
+               printf("Access type not available for playback: %s\n", snd_strerror(err));
+               return err;
+       }
++      /* set the access type */
++      err = snd_pcm_hw_params_set_access(handle, params, alsa_access);
++      if (err < 0) {
++              printf("Sample format not available for playback: %s\n", snd_strerror(err));
++              return err;
++      }
+       /* set the sample format */
+       err = snd_pcm_hw_params_set_format(handle, params, alsa_format);
+       if (err < 0) {
+@@ -87,29 +92,38 @@
+               return err;
+       }
+       /* set the stream rate */
+-      err = snd_pcm_hw_params_set_rate_near(handle, params, rate, 0);
++      err = snd_pcm_hw_params_set_rate(handle, params, rate, 0);
+       if (err < 0) {
+               printf("Rate %iHz not available for playback: %s\n", rate, snd_strerror(err));
+               return err;
+       }
+-      if (err != rate) {
+-              printf("Rate doesn't match (requested %iHz, get %iHz)\n", rate, err);
+-              return -EINVAL;
+-      }
++      err = snd_pcm_hw_params_get_buffer_time_max(params, &buffer_time, NULL);
++        if (err < 0) {
++                printf("Unable to retrieve buffer time: %s\n", snd_strerror(err));
++                return err;
++        }
++        if (buffer_time > BUFFER_TIME_MAX)
++                buffer_time = BUFFER_TIME_MAX;
+       /* set buffer time */
+-      err = snd_pcm_hw_params_set_buffer_time_near(handle, params, buffer_time, &dir);
++      err = snd_pcm_hw_params_set_buffer_time_near(handle, params, &buffer_time, 0);
+       if (err < 0) {
+               printf("Unable to set buffer time %i for playback: %s\n", buffer_time, snd_strerror(err));
+               return err;
+       }
+-      buffer_size = snd_pcm_hw_params_get_buffer_size(params);
++        if (period_time * 4 > buffer_time)
++                period_time = buffer_time / 4;
+       /* set period time */
+-      err = snd_pcm_hw_params_set_period_time_near(handle, params, period_time, &dir);
++      err = snd_pcm_hw_params_set_period_time_near(handle, params, &period_time, NULL);
+       if (err < 0) {
+               printf("Unable to set period time %i for playback: %s\n", period_time, snd_strerror(err));
+               return err;
+       }
+-      period_size = snd_pcm_hw_params_get_period_size(params, &dir);
++        /* retrieve buffer size */
++      err = snd_pcm_hw_params_get_buffer_size(params, &buffer_size);
++        if (err < 0) {
++                printf("Unable to retrieve buffer size: %s\n", snd_strerror(err));
++                return err;
++        }
+       /* write the parameters to device */
+       err = snd_pcm_hw_params(handle, params);
+       if (err < 0) {
+@@ -123,6 +137,7 @@
+ int set_swparams(snd_pcm_t *handle,
+                snd_pcm_sw_params_t *params)
+ {
++        unsigned int start_threshold;
+       int err;
+
+         /* get current swparams */
+@@ -136,13 +151,7 @@
+         if (err < 0) {
+                 printf("Unable to set start threshold mode for playback: %s\n", snd_strerror(err));
+                 return err;
+-                                                                                      }
+-        /* allow transfer when at least period_size samples can be processed */
+-        err = snd_pcm_sw_params_set_avail_min(handle, params, period_size);
+-        if (err < 0) {
+-                printf("Unable to set avail min for playback: %s\n", snd_strerror(err));
+-                return err;
+-                                                                                                      }
++      }
+         /* align all transfers to 1 samples */
+         err = snd_pcm_sw_params_set_xfer_align(handle, params, 1);
+         if (err < 0) {
+@@ -190,7 +199,7 @@
+       rate            = config->speed;
+
+       if ( bitdepth == 0 )
+-              config->precision = bitdepth = 32;
++              config->precision = bitdepth = 16;
+
+       switch (bitdepth)
+       {
+@@ -241,7 +250,7 @@
+               return -1;
+       }
+
+-      buf = malloc(buffer_size);
++      buf = malloc(buffer_size * sample_size);
+       if (buf == NULL) {
+               audio_error="unable to allocate output buffer table";
+               return -1;
+@@ -279,7 +288,7 @@
+ int play(struct audio_play *play)
+ {
+       int err, len;
+-      char *ptr;
++      unsigned char *ptr;
+
+       ptr = buf;
+       len = play->nsamples;
+
diff --git a/sound/madplay/patches/010-use_correct_shell.patch b/sound/madplay/patches/010-use_correct_shell.patch
new file mode 100644 (file)
index 0000000..c8eb2a3
--- /dev/null
@@ -0,0 +1,30 @@
+--- a/intl/Makefile.in
++++ b/intl/Makefile.in
+@@ -19,7 +19,7 @@
+ PACKAGE = @PACKAGE@
+ VERSION = @VERSION@
+-SHELL = /bin/sh
++SHELL = @SHELL@
+ srcdir = @srcdir@
+ top_srcdir = @top_srcdir@
+@@ -56,6 +56,7 @@ DEFS = -DLOCALEDIR=\"$(localedir)\" -DLO
+ -DENABLE_RELOCATABLE=1 -DIN_LIBRARY -DINSTALLDIR=\"$(libdir)\" -DNO_XMALLOC \
+ -Dset_relocation_prefix=libintl_set_relocation_prefix \
+ -Drelocate=libintl_relocate \
++-DINSTALLPREFIX=\"$(prefix)\" \
+ -DDEPENDS_ON_LIBICONV=1 @DEFS@
+ CPPFLAGS = @CPPFLAGS@
+ CFLAGS = @CFLAGS@
+--- a/po/Makefile.in.in
++++ b/po/Makefile.in.in
+@@ -13,7 +13,7 @@
+ PACKAGE = @PACKAGE@
+ VERSION = @VERSION@
+-SHELL = /bin/sh
++SHELL = @SHELL@
+ @SET_MAKE@
+ srcdir = @srcdir@
index 52e2228671156ef6b20505b2b25680187201b270..3c7e5a2248a68557d61f4e1aa8d7e05a9528404a 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=mpd
-PKG_VERSION:=0.19.10
-PKG_RELEASE:=2
+PKG_VERSION:=0.19.11
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=http://www.musicpd.org/download/mpd/0.19/
-PKG_MD5SUM:=da4bc3e47afd0faf9e7a67168e012102
+PKG_MD5SUM:=78935f6c464b67e19b4dc65bdb80319e
 PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
 
 PKG_LICENSE:=GPL-2.0
diff --git a/sound/mpd/patches/100-musl_gcc5_fixes.patch b/sound/mpd/patches/100-musl_gcc5_fixes.patch
new file mode 100644 (file)
index 0000000..8795cc6
--- /dev/null
@@ -0,0 +1,50 @@
+Add a patch from the Alpine Linux project to fix a musl build issue with gcc 5: 
+
+Problem has been reported upstream and closed with WONTFIX:
+http://bugs.musicpd.org/view.php?id=4387
+http://bugs.musicpd.org/view.php?id=4110
+
+however...
+
+POSIX does not permit using PTHREAD_COND_INITIALIZER except for static
+initialization, and certainly does not permit using it as a value
+
+POSIX does not specify the type of the object (it's opaque) so if
+there are any types for which their code would be invalid C++, then their
+code is invalid
+
+Volatile in the type is necessary. without that, LTO can break the code.
+
+--- a/src/notify.hxx
++++ b/src/notify.hxx
+@@ -28,7 +28,7 @@ struct notify {
+       Cond cond;
+       bool pending;
+-#if !defined(WIN32) && !defined(__NetBSD__) && !defined(__BIONIC__)
++#if defined(__GLIBC__)
+       constexpr
+ #endif
+       notify():pending(false) {}
+--- a/src/thread/PosixCond.hxx
++++ b/src/thread/PosixCond.hxx
+@@ -41,7 +41,7 @@ class PosixCond {
+       pthread_cond_t cond;
+ public:
+-#if defined(__NetBSD__) || defined(__BIONIC__)
++#if !defined(__GLIBC__)
+       /* NetBSD's PTHREAD_COND_INITIALIZER is not compatible with
+          "constexpr" */
+       PosixCond() {
+--- a/src/thread/PosixMutex.hxx
++++ b/src/thread/PosixMutex.hxx
+@@ -41,7 +41,7 @@ class PosixMutex {
+       pthread_mutex_t mutex;
+ public:
+-#if defined(__NetBSD__) || defined(__BIONIC__)
++#if !defined(__GLIBC__)
+       /* NetBSD's PTHREAD_MUTEX_INITIALIZER is not compatible with
+          "constexpr" */
+       PosixMutex() {
index 2c94c262c86ac6da486a68549a1082328f230e2f..69dac9f3da46abd11d84683a56b7765fc1d04093 100644 (file)
@@ -1,6 +1,6 @@
 --- a/src/decoder/plugins/FfmpegDecoderPlugin.cxx
 +++ b/src/decoder/plugins/FfmpegDecoderPlugin.cxx
-@@ -765,6 +765,7 @@ static const char *const ffmpeg_mime_typ
+@@ -774,6 +774,7 @@ static const char *const ffmpeg_mime_typ
        "audio/qcelp",
        "audio/vorbis",
        "audio/vorbis+ogg",
index 15c51f898d3442c674f6e21dfdf1c39213b06ed0..62a4e59f73ea8d9eeab09b5c9ec0d2d3864a33c9 100644 (file)
@@ -1,6 +1,6 @@
 --- a/src/decoder/plugins/FfmpegDecoderPlugin.cxx
 +++ b/src/decoder/plugins/FfmpegDecoderPlugin.cxx
-@@ -458,6 +458,13 @@ ffmpeg_probe(Decoder *decoder, InputStre
+@@ -467,6 +467,13 @@ ffmpeg_probe(Decoder *decoder, InputStre
  
        unsigned char buffer[BUFFER_SIZE];
        size_t nbytes = decoder_read(decoder, is, buffer, BUFFER_SIZE);
index 2eeff44cfc71dcf09c8a8e895a7514b1a9bcd656..0b3bda3006b51a205507475da96df22016175b4a 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=mpg123
 PKG_VERSION:=1.22.3
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=http://www.mpg123.de/download/
@@ -43,7 +43,7 @@ define Package/mpg123
   SECTION:=sound
   CATEGORY:=Sound
   TITLE:=fast console mpeg audio player
-  DEPENDS+=+libmpg123 +alsa-lib +libsdl +libpthread
+  DEPENDS+=+libmpg123 +alsa-lib
 endef
 
 define Build/Configure
@@ -51,6 +51,7 @@ define Build/Configure
                --enable-shared \
                --enable-static \
                --with-cpu=generic_nofpu \
+               --with-default-audio=alsa \
        )
 endef
 
@@ -86,7 +87,8 @@ endef
 define Package/mpg123/install
        $(INSTALL_DIR) $(1)/usr/bin
        $(INSTALL_BIN) \
-               $(PKG_INSTALL_DIR)/usr/bin/mpg123 \
+               $(PKG_INSTALL_DIR)/usr/bin/mpg123{,-id3dump,-strip} \
+               $(PKG_INSTALL_DIR)/usr/bin/out123 \
                $(1)/usr/bin
 
        $(INSTALL_DIR) $(1)/usr/lib/mpg123
index 0c6689454292aa1ee2ac61794ba29bd45a45516e..7fb48a9cdf18437357f7ae07734eeda561b30b88 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=pianod
-PKG_VERSION:=173
-PKG_RELEASE:=3
+PKG_VERSION:=174
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://deviousfish.com/Downloads/pianod/
-PKG_MD5SUM:=be0cec19ea6df1c4bc6c1cac8e253445
+PKG_MD5SUM:=cca2143e4a5301dea8c0cb9fcbd20881
 
 PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
 
diff --git a/sound/pianod/patches/005-Fix_IPV6_socket_handling.patch b/sound/pianod/patches/005-Fix_IPV6_socket_handling.patch
deleted file mode 100644 (file)
index 883495a..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
---- a/src/libwaitress/waitress.c
-+++ b/src/libwaitress/waitress.c
-@@ -805,34 +805,37 @@ static WaitressReturn_t WaitressConnect
-                       int pollres;
-                       /* we need shorter timeouts for connect() */
--                      fcntl (sock, F_SETFL, O_NONBLOCK);
-+                      pollres = fcntl (sock, F_SETFL, O_NONBLOCK);
-+                      assert (pollres != -1);
--                      /* increase socket receive buffer */
--                      const int sockopt = 256*1024;
--                      setsockopt (sock, SOL_SOCKET, SO_RCVBUF, &sockopt,
--                                      sizeof (sockopt));
--
--                      /* non-blocking connect will return immediately */
--                      connect (sock, gacurr->ai_addr, gacurr->ai_addrlen);
--
--                      pollres = WaitressPollLoop (sock, POLLOUT, waith->timeout);
--                      if (pollres == 0) {
--                              ret = WAITRESS_RET_TIMEOUT;
--                      } else if (pollres == -1) {
--                              ret = WAITRESS_RET_ERR;
--                      } else {
--                              /* check connect () return value */
--                              socklen_t pollresSize = sizeof (pollres);
--                              getsockopt (sock, SOL_SOCKET, SO_ERROR, &pollres,
--                                              &pollresSize);
--                              if (pollres != 0) {
--                                      ret = WAITRESS_RET_CONNECT_REFUSED;
-+                      if (connect (sock, gacurr->ai_addr, gacurr->ai_addrlen) != -1) {
-+                              /* working */
-+                              waith->request.sockfd = sock;
-+                              break;
-+                      } else if (errno == EINPROGRESS) {
-+                              /* wait for connect to succeed */
-+                              pollres = WaitressPollLoop (sock, POLLOUT, waith->timeout);
-+                              if (pollres == 0) {
-+                                      ret = WAITRESS_RET_TIMEOUT;
-+                              } else if (pollres == -1) {
-+                                      ret = WAITRESS_RET_ERR;
-                               } else {
--                                      /* this one is working */
--                                      waith->request.sockfd = sock;
--                                      break;
-+                                      /* check connect () return value */
-+                                      socklen_t pollresSize = sizeof (pollres);
-+                                      getsockopt (sock, SOL_SOCKET, SO_ERROR, &pollres,
-+                                                      &pollresSize);
-+                                      if (pollres != 0) {
-+                                              ret = WAITRESS_RET_CONNECT_REFUSED;
-+                                      } else {
-+                                              /* this one is working */
-+                                              waith->request.sockfd = sock;
-+                                              break;
-+                                      }
-                               }
-+                      } else {
-+                              ret = WAITRESS_RET_ERR;
-                       }
-+
-                       close (sock);
-               }
-       }
---- a/src/libfootball/fb_service.c
-+++ b/src/libfootball/fb_service.c
-@@ -111,6 +111,8 @@ static bool fb_setup_socket (FB_SERVICE
-               service->socket [which] = 0;
-       } else {
-         fb_perror ("socket");
-+        // Element must be zero (not -1)
-+        service->socket [which] = 0;
-       };
-       return false;
- }
diff --git a/sound/pianod/patches/005-Remove_svn_version_query.patch b/sound/pianod/patches/005-Remove_svn_version_query.patch
new file mode 100644 (file)
index 0000000..0ffd3a6
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -3,7 +3,7 @@
+ AC_PREREQ([2.69])
+ AC_INIT([pianod],
+-      m4_esyscmd([svn info http://svn.deviousfish.com/pianod | grep Revision: | awk '{print $2}' | tr -d '\n']),
++      174-OpenWrt,
+       [pianod@lists.deviousfish.com],
+       ,[http://deviousfish.com/pianod])
+ AM_INIT_AUTOMAKE([foreign -Wall -Werror])
index 228710b05637ced1f85eeee552aa59b085769f02..25569ccc229d13568c1ac9553168d1ec2df8b646 100644 (file)
@@ -19,7 +19,7 @@
  
 --- a/src/libwaitress/waitress.c
 +++ b/src/libwaitress/waitress.c
-@@ -918,14 +918,14 @@ static WaitressReturn_t WaitressSendRequ
+@@ -922,14 +922,14 @@ static WaitressReturn_t WaitressSendRequ
        if (WaitressProxyEnabled (waith) && !waith->url.tls) {
                snprintf (buf, WAITRESS_BUFFER_SIZE,
                        "%s http://%s:%s/%s HTTP/" WAITRESS_HTTP_VERSION "\r\n"
index b2a657645b0b06a57c85d5c32eb3c39c9ac7e2ec..ad27e9b6a1ff977eb8eb46f0d0c7a51a171c1e1a 100644 (file)
        return WAITRESS_RET_OK;
  }
  
-@@ -876,6 +947,12 @@ static WaitressReturn_t WaitressConnect
+@@ -880,6 +951,12 @@ static WaitressReturn_t WaitressConnect
                        }
                }
  
                /* Ignore return code as connection will likely still succeed */
                gnutls_server_name_set (waith->request.tlsSession, GNUTLS_NAME_DNS,
                                waith->url.host, strlen (waith->url.host));
-@@ -883,14 +960,15 @@ static WaitressReturn_t WaitressConnect
+@@ -887,14 +964,15 @@ static WaitressReturn_t WaitressConnect
                if (gnutls_handshake (waith->request.tlsSession) != GNUTLS_E_SUCCESS) {
                        return WAITRESS_RET_TLS_HANDSHAKE_ERR;
                }
        }
  
        return WAITRESS_RET_OK;
-@@ -1116,6 +1194,21 @@ WaitressReturn_t WaitressFetchCall (Wait
+@@ -1120,6 +1198,21 @@ WaitressReturn_t WaitressFetchCall (Wait
        waith->request.contentLengthKnown = false;
  
        if (waith->url.tls) {
                gnutls_init (&waith->request.tlsSession, GNUTLS_CLIENT);
                gnutls_set_default_priority (waith->request.tlsSession);
  
-@@ -1133,6 +1226,7 @@ WaitressReturn_t WaitressFetchCall (Wait
+@@ -1137,6 +1230,7 @@ WaitressReturn_t WaitressFetchCall (Wait
                                WaitressPollRead);
                gnutls_transport_set_push_function (waith->request.tlsSession,
                                WaitressPollWrite);
        }
  
        /* buffer is required for connect already */
-@@ -1144,15 +1238,22 @@ WaitressReturn_t WaitressFetchCall (Wait
+@@ -1148,15 +1242,22 @@ WaitressReturn_t WaitressFetchCall (Wait
                if ((wRet = WaitressSendRequest (waith)) == WAITRESS_RET_OK) {
                        wRet = WaitressReceiveResponse (waith);
                }
index a4a449b7cccae92579d634e9c8e41b0b5e508f77..62836b3a09f31049e328952765dc00761163d967 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=pulseaudio
-PKG_VERSION:=6.0
-PKG_RELEASE:=2
+PKG_VERSION:=7.1
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=http://freedesktop.org/software/pulseaudio/releases/
-PKG_MD5SUM:=b691e83b7434c678dffacfa3a027750e
+PKG_MD5SUM:=9d0a9817b632cac8e3f3834d7eb1c99d
 PKG_LICENSE:=LGPL-2.1+
 PKG_LICENSE_FILES:=GPL LICENSE
 
index 1262b941e62f29cc8cc49d2d90a283e9e491f6cf..005d21fcaf7dcdb0f4154451795327a1f58f70ee 100644 (file)
@@ -1,7 +1,7 @@
 #!/bin/sh /etc/rc.common
 # Copyright (C) 2011 OpenWrt.org
 
-START=65
+START=99
 STOP=65
 
 USE_PROCD=1
diff --git a/sound/pulseaudio/patches/002-xlocale.patch b/sound/pulseaudio/patches/002-xlocale.patch
new file mode 100644 (file)
index 0000000..ef3ee91
--- /dev/null
@@ -0,0 +1,12 @@
+diff --git a/pulsecore/core-util.c b/pulsecore/core-util.c
+index ba31221..824368a 100644
+--- a/src/pulsecore/core-util.c
++++ b/src/pulsecore/core-util.c
+@@ -54,7 +54,6 @@
+ #ifdef HAVE_STRTOD_L
+ #include <locale.h>
+-#include <xlocale.h>
+ #endif
+ #ifdef HAVE_SCHED_H
index 74a3fd781b3936b70cb6f6f755032e6c0c57565e..81ba7b6984a859b19ced34fbfbb979d8d9bfc339 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2015 OpenWrt.org
+# Copyright (C) 2014-2015 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=shairplay
-PKG_VERSION:=2014-10-27
-PKG_RELEASE:=2
+PKG_VERSION:=2015-09-29
+PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=git://github.com/juhovh/shairplay.git
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=64d59e3087f829006d091fa0d114efb50972a2bf
+PKG_SOURCE_VERSION:=498bc5bcdd305e04721f94a04b9f26a7da72673f
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
 PKG_MAINTAINER:=Álvaro Fernández Rojas <noltari@gmail.com>
 
index 7764aabc64b1c5b0e0b05bb9f77dca94ee8dc6b8..4db204eb7dba87faf9f5d3712b5a93b1a96df10d 100644 (file)
@@ -1,24 +1,11 @@
 --- a/src/lib/alac/alac.c
 +++ b/src/lib/alac/alac.c
-@@ -29,11 +29,7 @@
+@@ -29,7 +29,7 @@
   *
   */
  
--#ifdef __BIG_ENDIAN__
--static const int host_bigendian = 1;
--#else
 -static const int host_bigendian = 0;
--#endif
-+static int host_bigendian = 0;
++#define host_bigendian (htonl(42) == 42)
  
  #include <stdio.h>
  #include <stdlib.h>
-@@ -1181,6 +1177,8 @@ alac_file *create_alac(int samplesize, i
- {
-     alac_file *newfile = malloc(sizeof(alac_file));
-+    host_bigendian = (htonl(42) == 42);
-+
-     newfile->samplesize = samplesize;
-     newfile->numchannels = numchannels;
-     newfile->bytespersample = (samplesize / 8) * numchannels;
index cd60f97d3aa079364ffd7bffa390f063412a49bf..8f60ec0e540c9c1ddff1d53c84f148d1eeac822b 100644 (file)
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=shairport-sync
-PKG_VERSION:=2.1.15
-PKG_RELEASE:=1
+PKG_VERSION:=2.6
+PKG_RELEASE:=2
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=git://github.com/mikebrady/shairport-sync.git
 PKG_SOURCE_VERSION:=$(PKG_VERSION)
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
+PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>, \
+               Mike Brady <mikebrady@eircom.net>
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_SOURCE_SUBDIR)
 
 PKG_LICENSE:=MIT
 PKG_LICENSE_FILES:=COPYING LICENSES shairport.c
 
 PKG_BUILD_PARALLEL:=1
-
 PKG_FIXUP:=autoreconf
 
 include $(INCLUDE_DIR)/package.mk
 
+define Package/shairport-sync/default
+  SECTION:=sound
+  CATEGORY:=Sound
+  TITLE:=AirPlay compatible audio player
+  DEPENDS:=@AUDIO_SUPPORT +libpthread +alsa-lib +libconfig +libdaemon +libpopt
+  URL:=http://github.com/mikebrady/shairport-sync
+endef
+
+define Package/shairport-sync-openssl
+  $(Package/shairport-sync/default)
+  TITLE+= (openssl)
+  DEPENDS+= +PACKAGE_shairport-sync-openssl:libopenssl +libavahi-client +libsoxr
+  VARIANT:=openssl
+endef
+
+define Package/shairport-sync-polarssl
+  $(Package/shairport-sync/default)
+  TITLE+= (polarssl)
+  DEPENDS+= +PACKAGE_shairport-sync-polarssl:libpolarssl +libavahi-client +libsoxr
+  VARIANT:=polarssl
+  DEFAULT_VARIANT:=1
+endef
+
+define Package/shairport-sync-mini
+  $(Package/shairport-sync/default)
+  TITLE+= (minimal)
+  DEPENDS+= +libpolarssl
+  VARIANT:=mini
+endef
+
+define Package/shairport-sync/default/description
+  Shairport Sync plays audio from iTunes and AirPlay sources, including
+  iOS devices, Quicktime Player and third party sources such as forkedDaapd.
+  Audio played by a Shairport Sync-powered device stays synchronised with the source
+  and hence with similar devices playing the same source.
+
+  Shairport Sync does not support AirPlay video or photo streaming.
+  Ensure Kernel Modules > Sound Support > kmod-sound-core is selected.
+  Also select kmod-usb-audio if you want to use USB-connected sound cards.
+endef
+Package/shairport-sync-openssl/description = $(Package/shairport-sync/default/description)
+Package/shairport-sync-polarssl/description = $(Package/shairport-sync/default/description)
+
+define Package/shairport-sync-mini/description
+  $(Package/shairport-sync/default/description)
+
+  Minimal version uses PolarSSL and does not include libsoxr and avahi support.
+endef
+
 CONFIGURE_ARGS+= \
        --with-alsa \
-       --with-avahi \
-       --with-soxr \
-       --with-ssl=openssl
+       --with-metadata
 
+ifeq ($(BUILD_VARIANT),openssl)
+  CONFIGURE_ARGS+= --with-ssl=openssl
+endif
 
-define Package/shairport-sync
-  SECTION:=sound
-  CATEGORY:=Sound
-  TITLE:=iPhone/iTunes compatible audio player
-  DEPENDS:= +libpthread +libopenssl +libavahi-client +alsa-lib +libdaemon +libsoxr +libpopt
-  MAINTAINER:=Mike Brady <mikebrady@eircom.net>
-endef
+ifeq ($(BUILD_VARIANT),polarssl)
+  CONFIGURE_ARGS+= --with-ssl=polarssl
+endif
 
-define Package/shairport-sync/description
-  Shairport Sync is server software that implements the Apple-originated RAOP protocol for
-  playback of audio from a compatible remote client such as the iPhone, iTunes, Apple TV, Quicktime Player or forked-daapd.
-  Shairport Sync implements audio synchronisation, supporting multi-room use.
-  Shairport Sync supports audio only.
+ifeq ($(BUILD_VARIANT),mini)
+  CONFIGURE_ARGS+= --with-ssl=polarssl --with-tinysvcmdns
+else
+  CONFIGURE_ARGS+= --with-avahi --with-soxr
+endif
+
+define Package/shairport-sync/default/conffiles
+/etc/shairport-sync.conf
 endef
 
-define Package/shairport-sync/install
+Package/shairport-sync-openssl/conffiles = $(Package/shairport-sync/default/conffiles)
+Package/shairport-sync-polarssl/conffiles = $(Package/shairport-sync/default/conffiles)
+Package/shairport-sync-mini/conffiles = $(Package/shairport-sync/default/conffiles)
+
+define Package/shairport-sync/default/install
        $(INSTALL_DIR) $(1)/usr/bin
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/shairport-sync $(1)/usr/bin/
+       $(INSTALL_DIR) $(1)/etc
+       $(INSTALL_DATA) $(PKG_BUILD_DIR)/scripts/shairport-sync.conf $(1)/etc/shairport-sync.conf
        $(INSTALL_DIR) $(1)/etc/init.d
        $(INSTALL_BIN) ./files/shairport-sync.init $(1)/etc/init.d/shairport-sync
        $(INSTALL_DIR) $(1)/etc/config
        $(INSTALL_DATA) ./files/shairport-sync.config $(1)/etc/config/shairport-sync
 endef
 
-$(eval $(call BuildPackage,shairport-sync))
+Package/shairport-sync-openssl/install = $(Package/shairport-sync/default/install)
+Package/shairport-sync-polarssl/install = $(Package/shairport-sync/default/install)
+Package/shairport-sync-mini/install = $(Package/shairport-sync/default/install)
+
+$(eval $(call BuildPackage,shairport-sync-openssl))
+$(eval $(call BuildPackage,shairport-sync-polarssl))
+$(eval $(call BuildPackage,shairport-sync-mini))
index f72c7854919b5e93c33bd1ae28738cf6ebc8e6d4..0640bde3b88827e8b17580efe8154cc0e238cb50 100644 (file)
@@ -1,35 +1,54 @@
-# Uncomment the stanza you want, and make sure to comment out the others, especially duplicate options.
+# Use your own config file
+config shairport-sync 'shairport_sync_file'
+       option disabled '1'
+       option respawn '1'
+       option conf_custom '1'
+       option conf_file '/etc/shairport-sync.conf'
 
-#Arguments and defaults are as follows
-config shairport-sync main
-#       option name 'Shairport Sync'           #default name, "Shairport Sync on %d"
-#       option device default                  #default soundcard, volume control by software
-                                               #(Troubleshooting hint: make sure the soundcard's volume is turned up fully -- use alsamixer or amixer)
-#       option airplaylatency 88200
-#       option ituneslatency 99400
-#       option port 5000
-#       option stuffing basic                  #options are 'basic' or 'soxr' if shairport-sync was compiled with soxr support
-#       option awaitactioncompletion false     #[don't] wait until beforeaction or afteraction completes
-#       option beforeaction <action>           #action must be a fully qualified program with no arguments. Default no action.
-#       option afteraction <action>            #action must be a fully qualified program with no arguments. Default no action.
-#       option devicetype <devicetype>
-#       option volumecontrolname <name>
-
-#Here are some sample stanzas:
-
-#For Raspberry Pi using the built-in soundcard for the headphone jack
-#       option device 'hw:0'
-#       option devicetype hardware
-#       option volumecontrolname Master
-
-#For Raspberry Pi with the "3D Sound" USB Soundcard
-#        option name 'Pi'
-#        option device 'hw:1'
-#        option devicetype hardware
-#        option volumecontrolname Speaker
-
-#For Raspberry Pi with the first generation iMic or the Topping TP30 Class T Digital Mini Amplifier
-#        option name 'Kitchen'
-#        option device 'hw:1'
-#        option devicetype hardware
-#        option volumecontrolname PCM
+# Use OpenWrt UCI config
+config shairport-sync 'shairport_sync'
+       option disabled '1'
+       option respawn '1'
+       # General
+       option name 'Shairport-Sync'
+       option password ''
+       option interpolation '' # basic/soxr
+       option output_backend '' # alsa/pipe/stdout/ao/dummy/pulse/sndio
+       option mdns_backend '' # avahi/external-avahi/dns-sd/external-dns-sd/tinysvcmdns
+       option port '' # 5000
+       option udp_port_base '' # 6001
+       option udp_port_range '' # 100
+       option statistics '' # no/yes
+       option drift '' # 88
+       option resync_threshold '' # 2205
+       option log_verbosity '' # 0/1/2/3
+       option ignore_volume_control '' # no/yes
+       option volume_range_db '' # 30 to 150
+       # Latencies
+       option latencies_default '' # 88200
+       option latencies_itunes '' # 99400
+       option latencies_airplay '' # 88200
+       option latencies_forked_daapd '' # 99400
+       # Metadata
+       option metadata_enabled '' # no/yes
+       option metadata_cover_art '' # no/yes
+       option metadata_pipe_name '' # /tmp/shairport-sync-metadata
+       # Session Control
+       option sesctl_run_before_play_begins '' # /etc/shairport-sync-start.sh
+       option sesctl_run_after_play_ends '' # /etc/shairport-sync-stop.sh
+       option sesctl_wait_for_completion '' # no/yes
+       option sesctl_session_interruption '' # no/yes
+       option sesctl_session_timeout '' # 120
+       # ALSA
+       option alsa_output_device '' # default
+       option alsa_mixer_control_name '' # PCM
+       option alsa_mixer_device '' # default
+       option alsa_latency_offset '' # 0
+       option alsa_buffer_length '' # 6615
+       # Pipe
+       option pipe_name '' # /tmp/shairport-sync-audio
+       option pipe_latency_offset '' # 0
+       option pipe_buffer_length '' # 44100
+       # Stdout
+       option stdout_latency_offset '' # 0
+       option stdout_buffer_length '' # 44100
old mode 100755 (executable)
new mode 100644 (file)
index f49e1e3..ac4b589
 #!/bin/sh /etc/rc.common
+# Copyright (C) 2015 OpenWrt.org
 
-NAME='shairport-sync'
 START=99
-
 USE_PROCD=1
 
-append_arg() {
+append_num() {
        local cfg="$1"
-       local var="$2"
-       local opt="$3"
-       local def="$4"
+       local file="$2"
+       local var="$3"
+       local opt="$4"
+       local def="$5"
        local val
 
        config_get val "$cfg" "$var"
-       [ -n "$val" -o -n "$def" ] && procd_append_param command $opt "${val:-$def}"
+       [ -n "$val" -o -n "$def" ] && echo -e "\t$opt = ${val:-$def};" >> $file
 }
-
-append_bool() {
+append_str() {
        local cfg="$1"
-       local var="$2"
-       local opt="$3"
-       local def="$4"
+       local file="$2"
+       local var="$3"
+       local opt="$4"
+       local def="$5"
        local val
 
-       config_get_bool val "$cfg" "$var" "$def"
-       [ "$val" = 1 ] && procd_append_param command "$opt"
+       config_get val "$cfg" "$var"
+       [ -n "$val" -o -n "$def" ] && echo -e "\t$opt = \"${val:-$def}\";" >> $file
 }
 
-start_shairport_service() {
+start_instance() {
        local cfg=$1
-       local stuffing
-        local device
+       local conf_custom conf_file aux
+
+       config_get_bool aux "$cfg" 'disabled' '0'
+       [ "$aux" = 1 ] && return 1
+
+       config_get_bool conf_custom "$cfg" 'conf_custom' '0'
+       config_get conf_file "$cfg" "conf_file"
+       if [ $conf_custom -ne 1 ] && [ ! -n "$conf_file" ]; then
+               mkdir -p /var/etc
+               conf_file="/var/etc/shairport-sync-${cfg}.conf"
+
+               echo -e "// Automatically generated from UCI config\n" > $conf_file
+
+               # General
+               echo -e "general =" >> $conf_file
+               echo -e "{" >> $conf_file
+               append_str "$cfg" "$conf_file" name "name"
+               append_str "$cfg" "$conf_file" password "password"
+               append_str "$cfg" "$conf_file" interpolation "interpolation"
+               append_str "$cfg" "$conf_file" output_backend "output_backend"
+               append_str "$cfg" "$conf_file" mdns_backend "mdns_backend"
+               append_num "$cfg" "$conf_file" port "port"
+               append_num "$cfg" "$conf_file" udp_port_base "udp_port_base"
+               append_num "$cfg" "$conf_file" udp_port_range "udp_port_range"
+               append_str "$cfg" "$conf_file" statistics "statistics"
+               append_num "$cfg" "$conf_file" drift "drift"
+               append_num "$cfg" "$conf_file" resync_threshold "resync_threshold"
+               append_num "$cfg" "$conf_file" log_verbosity "log_verbosity"
+               append_str "$cfg" "$conf_file" ignore_volume_control "ignore_volume_control"
+               append_num "$cfg" "$conf_file" volume_range_db "volume_range_db"
+               echo -e "};\n" >> $conf_file
+
+               # Latencies
+               echo -e "latencies =" >> $conf_file
+               echo -e "{" >> $conf_file
+               append_num "$cfg" "$conf_file" latencies_default "default"
+               append_num "$cfg" "$conf_file" latencies_itunes "itunes"
+               append_num "$cfg" "$conf_file" latencies_airplay "airplay"
+               append_num "$cfg" "$conf_file" latencies_forked_daapd "forkedDaapd"
+               echo -e "};\n" >> $conf_file
+
+               # Metadata
+               echo -e "metadata =" >> $conf_file
+               echo -e "{" >> $conf_file
+               append_str "$cfg" "$conf_file" metadata_enabled "enabled"
+               append_str "$cfg" "$conf_file" metadata_cover_art "include_cover_art"
+               append_str "$cfg" "$conf_file" metadata_pipe_name "pipe_name"
+               echo -e "};\n" >> $conf_file
+
+               # Session control
+               echo -e "sessioncontrol =" >> $conf_file
+               echo -e "{" >> $conf_file
+               append_str "$cfg" "$conf_file" sesctl_run_before_play_begins "run_this_before_play_begins"
+               append_str "$cfg" "$conf_file" sesctl_run_after_play_ends "run_this_after_play_ends"
+               append_str "$cfg" "$conf_file" sesctl_wait_for_completion "wait_for_completion"
+               append_str "$cfg" "$conf_file" sesctl_session_interruption "allow_session_interruption"
+               append_num "$cfg" "$conf_file" sesctl_session_timeout "session_timeout"
+               echo -e "};\n" >> $conf_file
+
+               # Alsa audio back end
+               echo -e "alsa =" >> $conf_file
+               echo -e "{" >> $conf_file
+               append_str "$cfg" "$conf_file" alsa_output_device "output_device"
+               append_str "$cfg" "$conf_file" alsa_mixer_control_name "mixer_control_name"
+               append_str "$cfg" "$conf_file" alsa_mixer_device "mixer_device"
+               append_num "$cfg" "$conf_file" alsa_latency_offset "audio_backend_latency_offset"
+               append_num "$cfg" "$conf_file" alsa_buffer_length "audio_backend_buffer_desired_length"
+               echo -e "};\n" >> $conf_file
+
+               # Pipe audio back end
+               echo -e "pipe =" >> $conf_file
+               echo -e "{" >> $conf_file
+               append_str "$cfg" "$conf_file" pipe_name "name"
+               append_num "$cfg" "$conf_file" pipe_latency_offset "audio_backend_latency_offset"
+               append_num "$cfg" "$conf_file" pipe_buffer_length "audio_backend_buffer_desired_length"
+               echo -e "};\n" >> $conf_file
+
+               # Stdout audio back end
+               echo -e "stdout =" >> $conf_file
+               echo -e "{" >> $conf_file
+               append_num "$cfg" "$conf_file" stdout_latency_offset "audio_backend_latency_offset"
+               append_num "$cfg" "$conf_file" stdout_buffer_length "audio_backend_buffer_desired_length"
+               echo -e "};\n" >> $conf_file
+       fi
 
        procd_open_instance
 
-       procd_set_param command /usr/bin/$NAME
-
-       append_arg "$cfg" name "-a"
-       append_arg "$cfg" port "-p"
-       append_arg "$cfg" airplaylatency "-A"
-       append_arg "$cfg" ituneslatency "-i"
-
-        config_get stuffing "$cfg" stuffing ""
-
-       if [ -n "$stuffing" ] ; then
-                case "x$stuffing" in
-                        ( "xbasic" ) procd_append_param command -S basic ;;
-                        ( "xsoxr" ) procd_append_param command -S soxr ;;
-                        ( * ) logger "bad argument for -S option -- should be \"basic\" or \"soxr\"" ;;
-                esac
-        fi
-
-       append_arg "$cfg" beforeaction "-B"
-       append_arg "$cfg" afteraction "-E"
-       append_bool "$cfg" awaitactioncompletion "-w"
-
-        config_get device "$cfg" device ""
-       if [ -n "$device" ] ; then
-               procd_append_param command "--"
-               append_arg "$cfg" device "-d"
-               append_arg "$cfg" devicetype "-t"
-               append_arg "$cfg" volumecontrolname "-c"
-       fi
+       procd_set_param command /usr/bin/shairport-sync
+       procd_append_param command -c $conf_file
+
+       config_get_bool aux "$cfg" 'respawn' '0'
+       [ "$aux" = 1 ] && procd_set_param respawn
 
        procd_close_instance
 }
 
-service_triggers() { 
-        procd_add_reload_trigger $NAME
-} 
+service_triggers() {
+       procd_add_reload_trigger "shairport-sync"
+}
 
 start_service() {
-        config_load $NAME
-       # Just a single instance
-        start_shairport_service "main"
+       config_load shairport-sync
+       config_foreach start_instance shairport-sync
 }
diff --git a/sound/shine/patches/001-fix_mips64_bswap.patch b/sound/shine/patches/001-fix_mips64_bswap.patch
new file mode 100644 (file)
index 0000000..8c42297
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/src/bin/wave.c
++++ b/src/bin/wave.c
+@@ -168,7 +168,7 @@ unsigned char wave_open(const char *fnam
+ }
+ #ifdef SHINE_BIG_ENDIAN
+-#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 2))
++#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8))
+ #define bswap_16(x) __builtin_bswap16(x)
+ #else
+ #define bswap_16(x) ((((x) >> 8) & 0xff) | (((x) & 0xff) << 8))
index 8f3ea7dccdf68b01d9ff7714142c4a644ac09bf7..d7e7a572e29e14433f862fdf082dd4268d2b1f6e 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2014 OpenWrt.org
+# Copyright (C) 2014-2015 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -8,8 +8,8 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=acl
-PKG_REV:=62ce6354ef5a8eb5644908748f79c8cd18474d4c
-PKG_VERSION:=20140812
+PKG_REV:=fa03d2475682e4ab345c9a63bd6b88117bd45f0f
+PKG_VERSION:=20150921
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
index e7b419e7461b958ad9a7c29b14c55ab685434399..06430b6ae395feb1402c4d92cce8e7db1528c14e 100644 (file)
@@ -1,5 +1,5 @@
 diff --git a/configure.ac b/configure.ac
-index 2182e81..4836b3d 100644
+index cd3c680..3d3771b 100644
 --- a/configure.ac
 +++ b/configure.ac
 @@ -31,9 +31,6 @@ AC_FUNC_GCC_VISIBILITY
@@ -12,7 +12,7 @@ index 2182e81..4836b3d 100644
  AC_ARG_ENABLE([debug],
        [AS_HELP_STRING([--enable-debug], [Enable extra debugging])])
  AS_IF([test "x$enable_debug" = "xyes"],
-@@ -61,6 +58,5 @@ AC_CONFIG_COMMANDS([include/sys],
+@@ -60,6 +57,5 @@ AC_CONFIG_COMMANDS([include/sys],
  AC_CONFIG_FILES([
        libacl.pc
        Makefile
diff --git a/utils/at/Makefile b/utils/at/Makefile
new file mode 100644 (file)
index 0000000..b9a4ef8
--- /dev/null
@@ -0,0 +1,59 @@
+#
+# Copyright (C) 2008-2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=at
+PKG_VERSION:=3.1.16
+PKG_RELEASE:=2
+
+PKG_SOURCE:=$(PKG_NAME)_$(PKG_VERSION).orig.tar.gz
+PKG_SOURCE_URL:=http://ftp.debian.org/debian/pool/main/a/at
+PKG_MD5SUM:=d05da75d9b75d93917ffb16ab48b1e19
+
+PKG_LICENSE:=GPL-2.0+ GPL-3.0+ ISC
+PKG_LICENSE_FILES:=COPYING Copyright
+PKG_MAINTAINER:=Phil Eichinger <phil@zankapfel.net>
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/at
+  SECTION:=utils
+  CATEGORY:=Utilities
+  DEPENDS:=+libelf1
+  TITLE:=Delayed job execution and batch processing
+  URL:=http://packages.debian.org/stable/at
+endef
+
+define Package/at/description
+ At and batch read shell commands from standard input storing them as a job to
+ be scheduled for execution in the future.
+endef
+
+export SENDMAIL=/bin/true
+EXTRA_CFLAGS:=-DNEED_YYWRAP -I$(PKG_BUILD_DIR) \
+       $(TARGET_LDFLAGS)
+
+CONFIGURE_ARGS+=--prefix=/usr \
+               --with-daemon_username=nobody \
+               --with-daemon_groupname=nogroup \
+               --with-jobdir=/var/spool/cron/atjobs \
+               --with-atspool=/var/spool/cron/atspool
+
+CONFIGURE_VARS += \
+       ac_cv_header_security_pam_appl_h=no
+
+define Package/at/install
+       $(INSTALL_DIR) $(1)/usr/bin $(1)/usr/sbin $(1)/etc/init.d/
+       $(INSTALL_BIN) ./files/atd.init $(1)/etc/init.d/atd
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/at $(1)/usr/bin
+       ln -sf at $(1)/usr/bin/atq
+       ln -sf at $(1)/usr/bin/atrm
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/atd $(1)/usr/sbin
+endef
+
+$(eval $(call BuildPackage,at))
diff --git a/utils/at/files/atd.init b/utils/at/files/atd.init
new file mode 100755 (executable)
index 0000000..f293b1c
--- /dev/null
@@ -0,0 +1,26 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2015 OpenWrt.org
+
+START=50
+
+USE_PROCD=1
+
+start_service() {
+       [ -d /var/spool/cron/atjobs ] || {
+               mkdir -m 0755 -p /var/spool/cron/atjobs
+               touch /var/spool/cron/atjobs/.SEQ
+               chown -R nobody:nogroup /var/spool/cron/atjobs
+       }
+       [ -d /var/spool/cron/atspool ] || {
+               mkdir -m 0755 -p /var/spool/cron/atspool
+               chown -R nobody:nogroup /var/spool/cron/atspool
+       }
+       procd_open_instance
+
+       procd_set_param command /usr/sbin/atd -f
+       procd_set_param respawn ${respawn_threshold:-3600} ${respawn_timeout:-5} ${respawn_retry:-5}
+       procd_set_param stdout 1 # forward stdout of the command to logd
+       procd_set_param stderr 1 # same for stderr
+
+       procd_close_instance
+}
diff --git a/utils/at/patches/100-remove-glibc-assumption.patch b/utils/at/patches/100-remove-glibc-assumption.patch
new file mode 100644 (file)
index 0000000..a18a007
--- /dev/null
@@ -0,0 +1,59 @@
+From 7f811d9c4ebc9444e613e251c31d6bf537a24dc1 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 13 Apr 2015 16:35:30 -0700
+Subject: [PATCH] remove glibc assumption
+
+glibc time.h header has an undocumented __isleap macro
+that we are using anf musl is missing it.
+Since it is undocumented & does not appear
+on any other libc, stop using it and just define the macro in
+locally  instead.
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+[patch from: http://patchwork.openembedded.org/patch/91893/ ]
+Signed-off-by: Phil Eichinger <phil@zankapfel.net>
+---
+ parsetime.y | 11 +++++++----
+ 1 file changed, 7 insertions(+), 4 deletions(-)
+
+diff --git a/parsetime.y b/parsetime.y
+index 7005e88..324e6d3 100644
+--- a/parsetime.y
++++ b/parsetime.y
+@@ -8,6 +8,9 @@
+ #define YYDEBUG 1
++#define is_leap_year(y) \
++    ((y) % 4 == 0 && ((y) % 100 != 0 || (y) % 400 == 0))
++
+ struct tm exectm;
+ static int isgmt;
+ static int yearspec;
+@@ -217,8 +220,8 @@ date            : month_name day_number
+                                mnum == 12) && dnum > 31)
+                           || ((mnum ==  4 || mnum ==  6 || mnum ==  9 ||
+                                mnum == 11) && dnum > 30)
+-                          || (mnum ==  2 && dnum > 29 &&  __isleap(ynum+1900))
+-                          || (mnum ==  2 && dnum > 28 && !__isleap(ynum+1900))
++                          || (mnum ==  2 && dnum > 29 &&  is_leap_year(ynum+1900))
++                          || (mnum ==  2 && dnum > 28 && !is_leap_year(ynum+1900))
+                          )
+                       {
+                           yyerror("Error in day of month");
+@@ -261,8 +264,8 @@ date            : month_name day_number
+                                mnum == 12) && dnum > 31)
+                           || ((mnum ==  4 || mnum ==  6 || mnum ==  9 ||
+                                mnum == 11) && dnum > 30)
+-                          || (mnum ==  2 && dnum > 29 &&  __isleap(ynum+1900))
+-                          || (mnum ==  2 && dnum > 28 && !__isleap(ynum+1900))
++                          || (mnum ==  2 && dnum > 29 &&  is_leap_year(ynum+1900))
++                          || (mnum ==  2 && dnum > 28 && !is_leap_year(ynum+1900))
+                          )
+                       {
+                           yyerror("Error in day of month");
+-- 
+2.1.4
+
diff --git a/utils/at/patches/110-getloadavg.patch b/utils/at/patches/110-getloadavg.patch
new file mode 100644 (file)
index 0000000..0faef97
--- /dev/null
@@ -0,0 +1,14 @@
+--- a/getloadavg.c
++++ b/getloadavg.c
+@@ -69,8 +69,9 @@ Boston, MA  02110-1301  USA */
+ #include <config.h>
+ #endif
+-#include "lisp.h"
+-#include "sysfile.h" /* for encapsulated open, close, read, write */
++#include <sys/types.h>
++#include <sys/stat.h>
++#include <fcntl.h>
+ #ifndef HAVE_GETLOADAVG
index 80da9ccd4deb32fde68a844794db5b86b46f6277..bdbfc584ad3f873e637d0054d0eb8e00c78d09ea 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2014 OpenWrt.org
+# Copyright (C) 2014-2015 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -8,8 +8,8 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=attr
-PKG_REV:=c252ef434219891f616d891b46aad6b06efdd185
-PKG_VERSION:=20150220
+PKG_REV:=efa0b1ea982261861d64f6d6d620af83d82b02d3
+PKG_VERSION:=20150922
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
index 2e8b4f4cd6e0aa73c16569406817fa55dcb35521..ab1e9238d4bec8de7a9c9bb90a4262c6b1557d2e 100644 (file)
@@ -1,5 +1,5 @@
 diff --git a/configure.ac b/configure.ac
-index 8a1ca39..ceee757 100644
+index a5f9de5..4c77e97 100644
 --- a/configure.ac
 +++ b/configure.ac
 @@ -33,9 +33,6 @@ AC_FUNC_ALLOCA
@@ -9,10 +9,10 @@ index 8a1ca39..ceee757 100644
 -AM_GNU_GETTEXT_VERSION([0.18.2])
 -AM_GNU_GETTEXT([external])
 -
- dnl Most people get these man(2) pages from the system now.
- AC_ARG_ENABLE([man2],
-       [AS_HELP_STRING([--enable-man2], [Install man(2) pages])])
-@@ -59,6 +56,5 @@ AC_CONFIG_COMMANDS([include/attr],
+ AC_ARG_ENABLE([debug],
+       [AS_HELP_STRING([--enable-debug], [Enable extra debugging])])
+ AS_IF([test "x$enable_debug" = "xyes"],
+@@ -54,6 +51,5 @@ AC_CONFIG_COMMANDS([include/attr],
  AC_CONFIG_FILES([
        libattr.pc
        Makefile
diff --git a/utils/bandwidthd/Makefile b/utils/bandwidthd/Makefile
new file mode 100644 (file)
index 0000000..6cbace9
--- /dev/null
@@ -0,0 +1,124 @@
+#
+# Copyright (C) 2006-2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=bandwidthd
+PKG_VERSION:=2.0.1
+PKG_RELEASE:=5
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tgz
+PKG_SOURCE_URL:=@SF/bandwidthd
+PKG_MD5SUM:=aa79aad7bd489fd2cae1f7dc086ca8b6
+
+PKG_MAINTAINER:=Jean-Michel Lacroix <lacroix@lepine-lacroix.info>
+
+PKG_LICENSE:=GPL-2.0
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/bandwidthd/Default
+  SECTION:=utils
+  CATEGORY:=Utilities
+  TITLE:=Bandwidthd
+  URL:=http://bandwidthd.sourceforge.net/
+endef
+
+define Package/bandwidthd
+$(call Package/bandwidthd/Default)
+  TITLE += (without postgresql)
+  VARIANT:=no-pgsql
+  DEPENDS:=+libgd +libpcap
+endef
+
+define Package/bandwidthd-pgsql
+$(call Package/bandwidthd/Default)
+  TITLE += (with postgresql enabled)
+  VARIANT:=pgsql
+  DEPENDS:=+libgd +libpcap +libpq
+endef
+
+define Package/bandwidthd/description
+  A bandwidthd tracking utility.
+endef
+
+define Package/bandwidthd-pgsql/description
+$(call Package/bandwidthd/description)
+With the ability to store in a postgresql database.
+endef
+
+define Package/bandwidthd/daemon
+ This package contains bandwidthd a bandwith tracking utility.
+endef
+
+define Package/bandwidthd-pgsql/daemon
+ This package contains bandwidthd a bandwith tracking utility.
+endef
+
+ifeq ($(BUILD_VARIANT),no-pgsql)
+CONFIGURE_ARGS += \
+       ac_cv_file__sw_lib=no \
+       ac_cv_file__sw_include=no \
+       ac_cv_file__usr_pkg_lib=no \
+       ac_cv_file__usr_pkg_include=no \
+       ac_cv_file__usr_local_pgsql_lib=no \
+       ac_cv_file__usr_local_pgsql_include=no \
+       ac_cv_lib_pq_PQconnectdb=no 
+endif
+
+ifeq ($(BUILD_VARIANT),pgsql)
+CONFIGURE_ARGS += \
+        ac_cv_file__sw_lib=no \
+        ac_cv_file__sw_include=no \
+        ac_cv_file__usr_pkg_lib=no \
+        ac_cv_file__usr_pkg_include=no \
+        ac_cv_file__usr_local_pgsql_lib=no \
+        ac_cv_file__usr_local_pgsql_include=no
+endif
+
+EXTRA_CFLAGS+= $(TARGET_CPPFLAGS)
+EXTRA_LDFLAGS+= $(TARGET_LDFLAGS) -Wl,-rpath-link,$(STAGING_DIR)/usr/lib
+
+define Package/bandwidthd/install
+       $(INSTALL_DIR) $(1)/usr/sbin
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/bandwidthd $(1)/usr/sbin/
+       $(INSTALL_DIR) $(1)/etc/config
+       $(INSTALL_DATA) ./files/bandwidthd.config $(1)/etc/config/bandwidthd
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_BIN) ./files/bandwidthd.init $(1)/etc/init.d/bandwidthd
+       $(INSTALL_DIR) $(1)/www
+       $(INSTALL_DATA) $(PKG_BUILD_DIR)/htdocs/legend.gif $(1)/www/
+       $(INSTALL_DATA) $(PKG_BUILD_DIR)/htdocs/logo.gif $(1)/www/
+endef
+
+define Package/bandwidthd-pgsql/install
+       $(INSTALL_DIR) $(1)/usr/sbin
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/bandwidthd $(1)/usr/sbin/
+       $(INSTALL_DIR) $(1)/etc/config
+       $(INSTALL_DATA) ./files/bandwidthd-pgsql.config $(1)/etc/config/bandwidthd
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_BIN) ./files/bandwidthd-pgsql.init $(1)/etc/init.d/bandwidthd
+       $(INSTALL_DIR) $(1)/www/phphtdocs
+       $(INSTALL_DATA) $(PKG_BUILD_DIR)/htdocs/legend.gif $(1)/www/
+       $(INSTALL_DATA) ./files/logo.gif $(1)/www/
+       $(INSTALL_DIR) $(1)/usr/share/postgresql
+       $(INSTALL_DATA) $(PKG_BUILD_DIR)/schema.postgresql $(1)/usr/share/postgresql
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/phphtdocs/bd_pgsql_purge.sh $(1)/usr/share/postgresql
+endef
+
+define Package/bandwidthd/conffiles
+/etc/config/bandwidthd
+endef
+
+define Package/bandwidthd-pgsql/conffiles
+/etc/config/bandwidthd
+endef
+
+$(eval $(call BuildPackage,bandwidthd))
+$(eval $(call BuildPackage,bandwidthd-pgsql))
diff --git a/utils/bandwidthd/files/bandwidthd-pgsql.config b/utils/bandwidthd/files/bandwidthd-pgsql.config
new file mode 100644 (file)
index 0000000..0f87687
--- /dev/null
@@ -0,0 +1,13 @@
+config bandwidthd
+       option dev      br-lan
+       option subnets          "192.168.1.0/24"
+       option skip_intervals   0
+       option graph_cutoff     1024
+       option promiscuous      true
+       option output_cdf       false
+       option recover_cdf      false
+       option filter           ip
+       option graph            true
+       option meta_refresh     150
+       option disabled_pgsql_connect_string    "user = postgres dbname = bandwidthd host = 192.168.1.1"
+       option disabled_sensor_id       "openwrt.mydomain.domain"
diff --git a/utils/bandwidthd/files/bandwidthd-pgsql.init b/utils/bandwidthd/files/bandwidthd-pgsql.init
new file mode 100644 (file)
index 0000000..232fa0c
--- /dev/null
@@ -0,0 +1,90 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2008-2015 OpenWrt.org
+
+START=99
+
+config_cb() {
+       local cfg_type="$1"
+       local cfg_name="$2"
+
+       case "$cfg_type" in
+               bandwidthd)
+                       append cfgs "$cfg_name"
+               ;;
+       esac
+}
+
+export_bool() {
+       local option="$1"
+       local section="$2"
+       local _loctmp
+       config_get_bool _loctmp "$section" "$option"
+       if [ -n "$_loctmp" ]; then
+               conffile="${conffile}$option "
+               if [ 1 -eq "$_loctmp" ]; then
+                       conffile="${conffile}true"
+               else
+                       conffile="${conffile}false"
+               fi
+               conffile="${conffile}\n"
+       fi
+}
+
+export_number() {
+       local option="$1"
+       local section="$2"
+       local _loctmp
+       config_get _loctmp "$section" "$option"
+       if [ -n "$_loctmp" ]; then
+               conffile="${conffile}$option ${_loctmp}\n"
+       fi
+}
+
+export_string() {
+       local option="$1"
+       local section="$2"
+       local _loctmp
+       config_get _loctmp "$section" "$option"
+       if [ -n "$_loctmp" ]; then
+               conffile="${conffile}$option \"${_loctmp}\"\n"
+       fi
+}
+
+start() {
+       local subnet conffile
+
+       [ -d /tmp/bandwidthd ] || mkdir -p /tmp/bandwidthd && cp /www/legend.gif /www/logo.gif /tmp/bandwidthd/
+       [ -e /htdocs ] || ln -s /tmp/bandwidthd /htdocs
+       [ -e /www/bandwidthd ] || ln -s /tmp/bandwidthd /www/bandwidthd
+       rm -f /tmp/bandwidthd.conf
+       touch /tmp/bandwidthd.conf
+       [ -e /etc/bandwidthd.conf ] || ln -s /tmp/bandwidthd.conf /etc/bandwidthd.conf
+       
+       
+       config_load bandwidthd
+       for cfg in $cfgs; do
+               config_get subnets $cfg subnets
+                       for subnet in $subnets; do
+                               conffile="${conffile}subnet ${subnet}\n"
+                       done
+               export_string dev $cfg
+               export_number skip_intervals $cfg
+               export_number graph_cutoff $cfg
+               export_bool promiscuous $cfg
+               export_bool output_cdf $cfg
+               export_bool recover_cdf $cfg
+               export_string filter $cfg
+               export_bool graph $cfg
+               export_number meta_refresh $cfg
+               export_string pgsql_connect_string $cfg
+               export_string sensor_id $cfg
+               [ -n "$conffile" ] && echo -e "$conffile" >>/tmp/bandwidthd.conf
+               unset conffile
+       done
+       cd /
+       service_start /usr/sbin/bandwidthd
+}
+
+stop() {
+       service_stop /usr/sbin/bandwidthd
+}
diff --git a/utils/bandwidthd/files/bandwidthd.config b/utils/bandwidthd/files/bandwidthd.config
new file mode 100644 (file)
index 0000000..0769b1c
--- /dev/null
@@ -0,0 +1,11 @@
+config bandwidthd
+       option dev      br-lan
+       option subnets          "192.168.1.0/24"
+       option skip_intervals   0
+       option graph_cutoff     1024
+       option promiscuous      true
+       option output_cdf       false
+       option recover_cdf      false
+       option filter           ip
+       option graph            true
+       option meta_refresh     150
diff --git a/utils/bandwidthd/files/bandwidthd.init b/utils/bandwidthd/files/bandwidthd.init
new file mode 100644 (file)
index 0000000..6483daa
--- /dev/null
@@ -0,0 +1,88 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2008-2011 OpenWrt.org
+
+START=99
+
+config_cb() {
+       local cfg_type="$1"
+       local cfg_name="$2"
+
+       case "$cfg_type" in
+               bandwidthd)
+                       append cfgs "$cfg_name"
+               ;;
+       esac
+}
+
+export_bool() {
+       local option="$1"
+       local section="$2"
+       local _loctmp
+       config_get_bool _loctmp "$section" "$option"
+       if [ -n "$_loctmp" ]; then
+               conffile="${conffile}$option "
+               if [ 1 -eq "$_loctmp" ]; then
+                       conffile="${conffile}true"
+               else
+                       conffile="${conffile}false"
+               fi
+               conffile="${conffile}\n"
+       fi
+}
+
+export_number() {
+       local option="$1"
+       local section="$2"
+       local _loctmp
+       config_get _loctmp "$section" "$option"
+       if [ -n "$_loctmp" ]; then
+               conffile="${conffile}$option ${_loctmp}\n"
+       fi
+}
+
+export_string() {
+       local option="$1"
+       local section="$2"
+       local _loctmp
+       config_get _loctmp "$section" "$option"
+       if [ -n "$_loctmp" ]; then
+               conffile="${conffile}$option \"${_loctmp}\"\n"
+       fi
+}
+
+start() {
+       local subnet conffile
+
+       [ -d /tmp/bandwidthd ] || mkdir -p /tmp/bandwidthd && cp /www/legend.gif /www/logo.gif /tmp/bandwidthd/
+       [ -e /htdocs ] || ln -s /tmp/bandwidthd /htdocs
+       [ -e /www/bandwidthd ] || ln -s /tmp/bandwidthd /www/bandwidthd
+       rm -f /tmp/bandwidthd.conf
+       touch /tmp/bandwidthd.conf
+       [ -e /etc/bandwidthd.conf ] || ln -s /tmp/bandwidthd.conf /etc/bandwidthd.conf
+       
+       
+       config_load bandwidthd
+       for cfg in $cfgs; do
+               config_get subnets $cfg subnets
+                       for subnet in $subnets; do
+                               conffile="${conffile}subnet ${subnet}\n"
+                       done
+               export_string dev $cfg
+               export_number skip_intervals $cfg
+               export_number graph_cutoff $cfg
+               export_bool promiscuous $cfg
+               export_bool output_cdf $cfg
+               export_bool recover_cdf $cfg
+               export_string filter $cfg
+               export_bool graph $cfg
+               export_number meta_refresh $cfg
+               [ -n "$conffile" ] && echo -e "$conffile" >>/tmp/bandwidthd.conf
+               unset conffile
+       done
+       cd /
+       service_start /usr/sbin/bandwidthd
+}
+
+stop() {
+       service_stop /usr/sbin/bandwidthd
+}
diff --git a/utils/bandwidthd/files/logo.gif b/utils/bandwidthd/files/logo.gif
new file mode 100644 (file)
index 0000000..2ffec56
Binary files /dev/null and b/utils/bandwidthd/files/logo.gif differ
diff --git a/utils/bandwidthd/patches/010-dont-add-host-paths.patch b/utils/bandwidthd/patches/010-dont-add-host-paths.patch
new file mode 100644 (file)
index 0000000..59a5737
--- /dev/null
@@ -0,0 +1,36 @@
+diff --git a/configure b/configure
+index 4c2546e..e516137 100755
+--- a/configure
++++ b/configure
+@@ -2439,11 +2439,6 @@ if test -n "$x_libraries" && test "x$x_libraries" != xNONE ; then
+       LDFLAGS="$LDFLAGS -L$x_libraries"
+ fi
+-# May be equired for BSD
+-LDFLAGS="$LDFLAGS -L/usr/local/lib"
+-
+-CPPFLAGS="$CPPFLAGS -I/usr/local/include"
+-
+ #Check for Darwin sw directory
+ echo "$as_me:2448: checking for /sw/lib" >&5
+ echo $ECHO_N "checking for /sw/lib... $ECHO_C" >&6
+@@ -2505,9 +2500,6 @@ fi
+ fi
+ echo "$as_me:2506: result: $ac_cv_file__usr_pkg_lib" >&5
+ echo "${ECHO_T}$ac_cv_file__usr_pkg_lib" >&6
+-if test $ac_cv_file__usr_pkg_lib = yes; then
+-  LDFLAGS="$LDFLAGS -L/usr/pkg/lib"
+-fi
+ echo "$as_me:2512: checking for /usr/pkg/include" >&5
+ echo $ECHO_N "checking for /usr/pkg/include... $ECHO_C" >&6
+@@ -3092,9 +3084,6 @@ fi
+ fi
+ echo "$as_me:3093: result: $ac_cv_file__usr_local_pgsql_lib" >&5
+ echo "${ECHO_T}$ac_cv_file__usr_local_pgsql_lib" >&6
+-if test $ac_cv_file__usr_local_pgsql_lib = yes; then
+-  LDFLAGS="$LDFLAGS -L/usr/local/pgsql/lib"
+-fi
+ echo "$as_me:3099: checking for /usr/local/pgsql/include" >&5
+ echo $ECHO_N "checking for /usr/local/pgsql/include... $ECHO_C" >&6
diff --git a/utils/bandwidthd/patches/100-fix_config_file_location b/utils/bandwidthd/patches/100-fix_config_file_location
new file mode 100644 (file)
index 0000000..ae44cd2
--- /dev/null
@@ -0,0 +1,31 @@
+--- bandwidthd-2.0.1/bandwidthd.c.orig 2008-05-09 10:06:37.000000000 -0500
++++ bandwidthd-2.0.1/bandwidthd.c      2008-05-09 10:32:54.000000000 -0500
+@@ -255,22 +255,22 @@
+       openlog("bandwidthd", LOG_CONS, LOG_DAEMON);
+-      if (stat("./etc/bandwidthd.conf", &StatBuf))
++      if (stat("/etc/bandwidthd.conf", &StatBuf))
+               {
+               chdir(INSTALL_DIR);
+-              if (stat("./etc/bandwidthd.conf", &StatBuf))
++              if (stat("/etc/bandwidthd.conf", &StatBuf))
+                       {
+-                      printf("Cannot find ./etc/bandwidthd.conf or %s/etc/bandwidthd.conf\n", INSTALL_DIR);
+-                      syslog(LOG_ERR, "Cannot find ./etc/bandwidthd.conf or %s/etc/bandwidthd.conf", INSTALL_DIR);
++                      printf("Cannot find /etc/bandwidthd.conf or %s/etc/bandwidthd.conf\n", INSTALL_DIR);
++                      syslog(LOG_ERR, "Cannot find /etc/bandwidthd.conf or %s/etc/bandwidthd.conf", INSTALL_DIR);
+                       exit(1);
+                       }
+               }
+-      bdconfig_in = fopen("./etc/bandwidthd.conf", "rt");
++      bdconfig_in = fopen("/etc/bandwidthd.conf", "rt");
+       if (!bdconfig_in)
+               {
+               syslog(LOG_ERR, "Cannot open bandwidthd.conf");
+-              printf("Cannot open ./etc/bandwidthd.conf\n");
++              printf("Cannot open /etc/bandwidthd.conf\n");
+               exit(1);
+               }
+       bdconfig_parse();
diff --git a/utils/canutils/Makefile b/utils/canutils/Makefile
new file mode 100644 (file)
index 0000000..58ae762
--- /dev/null
@@ -0,0 +1,116 @@
+#
+# Copyright (C) 2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=canutils
+PKG_RELEASE=1
+
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL:=https://github.com/linux-can/can-utils
+PKG_SOURCE_VERSION:=0e3ff3b3157e456d4b6343f5d4b42ef692bce538
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.bz2
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_SOURCE_VERSION)
+
+PKG_MAINTAINER:=Anton Glukhov <anton.a.glukhov@gmail.com>
+PKG_LICENSE:=GPL-2.0+
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_SOURCE_SUBDIR)
+PKG_FIXUP:=autoreconf
+
+include $(INCLUDE_DIR)/package.mk
+
+FILES:=canbusload can-calc-bit-timing candump \
+       cangen cangw canplayer cansniffer cansend
+
+define Package/canutils/Default
+  SECTION:=utils
+  CATEGORY:=Utilities
+  URL:=https://github.com/linux-can/can-utils
+  TITLE:=CAN userspace utilities and tools
+endef
+
+define Package/canutils
+  $(call Package/canutils/Default)
+  MENU:=1
+endef
+
+define Package/canutils-log-conversion
+  $(call Package/canutils/Default)
+  TITLE:=canutils log conversion
+  DEPENDS:=canutils
+endef
+
+define PartGen
+define Package/canutils-$(1)
+  $(call Package/canutils/Default)
+  TITLE:=$(1) tool from canutils
+  DEPENDS:=canutils
+endef
+endef
+
+$(foreach file,$(FILES),$(eval $(call PartGen,$(file))))
+
+define Package/canutils/install
+endef
+
+define Package/canutils-log-conversion/install
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/asc2log $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/log2asc $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/log2long $(1)/usr/bin/
+endef
+
+define PartInstall
+define Package/canutils-$(1)/install
+       $(INSTALL_DIR) $$(1)/usr/bin
+       $(INSTALL_BIN) \
+               $(PKG_BUILD_DIR)/$(1) \
+               $$(1)/usr/bin/
+endef
+endef
+
+define Package/canutils-log-conversion/description
+asc2log - convert ASC logfile to compact CAN frame logfile.
+log2asc - convert compact CAN frame logfile to ASC logfile.
+log2long - convert compact CAN frame representation into user readable.
+endef
+
+define Package/canutils-canbusload/description
+canbusload - display the load percentage of can buses.
+endef
+
+define Package/canutils-can-calc-bit-timing/description
+can-calc-bit-timing - calculate hw bittiming for supported can chips.
+endef
+
+define Package/canutils-candump/description
+candump - dumps can frames to terminal, logfile or another can device,
+with optional filtering.
+endef
+
+define Package/canutils-cangen/description
+cangen - CAN frames generator for testing purposes.
+endef
+
+define Package/canutils-cangw/description
+cangw - manage PF_CAN netlink gateway.
+endef
+
+define Package/canutils-canplayer/description
+canplayer - replay a compact CAN frame logfile to CAN devices.
+endef
+
+define Package/canutils-cansend/description
+cansend - simple command line tool to send CAN-frames via CAN_RAW sockets.
+endef
+
+$(foreach file,$(FILES),$(eval $(call PartInstall,$(file))))
+
+$(eval $(call BuildPackage,canutils))
+$(eval $(call BuildPackage,canutils-log-conversion))
+$(foreach file,$(FILES),$(eval $(call BuildPackage,canutils-$(file))))
index 74d305b464c082a347d1aa78067c2d4e444ed032..280c868b94a4e0b06301d6147bf8d4c8c6d0edd6 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=collectd
 PKG_VERSION:=5.5.0
-PKG_RELEASE:=3
+PKG_RELEASE:=5
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=http://collectd.org/files/
@@ -185,6 +185,7 @@ CONFIGURE_ARGS+= \
        --disable-debug \
        --enable-daemon \
        --with-nan-emulation \
+       --with-perl-bindings= \
        --without-libgcrypt
 
 CONFIGURE_VARS+= \
@@ -254,6 +255,7 @@ define Package/collectd/install
        $(INSTALL_CONF) ./files/collectd.conf $(1)/etc/
        $(INSTALL_DIR) $(1)/etc/init.d
        $(INSTALL_BIN) ./files/collectd.init $(1)/etc/init.d/collectd
+       $(INSTALL_DIR) $(1)/etc/collectd/conf.d
 endef
 
 # 1: plugin name
@@ -314,7 +316,7 @@ $(eval $(call BuildPlugin,madwifi,MadWifi status input,madwifi,))
 #$(eval $(call BuildPlugin,mysql,MySQL status input,mysql,+PACKAGE_collectd-mod-mysql:libmysqlclient-r))
 $(eval $(call BuildPlugin,memory,physical memory usage input,memory,))
 $(eval $(call BuildPlugin,modbus,read variables through libmodbus,modbus,+PACKAGE_collectd-mod-modbus:libmodbus))
-$(eval $(call BuildPlugin,netlink,netlink input,netlink,+PACKAGE_collectd-mod-netlink:ip @BROKEN))
+$(eval $(call BuildPlugin,netlink,netlink input,netlink,+PACKAGE_collectd-mod-netlink:libmnl))
 $(eval $(call BuildPlugin,network,network input/output,network))
 $(eval $(call BuildPlugin,nginx,nginx status input,nginx,+PACKAGE_collectd-mod-nginx:libcurl))
 $(eval $(call BuildPlugin,ntpd,NTP daemon status input,ntpd,))
index 2ef78fe7ff40a6994c7addc9b7f4e9031e54b75c..3afbfad47b59893d8a217c6afbce3fe8a37eab93 100644 (file)
@@ -1,90 +1,39 @@
-#
-# OpenWrt Config file for collectd(1).
-# Please read collectd.conf(5) for a list of options.
-# http://collectd.org/
-#
+# Config file for collectd. More info: https://collectd.org/
+# Note: Luci statistics will generate a new config and overwrite this file.
 
 #Hostname   "localhost"
 #FQDNLookup  true
-BaseDir     "/var/lib/collectd"
-PIDFile     "/var/run/collectd.pid"
-#PluginDir  "/usr/lib/collectd"
-#TypesDB    "/usr/share/collectd/types.db"
+BaseDir "/var/run/collectd"
+Include "/etc/collectd/conf.d"
+PIDFile "/var/run/collectd.pid"
+PluginDir "/usr/lib/collectd"
+TypesDB "/usr/share/collectd/types.db"
 Interval    30
 ReadThreads 2
 
-#LoadPlugin syslog
-#LoadPlugin logfile
-
-#<Plugin syslog>
-#      LogLevel info
-#</Plugin>
-
-#<Plugin logfile>
-#      LogLevel info
-#      File STDOUT
-#      Timestamp true
-#</Plugin>
-
-LoadPlugin cpu
-LoadPlugin df
-LoadPlugin disk
 LoadPlugin interface
 LoadPlugin load
-LoadPlugin memory
-LoadPlugin network
 #LoadPlugin ping
-#LoadPlugin processes
-#LoadPlugin rrdtool
-#LoadPlugin serial
-LoadPlugin wireless
-
-#<Plugin df>
-#      FSType tmpfs
-#      IgnoreSelected true
-#      ReportByDevice false
-#      ReportReserved false
-#      ReportInodes false
-#</Plugin>
-
-#<Plugin disk>
-#      Disk "/^[hs]d[a-f][0-9]?$/"
-#      IgnoreSelected false
-#</Plugin>
-
-#<Plugin interface>
-#      Interface "eth0"
-#      Interface "br-lan"
-#      IgnoreSelected false
-#</Plugin>
+LoadPlugin rrdtool
+
+<Plugin rrdtool>
+       DataDir "/tmp/rrd"
+       RRARows 100
+       RRASingle true
+       RRATimespan 3600
+       RRATimespan 86400
+       RRATimespan 604800
+       RRATimespan 2678400
+       RRATimespan 31622400
+</Plugin>
 
-<Plugin network>
-#      Server "ff18::efc0:4a42" "25826"
-       Server "239.192.74.66" "25826"
-#      Listen "ff18::efc0:4a42" "25826"
-#      Listen "239.192.74.66" "25826"
-#      TimeToLive "128"
-#      Forward false
-#      CacheFlush 1800
-#      ReportStats false
+<Plugin interface>
+       IgnoreSelected false
+       Interface "br-lan"
 </Plugin>
 
 #<Plugin ping>
 #      Host "host.foo.bar"
-#      Interval 1.0
-#      Timeout 0.9
-#      TTL 255
-#      SourceAddress "1.2.3.4"
-#      Device "eth0"
-#      MaxMissed -1
-#</Plugin>
-
-#<Plugin processes>
-#      Process "name"
-#</Plugin>
-
-#<Plugin rrdtool>
-#      DataDir "/var/lib/collectd/rrd"
-#      CacheTimeout 120
-#      CacheFlush   900
+#      Interval 30
+#      TTL 127
 #</Plugin>
diff --git a/utils/collectd/patches/300-delay-first-read-cycle.patch b/utils/collectd/patches/300-delay-first-read-cycle.patch
new file mode 100644 (file)
index 0000000..9a60cc4
--- /dev/null
@@ -0,0 +1,12 @@
+--- a/src/daemon/plugin.c
++++ b/src/daemon/plugin.c
+@@ -1149,7 +1149,7 @@ static int plugin_insert_read (read_func
+       int status;
+       llentry_t *le;
+-      rf->rf_next_read = cdtime ();
++      rf->rf_next_read = cdtime () + (cdtime_t) 1073741824; //delay first read 1s
+       rf->rf_effective_interval = rf->rf_interval;
+       pthread_mutex_lock (&read_lock);
+
diff --git a/utils/collectd/patches/500-upstream-parallel-build-fix.patch b/utils/collectd/patches/500-upstream-parallel-build-fix.patch
new file mode 100644 (file)
index 0000000..a10fbbb
--- /dev/null
@@ -0,0 +1,17 @@
+Backport of 780e6a76021a240e95007a04b723d827120afa95
+Subject: [PATCH] build: add libavltree, libcommon & libheap dependencies
+
+Otherwise it can break on very parallel builds since collectd link time
+arrives before one or more of these were built.
+
+--- a/src/daemon/Makefile.am
++++ b/src/daemon/Makefile.am
+@@ -49,7 +49,7 @@ collectd_CPPFLAGS =  $(AM_CPPFLAGS) $(LT
+ collectd_CFLAGS = $(AM_CFLAGS)
+ collectd_LDFLAGS = -export-dynamic
+ collectd_LDADD = libavltree.la libcommon.la libheap.la -lm
+-collectd_DEPENDENCIES =
++collectd_DEPENDENCIES = libavltree.la libcommon.la libheap.la
+ # Link to these libraries..
+ if BUILD_WITH_LIBRT
index 5fa70ba3c6358cb1c28da08c143c1256b928e1a2..2cc6033d06542761987d7dcfc385872cd5c0fca8 100644 (file)
@@ -9,12 +9,12 @@ include $(TOPDIR)/rules.mk
 
 # Make sure to also update the dbus-x package
 PKG_NAME:=dbus
-PKG_VERSION:=1.9.20
+PKG_VERSION:=1.10.4
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://dbus.freedesktop.org/releases/dbus/
-PKG_MD5SUM:=d5a6f0467612054d3bc7361e42ac6ee9
+PKG_MD5SUM:=27b8e99ffad603b8acfa25201c6e3d5c
 PKG_MAINTAINER:=Steven Barth <cyrus@openwrt.org>
 PKG_LICENSE:=AFL-2.1
 
@@ -168,10 +168,10 @@ define Package/libdbus/install
 endef
 
 define Package/dbus/install
-       $(INSTALL_DIR) $(1)/etc
+       $(INSTALL_DIR) $(1)/usr/share
        $(CP) \
-               $(PKG_INSTALL_DIR)/etc/dbus-1 \
-               $(1)/etc/
+               $(PKG_INSTALL_DIR)/usr/share/dbus-1 \
+               $(1)/usr/share/
 
        $(INSTALL_DIR) $(1)/usr/lib/dbus-1
        $(INSTALL_BIN) \
diff --git a/utils/dfu-programmer/Makefile b/utils/dfu-programmer/Makefile
new file mode 100644 (file)
index 0000000..153c69f
--- /dev/null
@@ -0,0 +1,45 @@
+#
+# Copyright (C) 2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=dfu-programmer
+PKG_VERSION:=0.7.2
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://downloads.sourceforge.net/project/dfu-programmer/dfu-programmer/$(PKG_VERSION)/
+PKG_MD5SUM:=98641b0a7cf1cc8c8be3584d5552f6d8
+
+PKG_MAINTAINER:=Stefan Hellermann <stefan@the2masters.de>
+PKG_LICENSE:=GPL-2.0
+PKG_LICENSE_FILES:=COPYING
+
+PKG_INSTALL:=1
+PKG_BUILD_PARALLEL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/dfu-programmer
+  SECTION:=utils
+  CATEGORY:=Utilities
+  TITLE:=USB programmer for Atmel microcontrollers
+  URL:=http://dfu-programmer.github.io/
+  DEPENDS:=+libusb-1.0
+endef
+
+define Package/dfu-programmer/description
+  dfu-programmer is a Device Firmware Update (DFU) based USB programmer
+  for Atmel chips with a USB bootloader.
+endef
+
+define Package/dfu-programmer/install
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(CP) $(PKG_INSTALL_DIR)/usr/bin/$(PKG_NAME) $(1)/usr/bin/
+endef
+
+$(eval $(call BuildPackage,dfu-programmer))
index 0f255dd89a22de2afa83afdce91dd71e8de20366..2dda5a053340cd2ae8131a952b0278c37825af2d 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2007-2014 OpenWrt.org
+# Copyright (C) 2007-2015 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=dmidecode
-PKG_VERSION:=2.12
+PKG_VERSION:=3.0
 PKG_RELEASE:=1
 
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://download.savannah.gnu.org/releases/dmidecode
-PKG_MD5SUM:=a406f3cbb27736491698697beeddb781
+PKG_MD5SUM:=be7501ad0f844e875976b96106afaa3c
 PKG_MAINTAINER:=Álvaro Fernández Rojas <noltari@gmail.com>
 
 PKG_LICENSE:=GPL-2.0
diff --git a/utils/dump1090/Config.in b/utils/dump1090/Config.in
deleted file mode 100644 (file)
index cee0aa5..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-config DUMP1090_DUMP
-       bool "dump1090"
-       depends on PACKAGE_dump1090
-       default y
-       help
-               dump1090 ModeS Receiver
-
-config DUMP1090_WWW
-       bool "website files"
-       depends on DUMP1090_DUMP
-       default y
-       help
-               HTML website files for showing planes
-
-config DUMP1090_VIEW
-       bool "view1090"
-       depends on PACKAGE_dump1090
-       default n
-       help
-               view1090 dump1090 Viewer
index 82ce06a67ada4831b584a4f711eba7e5b931e6f9..adf8d19ea1cf8ceaf6d645f1e7b9c44ef137fc64 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2013-2014 OpenWrt.org
+# Copyright (C) 2013-2015 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -8,63 +8,68 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=dump1090
-PKG_VERSION:=2014-11-09
-PKG_RELEASE:=$(PKG_SOURCE_VERSION)
+PKG_VERSION:=2015-11-22
+PKG_RELEASE:=1
 
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL:=git://github.com/MalcolmRobb/dump1090.git
+PKG_SOURCE_URL:=git://github.com/mutability/dump1090.git
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
-PKG_SOURCE_VERSION:=bff92c4ad772a0a8d433f788d39dae97e00e4dbe
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_VERSION:=497f88fe1c597652aca23c1035ddb55a9f6c274d
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
 PKG_MAINTAINER:=Álvaro Fernández Rojas <noltari@gmail.com>
 
-PKG_LICENSE:=BSD-3c
+PKG_LICENSE:=GPL-2.0
+PKG_LICENSE_FILES:=COPYING LICENSE
 
-PKG_CONFIG_DEPENDS:= \
-       CONFIG_DUMP1090_DUMP \
-       CONFIG_DUMP1090_WWW \
-       CONFIG_DUMP1090_VIEW
+PKG_BUILD_DEPENDS:=librtlsdr
 
 include $(INCLUDE_DIR)/package.mk
 
-define Package/dump1090
+define Package/dump1090/Default
   SECTION:=utils
   CATEGORY:=Utilities
   TITLE:=Mode S decoder for the Realtek RTL2832U
-  URL:=https://github.com/MalcolmRobb/dump1090
-  DEPENDS:=+libpthread +librtlsdr
+  URL:=https://github.com/mutability/dump1090
+  DEPENDS:=+libpthread
+endef
+
+define Package/dump1090
+  $(call Package/dump1090/Default)
+  TITLE+= (dump1090)
+  DEPENDS+= +librtlsdr
 endef
 
-define Package/dump1090/config
-       source "$(SOURCE)/Config.in"
+define Package/view1090
+  $(call Package/dump1090/Default)
+  TITLE+= (view1090)
 endef
 
 define Package/dump1090/description
  Dump1090 is a Mode S decoder specifically designed for RTLSDR devices.
- Embedded HTTP server that displays the currently detected aircrafts on
- Google Maps. Network output in Basestation and AVR formats.
+endef
+
+define Package/view1090/description
+ View1090 is a Mode S messages viewer for dump1090 devices.
 endef
 
 MAKE_FLAGS += \
        CFLAGS="$(TARGET_CFLAGS)"
 
 define Package/dump1090/install
-       $(INSTALL_DIR) $(1)/usr/bin
-
-ifneq ($(CONFIG_DUMP1090_DUMP),)
        $(INSTALL_DIR) $(1)/etc/init.d
        $(INSTALL_BIN) files/dump1090.init $(1)/etc/init.d/dump1090
        $(INSTALL_DIR) $(1)/etc/config
        $(INSTALL_CONF) files/dump1090.config $(1)/etc/config/dump1090
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/dump1090 $(1)/usr/bin
-ifneq ($(CONFIG_DUMP1090_WWW),)
        $(INSTALL_DIR) $(1)/usr/share/dump1090
        $(CP) $(PKG_BUILD_DIR)/public_html/* $(1)/usr/share/dump1090
-endif
-endif
-ifneq ($(CONFIG_DUMP1090_VIEW),)
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/dump1090 $(1)/usr/bin
+endef
+
+define Package/view1090/install
+       $(INSTALL_DIR) $(1)/usr/bin
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/view1090 $(1)/usr/bin
-endif
 endef
 
 $(eval $(call BuildPackage,dump1090))
+$(eval $(call BuildPackage,view1090))
index 53d40ef7f6b98fa7359b04265903f4c42a8bd427..b9c433eea0995a9532789fc26d04e87a7e64e8e2 100644 (file)
@@ -6,6 +6,8 @@ config dump1090 main
        option enable_agc '0'
        option freq ''
        option ifile ''
+       option iformat ''
+       option throttle '0'
        option raw '0'
        option net '1'
        option modeac '0'
@@ -18,22 +20,34 @@ config dump1090 main
        option net_sbs_port ''
        option net_bi_port ''
        option net_bo_port ''
+       option net_fatsv_port ''
        option net_ro_size ''
-       option net_ro_rate ''
+       option net_ro_interval ''
        option net_heartbeat ''
        option net_buffer ''
+       option net_verbatim '0'
+       option forward_mlat '0'
        option lat ''
        option lon ''
+       option max_range ''
        option fix '0'
        option no_fix '0'
        option no_crc_check '0'
        option phase_enhance '0'
-       option agressive '0'
+       option aggressive '0'
        option mlat '0'
        option stats '0'
+       option stats_range '0'
        option stats_every ''
        option onlyaddr '0'
        option metric '0'
        option snip ''
        option debug ''
        option ppm ''
+       option html_dir '/usr/share/dump1090'
+       option write_json ''
+       option write_json_every ''
+       option json_location_accuracy ''
+       option oversample '0'
+       option dcfilter '0'
+       option measure_noise '0'
index bc0755fb862423c527ceff87d5694aebf01b36a7..23519dbc2f8f46bb32dd0f0689824fc6e1b306ea 100644 (file)
@@ -1,5 +1,5 @@
 #!/bin/sh /etc/rc.common
-# Copyright (C) 2014 OpenWrt.org
+# Copyright (C) 2014-2015 OpenWrt.org
 
 START=90
 STOP=10
@@ -44,6 +44,8 @@ start_instance() {
        append_bool "$cfg" enable_agc "--enable-agc"
        append_arg "$cfg" freq "--freq"
        append_arg "$cfg" ifile "--ifile"
+       append_arg "$cfg" iformat "--iformat"
+       append_bool "$cfg" throttle "--throttle"
        append_bool "$cfg" raw "--raw"
        append_bool "$cfg" net "--net"
        append_bool "$cfg" modeac "--modeac"
@@ -56,25 +58,37 @@ start_instance() {
        append_arg "$cfg" net_sbs_port "--net-sbs-port"
        append_arg "$cfg" net_bi_port "--net-bi-port"
        append_arg "$cfg" net_bo_port "--net-bo-port"
+       append_arg "$cfg" net_fatsv_port "net-fatsv-port"
        append_arg "$cfg" net_ro_size "--net-ro-size"
-       append_arg "$cfg" net_ro_rate "--net-ro-rate"
+       append_arg "$cfg" net_ro_interval "--net-ro-interval"
        append_arg "$cfg" net_heartbeat "--net-heartbeat"
        append_arg "$cfg" net_buffer "--net-buffer"
+       append_bool "$cfg" net_verbatim "--net-verbatim"
+       append_bool "$cfg" forward_mlat "--forward-mlat"
        append_arg "$cfg" lat "--lat"
        append_arg "$cfg" lon "--lon"
+       append_arg "$cfg" max_range "--max-range"
        append_bool "$cfg" fix "--fix"
        append_bool "$cfg" no_fix "--no-fix"
        append_bool "$cfg" no_crc_check "--no-crc-check"
        append_bool "$cfg" phase_enhance "--phase-enhance"
-       append_bool "$cfg" agressive "--agressive"
+       append_bool "$cfg" aggressive "--aggressive"
        append_bool "$cfg" mlat "--mlat"
        append_bool "$cfg" stats "--stats"
+       append_bool "$cfg" stats_range "--stats-range"
        append_arg "$cfg" stats_every "--stats-every"
        append_bool "$cfg" onlyaddr "--onlyaddr"
        append_bool "$cfg" metric "--metric"
        append_arg "$cfg" snip "--snip"
        append_arg "$cfg" debug "--debug"
        append_arg "$cfg" ppm "--ppm"
+       append_arg "$cfg" html_dir "--html-dir"
+       append_arg "$cfg" write_json "--write-json"
+       append_arg "$cfg" write_json_every "write-json-every"
+       append_arg "$cfg" json_location_accuracy "--json-location-accuracy"
+       append_bool "$cfg" oversample "--oversample"
+       append_bool "$cfg" dcfilter "--dcfilter"
+       append_bool "$cfg" measure_noise "--measure-noise"
 
        config_get_bool aux "$cfg" 'respawn' '0'
        [ "$aux" = 1 ] && procd_set_param respawn
diff --git a/utils/dump1090/patches/100-html_dir.patch b/utils/dump1090/patches/100-html_dir.patch
deleted file mode 100644 (file)
index 8976057..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/dump1090.h
-+++ b/dump1090.h
-@@ -178,7 +178,7 @@
- #define MODES_NET_SNDBUF_MAX  (7)               
- #ifndef HTMLPATH
--#define HTMLPATH   "./public_html"      // default path for gmap.html etc
-+#define HTMLPATH   "/usr/share/dump1090"      // default path for gmap.html etc
- #endif
- #define MODES_NOTUSED(V) ((void) V)
diff --git a/utils/flashrom/Config.in b/utils/flashrom/Config.in
deleted file mode 100644 (file)
index 552001a..0000000
+++ /dev/null
@@ -1,279 +0,0 @@
-menu "Flashrom configuration"
-       depends on PACKAGE_flashrom
-
-       choice
-               prompt "Default Programmer"
-               default DEFPROG_INTERNAL if FLASHROM_PCI
-               default DEFPROG_LINUX_SPI
-
-               config DEFPROG_INTERNAL
-                       depends on FRPROG_INTERNAL
-                       bool "Internal"
-
-               config DEFPROG_LINUX_SPI
-                       depends on FRPROG_LINUX_SPI
-                       bool "Linux SPI"
-
-               config DEFPROG_SERPROG
-                       depends on FRPROG_SERPROG
-                       bool "Serial"
-
-               config DEFPROG_RAYER_SPI
-                       depends on FRPROG_RAYER_SPI
-                       bool "Rayer SPI"
-
-               config DEFPROG_PONY_SPI
-                       depends on FRPROG_PONY_SPI
-                       bool "Pony SPI"
-
-               config DEFPROG_NIC3COM
-                       depends on FRPROG_NIC3COM
-                       bool "NIC3Com"
-
-               config DEFPROG_GFXNVIDIA
-                       depends on FRPROG_GFXNVIDIA
-                       bool "GFX Nvidia"
-
-               config DEFPROG_SATASII
-                       depends on FRPROG_SATASII
-                       bool "SATASII"
-
-#              config DEFPROG_ATAHPT
-#                      depends on FRPROG_ATAHPT
-#                      bool "Highpoint (HPT) ATA/RAID"
-
-               config DEFPROG_ATAVIA
-                       depends on FRPROG_ATAVIA
-                       bool "ATAVIA"
-
-               config DEFPROG_FT2232_SPI
-                       depends on FRPROG_FT2232_SPI
-                       bool "FT2232 SPI"
-
-               config DEFPROG_USBBLASTER_SPI
-                       depends on FRPROG_USBBLASTER_SPI
-                       bool "USBBlaster SPI"
-
-#              config DEFPROG_MSTARDDC_SPI
-#                      depends on FRPROG_MSTARDDC_SPI
-#                      bool "MSTAR DDC SPI"
-
-               config DEFPROG_PICKIT2_SPI
-                       depends on FRPROG_PICKIT2_SPI
-                       bool "PICkit2 SPI"
-
-               config DEFPROG_DUMMY
-                       depends on FRPROG_DUMMY
-                       bool "Dummy"
-
-               config DEFPROG_DRKAISER
-                       depends on FRPROG_DRKAISER
-                       bool "Dr. Kaiser"
-
-               config DEFPROG_NICREALTEK
-                       depends on FRPROG_NICREALTEK
-                       bool "Realtek NICs"
-
-#              config DEFPROG_NICNATSEMI
-#                      depends on FRPROG_NICNATSEMI
-#                      bool "National Semiconductor NICs"
-
-               config DEFPROG_NICINTEL
-                       depends on FRPROG_NICINTEL
-                       bool "Intel NICs"
-
-               config DEFPROG_NICINTEL_SPI
-                       depends on FRPROG_NICINTEL_SPI
-                       bool "Intel NICs SPI"
-
-               config DEFPROG_NICINTEL_EEPROM
-                       depends on FRPROG_NICINTEL_EEPROM
-                       bool "Intel NICs EEPROM"
-
-               config DEFPROG_OGP_SPI
-                       depends on FRPROG_OGP_SPI
-                       bool "OGP SPI"
-
-               config DEFPROG_BUSPIRATE_SPI
-                       depends on FRPROG_BUSPIRATE_SPI
-                       bool "SPI BUS Pirate"
-
-#              config DEFPROG_DEDIPROG
-#                      depends on FRPROG_DEDIPROG
-#                      bool "Dediprog SF100"
-
-               config DEFPROG_SATAMV
-                       depends on FRPROG_SATAMV
-                       bool "Marvell SATA"
-
-               config DEFPROG_IT8212
-                       depends on FRPROG_IT8212
-                       bool "ITE IT8212F PATA"
-       endchoice
-
-
-       menu "Misc Programmers"
-               config FRPROG_LINUX_SPI
-                       bool "Linux SPI"
-                       default y
-
-#              config FRPROG_MSTARDDC_SPI
-#                      bool "MSTAR DDC"
-#                      default n
-
-               config FRPROG_DUMMY
-                       bool "Dummy"
-                       default y
-       endmenu
-
-
-       config FLASHROM_FTDI
-               bool "FTDI Support"
-               default y
-
-       menu "FTDI Programmers"
-               depends on FLASHROM_FTDI
-
-               config FRPROG_FT2232_SPI
-                       depends on FLASHROM_FTDI
-                       bool "FT2232 SPI"
-                       default y
-
-               config FRPROG_USBBLASTER_SPI
-                       depends on FLASHROM_FTDI
-                       bool "USBBlaster SPI"
-                       default y
-       endmenu
-
-
-       config FLASHROM_PCI
-               bool "PCI Support"
-               default y if (TARGET_x86||TARGET_x86_64)
-
-       menu "PCI Programmers"
-               depends on FLASHROM_PCI
-
-               config FRPROG_INTERNAL
-                       depends on FLASHROM_PCI
-                       bool "Internal"
-                       default y
-
-               config FRPROG_RAYER_SPI
-                       depends on FLASHROM_PCI
-                       bool "Rayer SPI"
-                       default y
-
-               config FRPROG_NIC3COM
-                       depends on FLASHROM_PCI
-                       bool "NIC3Com"
-                       default y
-
-               config FRPROG_GFXNVIDIA
-                       depends on FLASHROM_PCI
-                       bool "GFX Nvidia"
-                       default y
-
-               config FRPROG_SATASII
-                       depends on FLASHROM_PCI
-                       bool "SATASII"
-                       default y
-
-#              config FRPROG_ATAHPT
-#                      depends on FLASHROM_PCI
-#                      bool "Highpoint (HPT) ATA/RAID"
-#                      default n
-
-               config FRPROG_ATAVIA
-                       depends on FLASHROM_PCI
-                       bool "ATAVIA"
-                       default y
-
-               config FRPROG_IT8212
-                       depends on FLASHROM_PCI
-                       bool "ITE IT8212F PATA"
-                       default y
-
-               config FRPROG_DRKAISER
-                       depends on FLASHROM_PCI
-                       bool "Dr. Kaiser"
-                       default y
-
-               config FRPROG_NICREALTEK
-                       depends on FLASHROM_PCI
-                       bool "Realtek NICs"
-                       default y
-
-#              config FRPROG_NICNATSEMI
-#                      depends on FLASHROM_PCI
-#                      bool "National Semiconductor NICs"
-#                      default n
-
-               config FRPROG_NICINTEL
-                       depends on FLASHROM_PCI
-                       bool "Intel NICs"
-                       default y
-
-               config FRPROG_NICINTEL_SPI
-                       depends on FLASHROM_PCI
-                       bool "Intel NICs SPI"
-                       default y
-
-               config FRPROG_NICINTEL_EEPROM
-                       depends on FLASHROM_PCI
-                       bool "Intel NICs EEPROM"
-                       default y
-
-               config FRPROG_OGP_SPI
-                       depends on FLASHROM_PCI
-                       bool "OGP SPI"
-                       default y
-
-               config FRPROG_SATAMV
-                       depends on FLASHROM_PCI
-                       bool "Marvell SATA"
-                       default y
-       endmenu
-
-
-       config FLASHROM_SERIAL
-               bool "Serial Support"
-               default y
-
-       menu "Serial Programmers"
-               depends on FLASHROM_SERIAL
-
-               config FRPROG_SERPROG
-                       depends on FLASHROM_SERIAL
-                       bool "Serial"
-                       default y
-
-               config FRPROG_PONY_SPI
-                       depends on FLASHROM_SERIAL
-                       bool "Pony SPI"
-                       default y
-
-               config FRPROG_BUSPIRATE_SPI
-                       depends on FLASHROM_SERIAL
-                       bool "SPI BUS Pirate"
-                       default y
-       endmenu
-
-
-       config FLASHROM_USB
-               bool "USB Support"
-               default y
-
-       menu "USB Programmers"
-               depends on FLASHROM_USB
-
-               config FRPROG_PICKIT2_SPI
-                       depends on FLASHROM_USB
-                       bool "PICkit2 SPI"
-                       default y
-
-#              config FRPROG_DEDIPROG
-#                      depends on FLASHROM_USB
-#                      bool "Dediprog SF100"
-#                      default n
-       endmenu
-endmenu
index af7b5e1dd0fa8547e6da48b6ebf5388dfdcb3f52..e6e38b43192e98344b53a5e704a627926f9d7579 100644 (file)
@@ -9,13 +9,16 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=flashrom
 PKG_VERSION:=0.9.8
-PKG_RELEASE:=3
+PKG_RELEASE:=5
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=http://download.flashrom.org/releases
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
 PKG_MD5SUM:=ac513076b63ab7eb411a7694bb8f6fda
 PKG_MAINTAINER:=Álvaro Fernández Rojas <noltari@gmail.com>
 
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_SOURCE_SUBDIR)
+
 PKG_LICENSE:=GPL-2.0
 PKG_LICENSE_FILES:=COPYING
 
@@ -24,34 +27,83 @@ PKG_INSTALL:=1
 include $(INCLUDE_DIR)/package.mk
 include flashrom.mk
 
-define Package/flashrom
+TARGET_CFLAGS+= \
+       -std=gnu89
+
+MAKE_FLAGS+= \
+       PREFIX="/usr"
+
+define Package/flashrom/default
   SECTION:=utils
   CATEGORY:=Utilities
   TITLE:=FlashROM Utility
   URL:=http://www.flashrom.org/
-  DEPENDS:=\
-       +(TARGET_x86||TARGET_x86_64):dmidecode \
-       +FLASHROM_FTDI:libftdi \
-       +FLASHROM_PCI:pciutils \
-       +FLASHROM_USB:libusb-compat
 endef
 
-define Package/flashrom/config
-       source "$(SOURCE)/Config.in"
+define Package/flashrom
+  $(Package/flashrom/default)
+  TITLE+= (full)
+  DEPENDS+= \
+    +(PACKAGE_flashrom&&(TARGET_x86||TARGET_x86_64)):dmidecode \
+    +PACKAGE_flashrom:libftdi \
+    +PACKAGE_flashrom:libusb-compat \
+    +PACKAGE_flashrom:pciutils
+  VARIANT:=full
+  DEFAULT_VARIANT:=1
+endef
+
+define Package/flashrom-pci
+  $(Package/flashrom/default)
+  TITLE+= (pci)
+  DEPENDS+= \
+    +(PACKAGE_flashrom-pci&&(TARGET_x86||TARGET_x86_64)):dmidecode \
+    +PACKAGE_flashrom-pci:pciutils
+  VARIANT:=pci
+endef
+
+define Package/flashrom-spi
+  $(Package/flashrom/default)
+  TITLE+= (spi)
+  VARIANT:=spi
 endef
 
-define Package/flashrom/description
+define Package/flashrom-usb
+  $(Package/flashrom/default)
+  TITLE+= (usb)
+  DEPENDS+= \
+    +PACKAGE_flashrom-usb:libftdi \
+    +PACKAGE_flashrom-usb:libusb-compat
+  VARIANT:=usb
+endef
+
+define Package/flashrom/default/description
  flashrom is an utility for identifying, reading, writing, verifying
  and erasing flash chips. It's often used to flash BIOS/EFI/coreboot
  /firmware images.
 endef
-
-MAKE_FLAGS += \
-       PREFIX="/usr"
+Package/flashrom/description = $(Package/flashrom/default/description)
+Package/flashrom-pci/description = $(Package/flashrom/default/description)
+Package/flashrom-spi/description = $(Package/flashrom/default/description)
+Package/flashrom-usb/description = $(Package/flashrom/default/description)
 
 define Package/flashrom/install
        $(INSTALL_DIR) $(1)/usr/sbin
-       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/flashrom $(1)/usr/sbin/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/flashrom $(1)/usr/sbin/flashrom
+endef
+define Package/flashrom-pci/install
+       $(INSTALL_DIR) $(1)/usr/sbin
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/flashrom $(1)/usr/sbin/flashrom-pci
+endef
+define Package/flashrom-spi/install
+       $(INSTALL_DIR) $(1)/usr/sbin
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/flashrom $(1)/usr/sbin/flashrom-spi
+endef
+define Package/flashrom-usb/install
+       $(INSTALL_DIR) $(1)/usr/sbin
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/flashrom $(1)/usr/sbin/flashrom-usb
 endef
 
 $(eval $(call BuildPackage,flashrom))
+$(eval $(call BuildPackage,flashrom-pci))
+$(eval $(call BuildPackage,flashrom-spi))
+$(eval $(call BuildPackage,flashrom-usb))
index 14fc5d88d23a2f2487196dd4f9e15e5cc1254508..0ca82b6d05d603ef4eafdd654dc004f037763849 100644 (file)
@@ -1,54 +1,88 @@
-# Flashrom configuration
+# Flashrom variants
+
+define DefaultProgrammer
+  MAKE_FLAGS += CONFIG_DEFAULT_PROGRAMMER=PROGRAMMER_$(1)
+endef
 define DefineConfig
-  ifeq ($(CONFIG_FLASHROM_$(1)),)
-    MAKE_FLAGS += NEED_$(1)=0
-  endif
+  MAKE_FLAGS += NEED_$(1)=$(2)
 endef
 define DefineProgrammer
-  ifeq ($(CONFIG_FRPROG_$(1)),)
-    MAKE_FLAGS += CONFIG_$(1)=0
-  endif
-  ifneq ($(CONFIG_DEFPROG_$(1)),)
-    MAKE_FLAGS += CONFIG_DEFAULT_PROGRAMMER=CONFIG_$(1)
+  # Selecting invalid programmers will fail
+  # Only disable unwanted programmers and keep the default ones
+  ifeq ($(2),no)
+    MAKE_FLAGS += CONFIG_$(1)=$(2)
   endif
 endef
 
+ifeq ($(BUILD_VARIANT),full)
+  $(eval $(call DefaultProgrammer,LINUX_SPI))
+  FLASHROM_BASIC := yes
+  FLASHROM_FTDI := yes
+  FLASHROM_PCI := yes
+  FLASHROM_SERIAL := yes
+  FLASHROM_USB := yes
+endif
+ifeq ($(BUILD_VARIANT),pci)
+  $(eval $(call DefaultProgrammer,INTERNAL))
+  FLASHROM_BASIC := yes
+  FLASHROM_FTDI := no
+  FLASHROM_PCI := yes
+  FLASHROM_SERIAL := no
+  FLASHROM_USB := no
+endif
+ifeq ($(BUILD_VARIANT),spi)
+  $(eval $(call DefaultProgrammer,LINUX_SPI))
+  FLASHROM_BASIC := yes
+  FLASHROM_FTDI := no
+  FLASHROM_PCI := no
+  FLASHROM_SERIAL := no
+  FLASHROM_USB := no
+endif
+ifeq ($(BUILD_VARIANT),usb)
+  $(eval $(call DefaultProgrammer,SERPROG))
+  FLASHROM_BASIC := yes
+  FLASHROM_FTDI := yes
+  FLASHROM_PCI := no
+  FLASHROM_SERIAL := yes
+  FLASHROM_USB := yes
+endif
+
 # Misc
-$(eval $(call DefineProgrammer,LINUX_SPI))
-#$(eval $(call DefineProgrammer,MSTARDDC_SPI))
-$(eval $(call DefineProgrammer,DUMMY))
+$(eval $(call DefineProgrammer,LINUX_SPI,$(FLASHROM_BASIC)))
+#$(eval $(call DefineProgrammer,MSTARDDC_SPI,$(FLASHROM_BASIC)))
+$(eval $(call DefineProgrammer,DUMMY,$(FLASHROM_BASIC)))
 
 # FTDI
-$(eval $(call DefineConfig,FTDI))
-$(eval $(call DefineProgrammer,FT2232_SPI))
-$(eval $(call DefineProgrammer,USBBLASTER_SPI))
+$(eval $(call DefineConfig,FTDI,$(FLASHROM_FTDI)))
+$(eval $(call DefineProgrammer,FT2232_SPI,$(FLASHROM_FTDI)))
+$(eval $(call DefineProgrammer,USBBLASTER_SPI,$(FLASHROM_FTDI)))
 
 # PCI
-$(eval $(call DefineConfig,PCI))
-$(eval $(call DefineProgrammer,INTERNAL))
-$(eval $(call DefineProgrammer,RAYER_SPI))
-$(eval $(call DefineProgrammer,NIC3COM))
-$(eval $(call DefineProgrammer,GFXNVIDIA))
-$(eval $(call DefineProgrammer,SATASII))
-#$(eval $(call DefineProgrammer,ATAHPT))
-$(eval $(call DefineProgrammer,ATAVIA))
-$(eval $(call DefineProgrammer,IT8212))
-$(eval $(call DefineProgrammer,DRKAISER))
-$(eval $(call DefineProgrammer,NICREALTEK))
-#$(eval $(call DefineProgrammer,NICNATSEMI))
-$(eval $(call DefineProgrammer,NICINTEL))
-$(eval $(call DefineProgrammer,NICINTEL_SPI))
-$(eval $(call DefineProgrammer,NICINTEL_EEPROM))
-$(eval $(call DefineProgrammer,OGP_SPI))
-$(eval $(call DefineProgrammer,SATAMV))
+$(eval $(call DefineConfig,PCI,$(FLASHROM_PCI)))
+$(eval $(call DefineProgrammer,INTERNAL,$(FLASHROM_PCI)))
+$(eval $(call DefineProgrammer,RAYER_SPI,$(FLASHROM_PCI)))
+$(eval $(call DefineProgrammer,NIC3COM,$(FLASHROM_PCI)))
+$(eval $(call DefineProgrammer,GFXNVIDIA,$(FLASHROM_PCI)))
+$(eval $(call DefineProgrammer,SATASII,$(FLASHROM_PCI)))
+#$(eval $(call DefineProgrammer,ATAHPT,$(FLASHROM_PCI)))
+$(eval $(call DefineProgrammer,ATAVIA,$(FLASHROM_PCI)))
+$(eval $(call DefineProgrammer,IT8212,$(FLASHROM_PCI)))
+$(eval $(call DefineProgrammer,DRKAISER,$(FLASHROM_PCI)))
+$(eval $(call DefineProgrammer,NICREALTEK,$(FLASHROM_PCI)))
+#$(eval $(call DefineProgrammer,NICNATSEMI,$(FLASHROM_PCI)))
+$(eval $(call DefineProgrammer,NICINTEL,$(FLASHROM_PCI)))
+$(eval $(call DefineProgrammer,NICINTEL_SPI,$(FLASHROM_PCI)))
+$(eval $(call DefineProgrammer,NICINTEL_EEPROM,$(FLASHROM_PCI)))
+$(eval $(call DefineProgrammer,OGP_SPI,$(FLASHROM_PCI)))
+$(eval $(call DefineProgrammer,SATAMV,$(FLASHROM_PCI)))
 
 # Serial
-$(eval $(call DefineConfig,SERIAL))
-$(eval $(call DefineProgrammer,SERPROG))
-$(eval $(call DefineProgrammer,PONY_SPI))
-$(eval $(call DefineProgrammer,BUSPIRATE_SPI))
+$(eval $(call DefineConfig,SERIAL,$(FLASHROM_SERIAL)))
+$(eval $(call DefineProgrammer,SERPROG,$(FLASHROM_SERIAL)))
+$(eval $(call DefineProgrammer,PONY_SPI,$(FLASHROM_SERIAL)))
+$(eval $(call DefineProgrammer,BUSPIRATE_SPI,$(FLASHROM_SERIAL)))
 
 # USB
-$(eval $(call DefineConfig,USB))
-$(eval $(call DefineProgrammer,PICKIT2_SPI))
-#$(eval $(call DefineProgrammer,DEDIPROG))
+$(eval $(call DefineConfig,USB,$(FLASHROM_USB)))
+$(eval $(call DefineProgrammer,PICKIT2_SPI,$(FLASHROM_USB)))
+#$(eval $(call DefineProgrammer,DEDIPROG,$(FLASHROM_USB)))
index a1fd0b39d580359f1f8271ba762079afb7083591..e31d39005e5ca2ca27bbe367545e1b0f27bf57f4 100644 (file)
@@ -9,12 +9,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=gammu
-PKG_VERSION:=1.36.4
+PKG_VERSION:=1.36.6
 PKG_RELEASE:=1
 
 PKG_SOURCE_URL:=http://dl.cihar.com/gammu/releases/
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
-PKG_MD5SUM:=5149da5ddf5a68e1e8a4a5c2e0131a45
+PKG_MD5SUM:=9047f0598602144a99153f5e61104529
 PKG_MAINTAINER:=Vitaly Protsko <villy@sft.ru>
 PKG_LICENCE:=GPL-2.0
 
diff --git a/utils/gpsd/Makefile b/utils/gpsd/Makefile
new file mode 100644 (file)
index 0000000..2351f71
--- /dev/null
@@ -0,0 +1,144 @@
+#
+# Copyright (C) 2006-2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=gpsd
+PKG_VERSION:=3.15
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://download-mirror.savannah.gnu.org/releases/gpsd/
+PKG_MD5SUM:=afd79b87337fadf38ee2a7c4314dac79
+
+PKG_MAINTAINER:=Pushpal Sidhu <psidhu@gateworks.com>
+PKG_LICENSE:=BSD-3-Clause
+PKG_LICENSE_FILES:=COPYING
+
+PKG_BUILD_DEPENDS:=libncurses libusb-1.0
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/scons.mk
+
+define Package/gpsd/Default
+  DEPENDS:=+librt +libncurses
+  URL:=http://catb.org/gpsd/
+endef
+
+define Package/gpsd/Default/description
+  gpsd is a userland daemon acting as a translator between GPS and AIS receivers
+  and their clients. gpsd listens on port 2947 for clients requesting
+  position/time/velocity information.  The receivers are expected to generate
+  position information in a well-known format -- as NMEA-0183 sentences, SiRF
+  binary, Rockwell binary, Garmin binary format, or other vendor binary
+  protocols.  gpsd takes this information from the GPS and translates it into
+  something uniform and easier to understand for clients.
+endef
+
+define Package/gpsd
+  $(call Package/gpsd/Default)
+  SECTION:=net
+  CATEGORY:=Network
+  DEPENDS+= +libgps +libusb-1.0
+  TITLE:=An interface daemon for GPS receivers
+endef
+
+define Package/gpsd/conffiles
+/etc/config/gpsd
+endef
+
+define Package/gpsd/description
+  $(call Package/gpsd/Default/description)
+  This package contains the GPS daemon.
+endef
+
+define Package/gpsd-clients
+  $(call Package/gpsd/Default)
+  SECTION:=net
+  CATEGORY:=Network
+  DEPENDS+= +libgps +libncurses +libusb-1.0
+  TITLE:=GPS tools and clients
+endef
+
+define Package/gpsd-clients/description
+  $(call Package/gpsd/Default/description)
+  This package contains auxiliary tools and example clients for monitoring and
+  testing the GPS daemon.
+endef
+
+define Package/libgps
+  $(call Package/gpsd/Default)
+  SECTION:=libs
+  CATEGORY:=Libraries
+  DEPENDS+= +libcap
+  TITLE:=C service library for communicating with the GPS daemon
+endef
+
+define Package/libgps/description
+  $(call Package/gpsd/Default/description)
+  This package contains the libgps library.
+endef
+
+SCONS_OPTIONS += \
+       dbus_export=no \
+       tsip=no \
+       fv18=no \
+       tripmate=no \
+       earthmate=no \
+       itrax=no \
+       navcom=no \
+       ubx=no \
+       evermore=no \
+       ntrip=no \
+       libgpsmm=no \
+       libQgpsmm=no \
+       bluez=no \
+       nostrip=yes \
+       python=no \
+       implicit_link=no \
+       chrpath=no
+
+define Build/InstallDev
+       $(INSTALL_DIR) $(1)/usr/include
+       $(CP) $(PKG_INSTALL_DIR)/usr/include/gps.h $(1)/usr/include/
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libgps*.so* $(1)/usr/lib/
+       $(INSTALL_DIR) $(1)/usr/lib/pkgconfig
+       $(CP) \
+               $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libgps*.pc \
+               $(1)/usr/lib/pkgconfig/
+endef
+
+define Package/gpsd/install
+       $(INSTALL_DIR) $(1)/etc/config
+       $(INSTALL_CONF) ./files/gpsd.config $(1)/etc/config/gpsd
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_BIN) ./files/gpsd.init $(1)/etc/init.d/gpsd
+       $(INSTALL_DIR) $(1)/etc/hotplug.d/usb
+       $(INSTALL_DATA) ./files/gpsd.hotplug $(1)/etc/hotplug.d/usb/20-gpsd
+       $(INSTALL_DIR) $(1)/usr/sbin
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/gpsd $(1)/usr/sbin/
+endef
+
+define Package/gpsd-clients/install
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(INSTALL_BIN) \
+               $(PKG_INSTALL_DIR)/usr/bin/cgps \
+               $(PKG_INSTALL_DIR)/usr/bin/gps{ctl,decode,mon,pipe} \
+               $(PKG_INSTALL_DIR)/usr/bin/gpxlogger \
+               $(PKG_INSTALL_DIR)/usr/bin/lcdgps \
+               $(1)/usr/bin/
+endef
+
+define Package/libgps/install
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libgps.so.* $(1)/usr/lib/
+endef
+
+$(eval $(call BuildPackage,gpsd))
+$(eval $(call BuildPackage,gpsd-clients))
+$(eval $(call BuildPackage,libgps))
diff --git a/utils/gpsd/files/gpsd.config b/utils/gpsd/files/gpsd.config
new file mode 100644 (file)
index 0000000..ef19202
--- /dev/null
@@ -0,0 +1,5 @@
+config gpsd core
+    option device    "/dev/ttyUSB0"
+    option port    "2947"
+    option listen_globally    "false"
+    option enabled    "true"
diff --git a/utils/gpsd/files/gpsd.hotplug b/utils/gpsd/files/gpsd.hotplug
new file mode 100644 (file)
index 0000000..fc15dda
--- /dev/null
@@ -0,0 +1,16 @@
+case "$ACTION" in
+    add)
+        # start process
+        # only pl2303 devices are handled
+        if [ "$PRODUCT" = "67b/2303/300" ] && [ "$TYPE" = "0/0/0" ] && [ "$INTERFACE" = "255/0/0" ]; then
+            sleep 3 && /etc/init.d/gpsd start
+        fi
+        ;;
+    remove)
+        # stop process
+        # only pl2303 devices are handled
+        if [ "$PRODUCT" = "67b/2303/300" ] && [ "$TYPE" = "0/0/0" ] && [ "$INTERFACE" = "255/0/0" ]; then
+            /etc/init.d/gpsd stop
+        fi
+        ;;
+esac
diff --git a/utils/gpsd/files/gpsd.init b/utils/gpsd/files/gpsd.init
new file mode 100644 (file)
index 0000000..96cee78
--- /dev/null
@@ -0,0 +1,32 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2009-2011 OpenWrt.org
+START=50
+
+NAME=gpsd
+PIDF=/var/run/$NAME.pid
+PROG=/usr/sbin/$NAME
+
+start() {
+    config_load gpsd
+    config_get device core device
+    config_get port core port
+    config_get_bool listen_globally core listen_globally
+    config_get_bool enabled core enabled
+    [ "$enabled" != "1" ] && exit
+    logger -t "$NAME" "Starting..."
+    [ ! -c "$device" ] && {
+        logger -t "$NAME" "Unable to find device $device. Exiting."
+        exit 1
+    }
+    [ "$listen_globally" != "0" ] && append args "-G"
+    $PROG -n -P $PIDF -S $port $args $device
+}
+
+stop() {
+    logger -t "$NAME" "Stopping..."
+    [ -f "$PIDF" ] && {
+        read PID < "$PIDF"
+        kill -9 $PID
+        rm $PIDF
+    }
+}
diff --git a/utils/gpsd/patches/0001-Remove-a-BSD-ism.patch b/utils/gpsd/patches/0001-Remove-a-BSD-ism.patch
new file mode 100644 (file)
index 0000000..55004ab
--- /dev/null
@@ -0,0 +1,42 @@
+From 95c99f69e026e8c57aecba545e51c97f3b284e75 Mon Sep 17 00:00:00 2001
+From: "Gary E. Miller" <gem@rellim.com>
+Date: Tue, 23 Jun 2015 14:36:26 -0700
+Subject: [PATCH] Remove a BSD-ism.
+
+CTRL('L') is a BSD-ism.  CTRL() is defined in sys/ttydefaults.h
+which does not always exist.  Instead of adding scons tests for
+needing CTRL() and its include files just replace with a simple
+constant.
+
+Needed for musl and found by Baruch Siach <baruch@tkos.co.il>
+---
+ gpsmon.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/gpsmon.c b/gpsmon.c
+index c3001c8..58c8300 100644
+--- a/gpsmon.c
++++ b/gpsmon.c
+@@ -583,6 +583,9 @@ static void select_packet_monitor(struct gps_device_t *device)
+       (void)wnoutrefresh(devicewin);
+ }
++/* Control-L character */
++#define CTRL_L 0x0C
++
+ static char *curses_get_command(void)
+ /* char-by-char nonblocking input, return accumulated command line on \n */
+ {
+@@ -591,7 +594,8 @@ static char *curses_get_command(void)
+     int c;
+     c = wgetch(cmdwin);
+-    if (c == CTRL('L')) {
++    if (CTRL_L == c) {
++        /* ^L is to repaint the screen */
+       (void)clearok(stdscr, true);
+       if (active != NULL && (*active)->initialize != NULL)
+           (void)(*active)->initialize();
+-- 
+2.6.0
+
index c4703bc56915772bf85814ac28c201edab07ca04..7b373bbf6654500af992539ac8ca401fbcbe9862 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2010-2012 OpenWrt.org
+# Copyright (C) 2010-2015 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=grep
-PKG_VERSION:=2.21
-PKG_RELEASE:=2
+PKG_VERSION:=2.22
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@GNU/grep
-PKG_MD5SUM:=43c48064d6409862b8a850db83c8038a
+PKG_MD5SUM:=e1015e951a49a82b02e38891026ef5df
 
 PKG_LICENSE:=GPL-3.0
 PKG_LICENSE_FILES:=COPYING
diff --git a/utils/grep/patches/0001-grep-F-fix-a-heap-buffer-read-overrun.patch b/utils/grep/patches/0001-grep-F-fix-a-heap-buffer-read-overrun.patch
deleted file mode 100644 (file)
index df70359..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/src/kwset.c b/src/kwset.c
-index 4003c8d..376f7c3 100644
---- a/src/kwset.c
-+++ b/src/kwset.c
-@@ -643,6 +643,8 @@ bmexec_trans (kwset_t kwset, char const *text, size_t size)
-                     if (! tp)
-                       return -1;
-                     tp++;
-+                    if (ep <= tp)
-+                      break;
-                   }
-               }
-           }
---
-cgit v0.9.0.2
index 3ca592cfb60cfdbeece35f6f633b9542b05a7162..fb02cabd205b0b936e74a1e88d80ad973dd5e8ab 100644 (file)
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=joe
-PKG_VERSION:=4.0
-PKG_RELEASE:=4
+PKG_VERSION:=4.1
+PKG_RELEASE:=1
 
 PKG_SOURCE_URL:=@SF/joe-editor
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_MD5SUM:=3c3b6d5089a29ddc746ee89bab59286e
+PKG_MD5SUM:=b8c9ab4295e3208ddbbaa9c1141564f9
 PKG_BUILD_DIR=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
 PKG_MAINTAINER:=Vitaly Protsko <villy@sft.ru>
-PKG_LICENCE:=GPL-1.0
+PKG_LICENCE:=GPL-2.0
 
 include $(INCLUDE_DIR)/package.mk
 
@@ -49,9 +49,6 @@ endef
 define Package/joe/install
        $(INSTALL_DIR) $(1)/usr/bin
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/joe/joe $(1)/usr/bin/
-       for i in jmacs jstar rjoe jpico; do \
-         ln -sf joe $(1)/usr/bin/$$$$i; \
-       done
        $(INSTALL_DIR) $(1)/etc/joe
        $(INSTALL_CONF) ./files/joerc $(1)/etc/joe/joerc
 endef
index 626795bf8b5855021548aec7a0765944bbfffca7..cbb8c91351e31b8fb5fe90ec522edfdcef42014f 100644 (file)
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
 PKG_NAME:=lcd4linux
 PKG_REV:=1203
 PKG_VERSION:=r$(PKG_REV)
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://ssl.bulix.org/svn/lcd4linux/trunk/
diff --git a/utils/lcd4linux/patches/173-glcd2usb-bigendian-fix.patch b/utils/lcd4linux/patches/173-glcd2usb-bigendian-fix.patch
new file mode 100644 (file)
index 0000000..97e03c7
--- /dev/null
@@ -0,0 +1,20 @@
+--- a/drv_GLCD2USB.c
++++ b/drv_GLCD2USB.c
+@@ -48,6 +48,7 @@
+ #include <fcntl.h>
+ #include <sys/time.h>
+ #include <usb.h>
++#include <endian.h>
+ #include "debug.h"
+ #include "cfg.h"
+@@ -487,6 +488,9 @@ static int drv_GLCD2USB_start(const char
+       return -1;
+     }
++    buffer.display_info.width = le16toh(buffer.display_info.width);
++    buffer.display_info.height = le16toh(buffer.display_info.height);
++
+     info("%s: display name = %s", Name, buffer.display_info.name);
+     info("%s: display resolution = %d * %d", Name, buffer.display_info.width, buffer.display_info.height);
+     info("%s: display flags: %x", Name, buffer.display_info.flags);
index f3893e966007a6d8bd1647587114308dce759f8a..2e79e8ea1ec30681092af36670470d44d253439b 100644 (file)
@@ -1,5 +1,5 @@
 #
-# Copyright (C) 2010-2012 OpenWrt.org
+# Copyright (C) 2010-2015 OpenWrt.org
 #
 # This is free software, licensed under the GNU General Public License v2.
 # See /LICENSE for more information.
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=less
-PKG_VERSION:=458
+PKG_VERSION:=481
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.greenwoodsoftware.com/less
-PKG_MD5SUM:=935b38aa2e73c888c210dedf8fd94f49
+PKG_MD5SUM:=50ef46065c65257141a7340123527767
 
 PKG_LICENSE:=GPL-3.0
 PKG_LICENSE_FILES:=COPYING
index a9e65a198b6d33dc5701e2b1728d613b2329cbe3..04be41405897b38a39452dacfb5beb24d7fd2fbf 100644 (file)
@@ -9,13 +9,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=LVM2
-PKG_VERSION:=2.02.126
+PKG_VERSION:=2.02.132
 PKG_RELEASE:=1
 PKG_LICENSE:=GPL-2.0 LGPL-2.1
 
 PKG_SOURCE:=$(PKG_NAME).$(PKG_VERSION).tgz
 PKG_SOURCE_URL:=ftp://sources.redhat.com/pub/lvm2
-PKG_MD5SUM:=38cd1953b62bd256c9e924adee01e995
+PKG_MD5SUM:=80af5af726949bbbb2aceb15b24b7d20
 PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME).$(PKG_VERSION)
 
index b0c730af037e43267c0265d885542c40ee8de949..c26232d440ab90c8dd0c12db58f837f018af6f30 100644 (file)
@@ -1,7 +1,7 @@
 --- a/lib/commands/toolcontext.c
 +++ b/lib/commands/toolcontext.c
-@@ -1686,8 +1686,10 @@ struct cmd_context *create_toolcontext(u
-                                      unsigned threaded)
+@@ -1740,8 +1740,10 @@ struct cmd_context *create_toolcontext(u
+                                      unsigned set_filters)
  {
        struct cmd_context *cmd;
 +#if defined(__GLIBC__) && !defined(VALGRIND_POOL)
@@ -11,7 +11,7 @@
  
  #ifdef M_MMAP_MAX
        mallopt(M_MMAP_MAX, 0);
-@@ -1723,7 +1725,7 @@ struct cmd_context *create_toolcontext(u
+@@ -1777,7 +1779,7 @@ struct cmd_context *create_toolcontext(u
        /* FIXME Make this configurable? */
        reset_lvm_errno(1);
  
@@ -20,7 +20,7 @@
        /* Set in/out stream buffering before glibc */
        if (set_buffering) {
                /* Allocate 2 buffers */
-@@ -2096,7 +2098,7 @@ void destroy_toolcontext(struct cmd_cont
+@@ -2160,7 +2162,7 @@ void destroy_toolcontext(struct cmd_cont
        if (cmd->libmem)
                dm_pool_destroy(cmd->libmem);
  
@@ -31,7 +31,7 @@
                if (is_valid_fd(STDIN_FILENO) &&
 --- a/tools/lvmcmdline.c
 +++ b/tools/lvmcmdline.c
-@@ -1722,6 +1722,7 @@ int lvm_split(char *str, int *argc, char
+@@ -1741,6 +1741,7 @@ int lvm_split(char *str, int *argc, char
  /* Make sure we have always valid filedescriptors 0,1,2 */
  static int _check_standard_fds(void)
  {
@@ -39,7 +39,7 @@
        int err = is_valid_fd(STDERR_FILENO);
  
        if (!is_valid_fd(STDIN_FILENO) &&
-@@ -1748,6 +1749,12 @@ static int _check_standard_fds(void)
+@@ -1767,6 +1768,12 @@ static int _check_standard_fds(void)
                       strerror(errno));
                return 0;
        }
index 868e100666b0fd1685e26eb1c2c6ee1401a3f34e..de9cecf1de4d5106e78361bfb8d9968bbddf14fc 100644 (file)
@@ -8,15 +8,15 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=lxc
-PKG_VERSION:=1.1.2
-PKG_RELEASE:=2
+PKG_VERSION:=1.1.3
+PKG_RELEASE:=1
 
 PKG_LICENSE:=LGPL-2.1+ BSD-2-Clause GPL-2.0
 PKG_MAINTAINER:=Luka Perkov <luka@openwrt.org>
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://linuxcontainers.org/downloads/lxc/
-PKG_MD5SUM:=3ebadacf5fe8bfe689fd7a09812b682c
+PKG_MD5SUM:=197abb5a28ab0b689c737eb1951023fb
 
 PKG_BUILD_DEPENDS:=lua
 PKG_BUILD_PARALLEL:=1
diff --git a/utils/lxc/patches/016-uninitialized-ret-in-monitor.patch b/utils/lxc/patches/016-uninitialized-ret-in-monitor.patch
deleted file mode 100644 (file)
index 7eca2ea..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/src/lxc/monitor.c
-+++ b/src/lxc/monitor.c
-@@ -181,7 +181,7 @@ int lxc_monitor_sock_name(const char *lx
- int lxc_monitor_open(const char *lxcpath)
- {
-       struct sockaddr_un addr;
--      int fd,ret;
-+      int fd,ret = 0;
-       int retry,backoff_ms[] = {10, 50, 100};
-       size_t len;
diff --git a/utils/lxc/patches/035-fix-undefined-lfd.patch b/utils/lxc/patches/035-fix-undefined-lfd.patch
new file mode 100644 (file)
index 0000000..6b57e26
--- /dev/null
@@ -0,0 +1,12 @@
+--- a/src/lxc/bdev.c
++++ b/src/lxc/bdev.c
+@@ -1936,3 +1936,3 @@ static int loop_mount(struct bdev *bdev)
+ {
+-      int lfd, ffd = -1, ret = -1;
++      int lfd = -1, ffd = -1, ret = -1;
+       struct loop_info64 lo;
+@@ -1974,3 +1974,3 @@ out:
+       if (ret < 0) {
+-              close(lfd);
++              if (lfd > -1) close(lfd);
+               bdev->lofd = -1;
diff --git a/utils/mbtools/Makefile b/utils/mbtools/Makefile
new file mode 100644 (file)
index 0000000..109adc6
--- /dev/null
@@ -0,0 +1,60 @@
+#
+# Copyright (C) 2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=mbtools
+
+PKG_VERSION:=2014-10-29
+PKG_RELEASE=$(PKG_SOURCE_VERSION)
+
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL:=git://github.com/webstack/mbtools
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
+PKG_SOURCE_VERSION:=149e9c69cec180f18cf8781cf5285b97352bf719
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
+
+PKG_FIXUP:=autoreconf
+PKG_BUILD_PARALLEL:=1
+PKG_INSTALL:=1
+
+PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
+PKG_LICENSE:=BSD-3-Clause
+PKG_LICENSE_FILES:=LICENSE
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/nls.mk
+
+define Package/mbtools
+  SECTION:=utils
+  CATEGORY:=Utilities
+  TITLE:=Modbus tools
+  DEPENDS:=+glib2 +libmodbus $(INTL_DEPENDS)
+endef
+
+define Package/mbtools/description
+  Modbus tools based on libmodbus to log data fetched by a master/client or
+  received by a slave/server (writing of registers). mbcollect is able to act
+  as client or server (in TCP or RTU)
+endef
+
+ifneq ($(INTL_FULL),)
+TARGET_LDFLAGS += \
+       -L$(INTL_PREFIX)/lib \
+       -Wl,-rpath-link=$(STAGING_DIR)/usr/lib
+
+endif
+
+define Package/mbtools/install
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/mbrecorder $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/mbcollect $(1)/usr/bin/
+       $(INSTALL_DIR) $(1)/etc
+       $(INSTALL_CONF) $(PKG_BUILD_DIR)/src/mbcollect.ini $(1)/etc
+endef
+
+$(eval $(call BuildPackage,mbtools))
diff --git a/utils/mbtools/patches/100-fix-unit-test-server-return-value.patch b/utils/mbtools/patches/100-fix-unit-test-server-return-value.patch
new file mode 100644 (file)
index 0000000..1ad7c12
--- /dev/null
@@ -0,0 +1,10 @@
+Index: mbtools-2014-10-29/tests/unit-test-server.c
+===================================================================
+--- mbtools-2014-10-29.orig/tests/unit-test-server.c
++++ mbtools-2014-10-29/tests/unit-test-server.c
+@@ -117,4 +117,5 @@ int main(int argc, char *argv[])
+     }
+     printf("Quit the loop: %s\n", modbus_strerror(errno));
+     signal_handler(0);
++    return 0;
+ }
index 1445aa1a77ada279924b732be1a40fc5d34ce66d..29e617df6adce3e043622231f52249d4895cf78f 100644 (file)
@@ -10,10 +10,10 @@ config MC_DIFFVIEWER
 
 config MC_EDITOR
        bool "Enable internal editor"
-       default n
+       default y
        help
            This option enables the built-in file editor.
-           Disabled by default.
+           Enabled by default.
 
 config MC_SUBSHELL
        bool "Enable concurrent subshell"
@@ -41,12 +41,11 @@ config MC_BACKGROUND
 
 config MC_CHARSET
        bool "Enable charset support"
-       default n
+       default y
        help
            This option adds support for selecting character set of the text in
            the internal viewer and editor and converting it on the fly.
-           The implementation is currently incomplete.
-           Disabled by default.
+           Enabled by default.
 
 config MC_VFS
        bool "Enable virtual filesystem support"
index ab8cd1b0300713049207ccea3a1bc71281557c58..b929d9e1aaff14ab13cc298da993b3d2ada4cb57 100644 (file)
@@ -8,15 +8,14 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=mc
-PKG_VERSION:=4.8.14
-PKG_RELEASE:=1.3
-PKG_MAINTAINER:=Dirk Brenken <dibdot@gmail.com>
+PKG_VERSION:=4.8.15
+PKG_RELEASE:=1
+PKG_MAINTAINER:=Dirk Brenken <dirk@brenken.org>
 PKG_LICENSE:=GPL-3.0+
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=http://ftp.midnight-commander.org/
-PKG_MD5SUM:=fbdaddb9edcf8925dcf3231331a8720b
-
+PKG_MD5SUM:=7c1935433866fdf59a3c2d9b7dae81ad
 PKG_BUILD_PARALLEL:=1
 PKG_FIXUP:=autoreconf
 
@@ -33,29 +32,32 @@ PKG_CONFIG_DEPENDS := \
 include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/nls.mk
 
-define Package/mc
-  SECTION:=utils
-  CATEGORY:=Utilities
-  DEPENDS:=+glib2 +libncurses +libmount +MC_VFS:libssh2 $(LIBRPC_DEPENDS) $(ICONV_DEPENDS)
-  TITLE:=Midnight Commander - a powerful visual file manager
-  URL:=http://www.midnight-commander.org/
-  MENU:=1
+define Package/$(PKG_NAME)
+       SECTION:=utils
+       CATEGORY:=Utilities
+       DEPENDS:=+glib2 +libncurses +libmount +MC_VFS:libssh2 $(LIBRPC_DEPENDS) $(ICONV_DEPENDS)
+       TITLE:=Midnight Commander - a powerful visual file manager
+       URL:=http://www.midnight-commander.org/
+       MENU:=1
 endef
 
-define Package/mc/config
+define Package/$(PKG_NAME)/config
        source "$(SOURCE)/Config.in"
 endef
 
-define Package/mc/description
- GNU Midnight Commander is a visual file manager,
- licensed under GNU General Public License and therefore qualifies as Free Software.
- It's a feature rich full-screen text mode application that allows you to copy,
- move and delete files and whole directory trees, search for files
- and run commands in the subshell. Internal viewer and editor are included.
+define Package/$(PKG_NAME)/description
+GNU Midnight Commander is a visual file manager,
+licensed under GNU General Public License and therefore qualifies as Free Software.
+It's a feature rich full-screen text mode application that allows you to copy,
+move and delete files and whole directory trees, search for files
+and run commands in the subshell. Internal viewer and editor are included.
+
 endef
 
 CONFIGURE_ARGS += \
        --disable-doxygen-doc \
+       --with-homedir=/etc/mc \
+       --with-included-gettext \
        --with-screen=ncurses \
        --without-gpm-mouse \
        --without-x \
@@ -98,10 +100,13 @@ CONFIGURE_ARGS += \
        --disable-vfs
 endif
 
-define Package/mc/install
+define Package/$(PKG_NAME)/install
        $(INSTALL_DIR) $(1)/usr/bin
        $(INSTALL_BIN) $(PKG_BUILD_DIR)/src/mc $(1)/usr/bin
        $(INSTALL_DIR) $(1)/etc/mc
+       $(INSTALL_DATA) $(PKG_BUILD_DIR)/misc/mc.charsets $(1)/etc/mc
+       $(INSTALL_DATA) $(PKG_BUILD_DIR)/misc/mc.keymap $(1)/etc/mc     
+       $(INSTALL_DATA) $(PKG_BUILD_DIR)/misc/mc.ext $(1)/etc/mc        
 ifeq ($(CONFIG_MC_DIFFVIEWER),y)
        ln -sf mc $(1)/usr/bin/mcdiff
 endif
@@ -111,12 +116,12 @@ endif
        $(INSTALL_DATA) $(PKG_BUILD_DIR)/misc/mc.menu $(1)/etc/mc
        $(INSTALL_DIR) $(1)/etc/mc/skins
        $(INSTALL_DATA) $(PKG_BUILD_DIR)/misc/skins/default.ini $(1)/etc/mc/skins
-       $(INSTALL_DIR) $(1)/root/.mc/cedit/Syntax
+       $(INSTALL_DIR) $(1)/etc/mc/mcedit/Syntax
 endef
 
-define Package/mc/conffiles
+define Package/$(PKG_NAME)/conffiles
 /etc/mc/mc.menu
 /etc/mc/skins/default.ini
 endef
 
-$(eval $(call BuildPackage,mc))
+$(eval $(call BuildPackage,$(PKG_NAME)))
index a089b2f4c5c0712fd16ecc6ad2cbcb9a14be7b92..00a0531eca4d427d02a316157a50960ab50d2cb8 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=mmc-utils
 PKG_VERSION=2015-05-01-$(PKG_SOURCE_VERSION)
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE_PROTO:=git
 PKG_SOURCE_URL:=https://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc-utils.git
@@ -44,7 +44,7 @@ endef
 
 define Build/Compile
        $(MAKE) -C $(PKG_BUILD_DIR) \
-               $(TARGET_CONFIGURE_OPTS) CFLAGS="$(TARGET_CFLAGS)" \
+               $(TARGET_CONFIGURE_OPTS) CFLAGS="$(TARGET_CFLAGS) -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2" \
                mmc
 endef
 
index 4a35b959b17545b4703c79a0fec02f34bd29cc25..1a2081335a4f5ad0c0789e2f8b6082af4d659255 100644 (file)
@@ -1,11 +1,9 @@
-Index: mmc-utils-f4eb241519f8d500ce6068a70d2389be39ac5189/Makefile
-===================================================================
---- mmc-utils-f4eb241519f8d500ce6068a70d2389be39ac5189.orig/Makefile
-+++ mmc-utils-f4eb241519f8d500ce6068a70d2389be39ac5189/Makefile
+--- a/Makefile
++++ b/Makefile
 @@ -1,5 +1,5 @@
  CC ?= gcc
 -AM_CFLAGS = -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2
-+AM_CFLAGS = -D_FILE_OFFSET_BITS=64 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2
++AM_CFLAGS = -D_FILE_OFFSET_BITS=64
  CFLAGS ?= -g -O2
  objects = \
        mmc.o \
index 74a9f995f3eb69a4a72cb30283b3f80726644fc1..1017ee88c55344d02ca2d4b6c0736e1c898b151b 100644 (file)
@@ -8,11 +8,11 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=open-plc-utils
-PKG_VERSION:=2015-07-06
+PKG_VERSION:=2015-09-21
 PKG_RELEASE:=$(PKG_SOURCE_VERSION)
 
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL:=git://github.com/qca/open-plc-utils.git
+PKG_SOURCE_URL:=https://github.com/qca/open-plc-utils.git
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
 PKG_SOURCE_VERSION:=885a1b7e2e663b5ab8797db6d40a0318131fdf18
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
@@ -75,6 +75,10 @@ OPEN_PLC_UTILS_APPS:=efbu efeu efru efsu edru edsu nics \
 
 $(foreach a,$(OPEN_PLC_UTILS_APPS),$(eval $(call GenPlugin,$(a))))
 
+ifdef CONFIG_USE_MUSL
+  TARGET_CFLAGS += -D__UCLIBC__
+endif
+
 define Build/Compile
        $(MAKE) -C $(PKG_BUILD_DIR) \
                EXTRA_CFLAGS="$(TARGET_CPPFLAGS) $(TARGET_CFLAGS)" \
diff --git a/utils/open2300/Makefile b/utils/open2300/Makefile
new file mode 100644 (file)
index 0000000..2354610
--- /dev/null
@@ -0,0 +1,67 @@
+# 
+# Copyright (C) 2010 segal.ubi.pt
+# Copyright (C) 2014 nunojpg@gmail.com
+# Copyright (C) 2015 dev@localnet.hu
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=open2300
+PKG_VERSION:=1.12
+PKG_RELEASE:=5
+PKG_LICENSE:=GPL-2.0+
+PKG_LICENSE_FILES:=COPYING
+
+PKG_SOURCE_PROTO:=svn
+PKG_SOURCE_URL:=http://www.lavrsen.dk/svn/open2300/trunk
+PKG_SOURCE_VERSION:=r12
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
+PKG_CHECK_FORMAT_SECURITY:=0
+
+PKG_MAINTAINER:=Gabor SZOLLOSI <dev@localnet.hu>
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/open2300
+  SECTION:=utils
+  CATEGORY:=Utilities
+  TITLE:=WS23XX weather station utilities
+  URL:=http://www.lavrsen.dk/foswiki/bin/view/Open2300
+endef
+
+define Package/open2300/description
+  This is an utility suite used to communicate with and collect data from a WS23XX wheather station.
+endef
+
+MAKE_FLAGS += \
+       CFLAGS="$(TARGET_CFLAGS) -DVERSION=\"$(PKG_VERSION)\""
+
+define Package/open2300/install
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/bin2300         $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/cw2300          $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/dump2300        $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/fetch2300       $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/histlog2300     $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/history2300     $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/interval2300    $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/light2300       $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/log2300         $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/minmax2300      $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/open2300        $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/wu2300          $(1)/usr/bin/
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/xml2300         $(1)/usr/bin/
+
+       $(INSTALL_DIR) $(1)/etc
+       $(INSTALL_DATA) ./files/open2300.conf $(1)/etc/
+
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib2300.so.1.11 $(1)/usr/lib/
+       ln -sf /usr/lib/lib2300.so.1.11 $(1)/usr/lib/lib2300.so
+endef
+
+$(eval $(call BuildPackage,open2300))
diff --git a/utils/open2300/files/open2300.conf b/utils/open2300/files/open2300.conf
new file mode 100644 (file)
index 0000000..6414b49
--- /dev/null
@@ -0,0 +1,65 @@
+# open2300.conf
+#
+# Configuration files for open2300 weather station tools
+#
+# Default locations in which the programs will search for this file: 
+# Programs search in this sequence:
+#  1. Path to config file including filename given as parameter (not supported by all tools)
+#  2. ./open2300.conf (current working directory)
+#  3. /jffs/etc/open2300.conf (typical DD-WRT location)
+#  4. /etc/open2300.conf (typical Linux location)
+#
+# All names are case sensitive!!!
+
+
+# Set to your serial port and time zone
+# For Windows use COM1, COM2, COM2 etc
+# For Linux use /dev/ttyS0, /dev/ttyS1 etc
+
+SERIAL_DEVICE                 /dev/tts/1  # /dev/ttyS0, /dev/ttyS1, COM1, COM2 etc
+TIMEZONE                      1           # Hours Relative to UTC. East is positive, west is negative
+
+
+# Units of measure (set them to your preference)
+# The units of measure are ignored by wu2300 and cw2300 because both requires specific units
+
+WIND_SPEED                    m/s         # select MPH (miles/hour), m/s, or km/h
+TEMPERATURE                   C           # Select C or F
+RAIN                          mm          # Select mm or IN
+PRESSURE                      hPa         # Select hPa, mb or INHG
+
+#### Citizens Weather variables (used only by cw2300)
+# Format for latitude is
+# [2 digit degrees][2 digit minutes].[2 decimals minutes - NOT seconds][N for north or S for south]
+# Format for longitude is
+# [3 digit degrees][2 digit minutes].[2 decimals minutes - NOT seconds][E for east or W for west]
+# Use leading zeros to get the format ####.##N (lat) and #####.##E (long)
+
+CITIZEN_WEATHER_ID            CW0000      # CW0000 should be replaced by HAM call or actual CW number
+CITIZEN_WEATHER_LATITUDE      5540.12N    # DDMM.mmN or S - example 55 deg, 40.23 minutes north
+CITIZEN_WEATHER_LONGITUDE     01224.60E   # DDDMM.mmE or W - example 12 deg, 24.60 minutes east
+
+APRS_SERVER   rotate.aprs.net   14580     # These are the APRS servers and ports for
+APRS_SERVER   first.aprs.net    14580     # Citizens Weather reporting.
+APRS_SERVER   second.aprs.net   14580     # They they are tried in the entered order
+APRS_SERVER   third.aprs.net    14580     # you may enter up to 5 alternate servers
+
+
+#### WEATHER UNDERGROUND variables (used only by wu2300)
+
+WEATHER_UNDERGROUND_ID        WUID        # ID received from Weather Underground
+WEATHER_UNDERGROUND_PASSWORD  WUPASSWORD  # Password for Weather Underground
+
+
+### MYSQL Settings (only used by mysql2300)
+
+#MYSQL_HOST              localhost         # Localhost or IP address/host name
+#MYSQL_USERNAME          open2300          # Name of the MySQL user that has access to the database
+#MYSQL_PASSWORD          mysql2300         # Password for the MySQL user
+#MYSQL_DATABASE          open2300          # Named of your database
+#MYSQL_PORT              0                 # TCP/IP Port number. Zero means default
+
+#PGSQL_CONNECT         hostaddr='127.0.0.1'dbname='open2300'user='postgres'password='sql' # Connection string
+#PGSQL_TABLE           weather           # Table name
+#PGSQL_STATION         open2300          # Unique station id
diff --git a/utils/open2300/patches/001-crosscompile.patch b/utils/open2300/patches/001-crosscompile.patch
new file mode 100644 (file)
index 0000000..0953047
--- /dev/null
@@ -0,0 +1,139 @@
+--- a/Makefile
++++ b/Makefile
+@@ -15,87 +15,82 @@
+ prefix = /usr/local
+ exec_prefix = ${prefix}
+ bindir = ${exec_prefix}/bin
++libdir = ${prefix}/lib
+ #########################################
+ CC  = gcc
+-OBJ = open2300.o rw2300.o linux2300.o win2300.o
+-LOGOBJ = log2300.o rw2300.o linux2300.o win2300.o
+-FETCHOBJ = fetch2300.o rw2300.o linux2300.o win2300.o
+-WUOBJ = wu2300.o rw2300.o linux2300.o win2300.o
+-CWOBJ = cw2300.o rw2300.o linux2300.o win2300.o
+-DUMPOBJ = dump2300.o rw2300.o linux2300.o win2300.o
+-HISTOBJ = history2300.o rw2300.o linux2300.o win2300.o
+-HISTLOGOBJ = histlog2300.o rw2300.o linux2300.o win2300.o
+-DUMPBINOBJ = bin2300.o rw2300.o linux2300.o win2300.o
+-XMLOBJ = xml2300.o rw2300.o linux2300.o win2300.o
+-PGSQLOBJ = pgsql2300.o rw2300.o linux2300.o win2300.o
+-LIGHTOBJ = light2300.o rw2300.o linux2300.o win2300.o
+-INTERVALOBJ = interval2300.o rw2300.o linux2300.o win2300.o
+-MINMAXOBJ = minmax2300.o rw2300.o linux2300.o win2300.o
+-MYSQLHISTLOGOBJ = mysqlhistlog2300.o rw2300.o linux2300.o win2300.o
++LIB = lib2300
++LIB_C = rw2300.c linux2300.c
++LIBOBJ = rw2300.o linux2300.o
+ VERSION = 1.11
+ CFLAGS = -Wall -O3 -DVERSION=\"$(VERSION)\"
+-CC_LDFLAGS = -lm
+-CC_WINFLAG = 
+-# For Windows - comment the two line above and un-comment the two lines below.
+-#CC_LDFLAGS = -lm -lwsock32
+-#CC_WINFLAG = -mwindows
++CC_LDFLAGS = -L. -lm -l2300
++LFLAGS = -shared -Wl,-soname
+ INSTALL = install
++MAKE_EXEC = $(CC) $(CFLAGS) $@.c -o $@ $(CC_LDFLAGS)
+ ####### Build rules
+-all: open2300 dump2300 log2300 fetch2300 wu2300 cw2300 history2300 histlog2300 bin2300 xml2300 light2300 interval2300 minmax2300 mysql2300 mysqlhistlog2300
++all: open2300 dump2300 log2300 fetch2300 wu2300 cw2300 history2300 histlog2300 bin2300 xml2300 light2300 interval2300 minmax2300 #mysql2300 mysqlhistlog2300
+-open2300 : $(OBJ)
+-      $(CC) $(CFLAGS) -o $@ $(OBJ) $(CC_LDFLAGS)
+-      
+-dump2300 : $(DUMPOBJ)
+-      $(CC) $(CFLAGS) -o $@ $(DUMPOBJ) $(CC_LDFLAGS)
++lib2300 :
++      $(CC) -c -fPIC $(CFLAGS) $(LIB_C)
++      $(CC) $(LFLAGS),$@.so -o $@.so.$(VERSION) $(LIBOBJ)
++      ln -sf $@.so.$(VERSION) $@.so
++
++open2300 : $(LIB)
++      $(MAKE_EXEC)
+       
+-log2300 : $(LOGOBJ)
+-      $(CC) $(CFLAGS) -o $@ $(LOGOBJ) $(CC_LDFLAGS) $(CC_WINFLAG)
++dump2300 : $(LIB)
++      $(MAKE_EXEC)
+       
+-fetch2300 : $(FETCHOBJ)
+-      $(CC) $(CFLAGS) -o $@ $(FETCHOBJ) $(CC_LDFLAGS)
++log2300 : $(LIB)
++      $(MAKE_EXEC)
+       
+-wu2300 : $(WUOBJ)
+-      $(CC) $(CFLAGS) -o $@ $(WUOBJ) $(CC_LDFLAGS) $(CC_WINFLAG)
++fetch2300 : $(LIB)
++      $(MAKE_EXEC)
++
++srv2300 : $(LIB)
++      $(MAKE_EXEC)
++
++wu2300 : $(LIB)
++      $(MAKE_EXEC)
+       
+-cw2300 : $(CWOBJ)
+-      $(CC) $(CFLAGS) -o $@ $(CWOBJ) $(CC_LDFLAGS) $(CC_WINFLAG)
++cw2300 : $(LIB)
++      $(MAKE_EXEC)
+-history2300 : $(HISTOBJ)
+-      $(CC) $(CFLAGS) -o $@ $(HISTOBJ) $(CC_LDFLAGS)
++history2300 : $(LIB)
++      $(MAKE_EXEC)
+       
+-histlog2300 : $(HISTLOGOBJ)
+-      $(CC) $(CFLAGS) -o $@ $(HISTLOGOBJ) $(CC_LDFLAGS) $(CC_WINFLAG)
++histlog2300 : $(LIB)
++      $(MAKE_EXEC)
+       
+-bin2300 : $(DUMPBINOBJ)
+-      $(CC) $(CFLAGS) -o $@ $(DUMPBINOBJ) $(CC_LDFLAGS)
++bin2300 : $(LIB)
++      $(MAKE_EXEC)
+-xml2300 : $(XMLOBJ)
+-      $(CC) $(CFLAGS) -o $@ $(XMLOBJ) $(CC_LDFLAGS) $(CC_WINFLAG)
++xml2300 : $(LIB)
++      $(MAKE_EXEC)
+-mysql2300:
+-      $(CC) $(CFLAGS) -o mysql2300 mysql2300.c rw2300.c linux2300.c $(CC_LDFLAGS) $(CC_WINFLAG) -I/usr/include/mysql -L/usr/lib/mysql -lmysqlclient
++mysql2300: $(LIB)
++      $(CC) $(CFLAGS) $@.c -o $@ -I/usr/include/mysql -L/usr/lib/mysql $(CC_LDFLAGS) -lmysqlclient
+-pgsql2300: $(PGSQLOBJ)
+-      $(CC) $(CFLAGS) -o $@ $(PGSQLOBJ) $(CC_LDFLAGS) $(CC_WINFLAG) -I/usr/include/pgsql -L/usr/lib/pgsql -lpq
++pgsql2300: $(LIB)
++      $(CC) $(CFLAGS) $@.c -o $@ -I/usr/include/pgsql -L/usr/lib/pgsql $(CC_LDFLAGS) -lpq
+-light2300: $(LIGHTOBJ)
+-      $(CC) $(CFLAGS) -o $@ $(LIGHTOBJ) $(CC_LDFLAGS)
++light2300: $(LIB)
++      $(MAKE_EXEC)
+       
+-interval2300: $(INTERVALOBJ)
+-      $(CC) $(CFLAGS) -o $@ $(INTERVALOBJ) $(CC_LDFLAGS)
++interval2300: $(LIB)
++      $(MAKE_EXEC)
+       
+-minmax2300: $(MINMAXOBJ)
+-      $(CC) $(CFLAGS) -o $@ $(MINMAXOBJ) $(CC_LDFLAGS) $(CC_WINFLAG)
++minmax2300: $(LIB)
++      $(MAKE_EXEC)
+       
+-mysqlhistlog2300 :
+-      $(CC) $(CFLAGS) -o mysqlhistlog2300 mysqlhistlog2300.c rw2300.c linux2300.c $(CC_LDFLAGS) $(CC_WINFLAG) -I/usr/include/mysql -L/usr/lib/mysql -lmysqlclient
++mysqlhistlog2300 : $(LIB)
++      $(CC) $(CFLAGS) $@.c -o $@ -I/usr/include/mysql -L/usr/lib/mysql $(CC_LDFLAGS) -lmysqlclient
+ install:
index 2d22e4d365f94fd02aeac2fdc2dd82a4e4826b2b..c72818c97bbd5b5e791d4720dbc84ed6c735901e 100644 (file)
@@ -26,6 +26,7 @@ PKG_INSTALL:=1
 PKG_FIXUP:=autoreconf
 
 include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/nls.mk
 
 define Package/openocd
   SECTION:=utils
diff --git a/utils/owfs/Config.in b/utils/owfs/Config.in
new file mode 100644 (file)
index 0000000..a6508e8
--- /dev/null
@@ -0,0 +1,49 @@
+  menu "Customize libow"
+    depends on PACKAGE_libow
+
+    menu "Bus master and adapter support"
+      config LIBOW_MASTER_USB
+      bool "USB bus master support (requires libusb)"
+      help
+        Include support for USB adapters (NOT usb-serial adapters, which use
+        kernel driver and are supported anyway).
+        Turning this off will save ~13kB (and ~50kB weighting libusb dependency).
+      default y
+
+      config LIBOW_MASTER_I2C
+      bool "I2C bus master (DS2482) support"
+      default y
+      help
+        Include support for I2C adapters.
+        Turning this feature off will save ~6kB.
+
+      config LIBOW_MASTER_W1
+      bool "Kernel W1 bus master support (requires kmod-w1)"
+      help
+        Support kernel 1-Wire bus masters (requires KConfig CONFIG_CONNECTOR=y
+        and CONFIG_W1_CON=y).
+        Turning this on will increase libow size by about 10kB.
+      default n
+    endmenu
+
+    config LIBOW_ZEROCONF
+    bool "Zeroconf/bonjour support"
+    default y
+    help
+      Enable server process announcement using Zeroconf (Bonjour) protocol.
+      Turning this feature on will increase owlib size by about 12kB.
+
+    config LIBOW_DEBUG
+    bool "Enable debug output (100+ kB)"
+    default y
+    help
+      If you don't need to debug your 1-wire network, you can save as much as
+      137kB disabling debug output.
+
+    config LIBOW_OWTRAFFIC
+    bool "Enable bus traffic reports"
+    default n
+    help
+      Enable owfs traffic monitor. It's here purely for debugging purposes.
+      Turning this on will increase libow size by about 3kB.
+  endmenu
index bec087f894ec6be4bbf62ff6b574378d6682c180..d4cc4cb2401d9319a08028375f4fd145ce5745db 100644 (file)
@@ -20,6 +20,14 @@ PKG_LICENSE:=GPL-2.0
 PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1
 
+PKG_CONFIG_DEPENDS:= \
+  CONFIG_LIBOW_MASTER_USB \
+  CONFIG_LIBOW_MASTER_I2C \
+  CONFIG_LIBOW_MASTER_W1 \
+  CONFIG_LIBOW_ZEROCONF \
+  CONFIG_LIBOW_DEBUG \
+  CONFIG_LIBOW_OWTRAFFIC
+
 include $(INCLUDE_DIR)/package.mk
 
 #
@@ -74,10 +82,17 @@ endef
 
 define Package/libow
   $(call Package/owfs/Library)
-  DEPENDS:=+libusb-compat +libpthread
+  DEPENDS:= \
+    +libpthread \
+    +LIBOW_MASTER_USB:libusb-compat \
+    +LIBOW_MASTER_W1:kmod-w1
   TITLE:=OWFS - common shared library
 endef
 
+define Package/libow/config
+  source "$(SOURCE)/Config.in"
+endef
+
 define Package/libow/description
   $(call Package/$(PKG_NAME)/Default/description)
 
@@ -170,13 +185,18 @@ CONFIGURE_ARGS += \
        --with-fuseinclude="$(STAGING_DIR)/usr/include" \
        --with-fuselib="$(STAGING_DIR)/usr/lib" \
        --enable-shared \
-       --enable-zero \
        --disable-parport \
        --disable-ownet \
        --disable-owpython \
        --disable-owphp \
        --disable-owtcl \
        --disable-swig \
+       $(if $(CONFIG_LIBOW_MASTER_USB),--enable-usb,--disable-usb) \
+       $(if $(CONFIG_LIBOW_MASTER_W1),--enable-w1,--disable-w1) \
+       $(if $(CONFIG_LIBOW_MASTER_I2C),--enable-i2c,--disable-i2c) \
+       $(if $(CONFIG_LIBOW_ZEROCONF),--enable-zero,--disable-zero) \
+       $(if $(CONFIG_LIBOW_DEBUG),--enable-debug,--disable-debug) \
+       $(if $(CONFIG_LIBOW_OWTRAFFIC),--enable-owtraffic,--disable-owtraffic)
 
 CONFIGURE_VARS += \
        LDFLAGS="$(TARGET_LDFLAGS) -Wl,-rpath-link=$(STAGING_DIR)/usr/lib -Wl,-rpath-link=$(TOOLCHAIN_DIR)/usr/lib" \
@@ -198,6 +218,15 @@ endef
 define Package/owfs/install
        $(INSTALL_DIR) $(1)/usr/bin
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/owfs $(1)/usr/bin/
+       $(INSTALL_DIR) $(1)/etc/config
+       $(INSTALL_DATA) ./files/owfs.conf $(1)/etc/config/owfs
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_BIN) ./files/owfs.init $(1)/etc/init.d/owfs
+       mkdir -p $(1)/mnt/owfs
+endef
+
+define Package/owfs/conffiles
+/etc/config/owfs
 endef
 
 define Package/owshell/install
@@ -213,18 +242,41 @@ endef
 define Package/owserver/install
        $(INSTALL_DIR) $(1)/usr/bin
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/owserver $(1)/usr/bin/
+       $(INSTALL_DIR) $(1)/etc/config
+       $(INSTALL_DATA) ./files/owserver.conf $(1)/etc/config/owserver
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_BIN) ./files/owserver.init $(1)/etc/init.d/owserver
+endef
+
+define Package/owserver/conffiles
+/etc/config/owserver
 endef
 
 define Package/owhttpd/install
        $(INSTALL_DIR) $(1)/usr/bin
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/owhttpd $(1)/usr/bin/
+       $(INSTALL_DIR) $(1)/etc/config
+       $(INSTALL_DATA) ./files/owhttpd.conf $(1)/etc/config/owhttpd
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_BIN) ./files/owhttpd.init $(1)/etc/init.d/owhttpd
+endef
+
+define Package/owhttpd/conffiles
+/etc/config/owhttpd
 endef
 
 define Package/owftpd/install
        $(INSTALL_DIR) $(1)/usr/bin
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/owftpd $(1)/usr/bin/
+       $(INSTALL_DIR) $(1)/etc/config
+       $(INSTALL_DATA) ./files/owftpd.conf $(1)/etc/config/owftpd
+       $(INSTALL_DIR) $(1)/etc/init.d
+       $(INSTALL_BIN) ./files/owftpd.init $(1)/etc/init.d/owftpd
 endef
 
+define Package/owftpd/conffiles
+/etc/config/owftpd
+endef
 
 define Package/libow/install
        $(INSTALL_DIR) $(1)/usr/lib
diff --git a/utils/owfs/files/owfs.conf b/utils/owfs/files/owfs.conf
new file mode 100644 (file)
index 0000000..b485989
--- /dev/null
@@ -0,0 +1,10 @@
+config owfs 'owfs'
+       option enabled 0
+       option user root
+       option readonly 0
+       option mountpoint '/mnt/owfs'
+       option fuse_allow_other 0
+       option fuse_open_opt ''
+       option error_level 0
+       list devices '-s'
+       list devices 'localhost:4304'
diff --git a/utils/owfs/files/owfs.init b/utils/owfs/files/owfs.init
new file mode 100644 (file)
index 0000000..83c8913
--- /dev/null
@@ -0,0 +1,82 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2009-2015 OpenWrt.org
+
+START=95
+USE_PROCD=1
+
+PROG=/usr/bin/owfs
+
+append_arg() {
+       local cfg="$1"
+       local var="$2"
+       local opt="$3"
+       local def="$4"
+       local val
+
+       config_get val "$cfg" "$var"
+       [ -n "$val" -o -n "$def" ] && procd_append_param command $opt "${val:-$def}"
+}
+
+append_bool() {
+       local cfg="$1"
+       local var="$2"
+       local opt="$3"
+       local def="$4"
+       local val
+
+       config_get_bool val "$cfg" "$var" "$def"
+       [ "$val" = 1 ] && procd_append_param command "$opt"
+}
+
+append_plain() {
+       procd_append_param command "$1"
+}
+
+append_param() {
+       local cfg="$1"
+       local var="$2"
+       local opt="$3"
+       local def="$4"
+       local val
+
+       config_get val "$cfg" "$var"
+       [ -n "$val" -o -n "$def" ] && procd_append_param "$opt" "${val:-$def}"
+}
+
+start_instance() {
+       local cfg="$1"
+       local enabled
+
+       config_get_bool enabled "$cfg" 'enabled' '0'
+       [ "$enabled" = 0 ] && return 1
+
+       procd_open_instance
+
+       procd_set_param command "$PROG" --foreground --error_print=1
+
+       # common parameters
+       append_bool "$cfg" readonly "--readonly"
+       append_arg "$cfg" error_level "--error_level"
+       config_list_foreach "$cfg" options append_plain
+       config_list_foreach "$cfg" devices append_plain
+       append_param "$cfg" user user
+
+       # owfs-specific
+       append_arg "$cfg" mountpoint "--mountpoint" /mnt/owfs
+       append_bool "$cfg" fuse_allow_other "--allow_other"
+       append_arg "$cfg" fuse_open_opt "--fuse_open_opt"
+
+       # don't respawn fuse
+
+       procd_close_instance
+
+}
+
+service_triggers() {
+       procd_add_reload_trigger owfs
+}
+
+start_service() {
+       config_load owfs
+       config_foreach start_instance owfs
+}
diff --git a/utils/owfs/files/owftpd.conf b/utils/owfs/files/owftpd.conf
new file mode 100644 (file)
index 0000000..100162e
--- /dev/null
@@ -0,0 +1,8 @@
+config owftpd 'owftpd'
+       option enabled 0
+       option user root
+       option readonly 0
+       option port 21
+       option error_level 0
+       list devices '-s'
+       list devices 'localhost:4304'
diff --git a/utils/owfs/files/owftpd.init b/utils/owfs/files/owftpd.init
new file mode 100644 (file)
index 0000000..a7e17c9
--- /dev/null
@@ -0,0 +1,81 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2009-2015 OpenWrt.org
+
+START=95
+USE_PROCD=1
+
+PROG=/usr/bin/owftpd
+
+append_arg() {
+       local cfg="$1"
+       local var="$2"
+       local opt="$3"
+       local def="$4"
+       local val
+
+       config_get val "$cfg" "$var"
+       [ -n "$val" -o -n "$def" ] && procd_append_param command $opt "${val:-$def}"
+}
+
+append_bool() {
+       local cfg="$1"
+       local var="$2"
+       local opt="$3"
+       local def="$4"
+       local val
+
+       config_get_bool val "$cfg" "$var" "$def"
+       [ "$val" = 1 ] && procd_append_param command "$opt"
+}
+
+append_plain() {
+       procd_append_param command "$1"
+}
+
+append_param() {
+       local cfg="$1"
+       local var="$2"
+       local opt="$3"
+       local def="$4"
+       local val
+
+       config_get val "$cfg" "$var"
+       [ -n "$val" -o -n "$def" ] && procd_append_param "$opt" "${val:-$def}"
+}
+
+start_instance() {
+       local cfg="$1"
+       local enabled
+
+       config_get_bool enabled "$cfg" 'enabled' '0'
+       [ "$enabled" = 0 ] && return 1
+
+       procd_open_instance
+
+       procd_set_param command "$PROG" --foreground --error_print=1
+
+       # common parameters
+       append_bool "$cfg" readonly "--readonly"
+       append_arg "$cfg" error_level "--error_level"
+       config_list_foreach "$cfg" options append_plain
+       config_list_foreach "$cfg" devices append_plain
+       append_param "$cfg" user user
+
+       # owftpd-specific
+       append_arg "$cfg" port "--port"
+       append_arg "$cfg" max_connections "--max_connections"
+
+       procd_set_param respawn
+
+       procd_close_instance
+
+}
+
+service_triggers() {
+       procd_add_reload_trigger owftpd
+}
+
+start_service() {
+       config_load owftpd
+       config_foreach start_instance owftpd
+}
diff --git a/utils/owfs/files/owhttpd.conf b/utils/owfs/files/owhttpd.conf
new file mode 100644 (file)
index 0000000..a314cd1
--- /dev/null
@@ -0,0 +1,8 @@
+config owhttpd 'owhttpd'
+       option enabled 0
+       option user root
+       option readonly 0
+       option port 3001
+       option error_level 0
+       list devices '-s'
+       list devices 'localhost:4304'
diff --git a/utils/owfs/files/owhttpd.init b/utils/owfs/files/owhttpd.init
new file mode 100644 (file)
index 0000000..868c9b4
--- /dev/null
@@ -0,0 +1,81 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2009-2015 OpenWrt.org
+
+START=95
+USE_PROCD=1
+
+PROG=/usr/bin/owhttpd
+
+append_arg() {
+       local cfg="$1"
+       local var="$2"
+       local opt="$3"
+       local def="$4"
+       local val
+
+       config_get val "$cfg" "$var"
+       [ -n "$val" -o -n "$def" ] && procd_append_param command $opt "${val:-$def}"
+}
+
+append_bool() {
+       local cfg="$1"
+       local var="$2"
+       local opt="$3"
+       local def="$4"
+       local val
+
+       config_get_bool val "$cfg" "$var" "$def"
+       [ "$val" = 1 ] && procd_append_param command "$opt"
+}
+
+append_plain() {
+       procd_append_param command "$1"
+}
+
+append_param() {
+       local cfg="$1"
+       local var="$2"
+       local opt="$3"
+       local def="$4"
+       local val
+
+       config_get val "$cfg" "$var"
+       [ -n "$val" -o -n "$def" ] && procd_append_param "$opt" "${val:-$def}"
+}
+
+start_instance() {
+       local cfg="$1"
+       local enabled
+
+       config_get_bool enabled "$cfg" 'enabled' '0'
+       [ "$enabled" = 0 ] && return 1
+
+       procd_open_instance
+
+       procd_set_param command "$PROG" --foreground --error_print=1
+
+       # common parameters
+       append_bool "$cfg" readonly "--readonly"
+       append_arg "$cfg" error_level "--error_level"
+       config_list_foreach "$cfg" options append_plain
+       config_list_foreach "$cfg" devices append_plain
+       append_param "$cfg" user user
+
+       # owhttpd-specific
+       append_arg "$cfg" port "--port"
+       append_arg "$cfg" max_connections "--max_connections"
+
+       procd_set_param respawn
+
+       procd_close_instance
+
+}
+
+service_triggers() {
+       procd_add_reload_trigger owhttpd
+}
+
+start_service() {
+       config_load owhttpd
+       config_foreach start_instance owhttpd
+}
diff --git a/utils/owfs/files/owserver.conf b/utils/owfs/files/owserver.conf
new file mode 100644 (file)
index 0000000..ceb8a61
--- /dev/null
@@ -0,0 +1,8 @@
+config owserver 'owserver'
+       option enabled 0
+       option user root
+       option readonly 0
+       option port 4304
+       option error_level 0
+       list devices '-d'
+       list devices '/dev/ttyUSB0'
diff --git a/utils/owfs/files/owserver.init b/utils/owfs/files/owserver.init
new file mode 100644 (file)
index 0000000..7f91aee
--- /dev/null
@@ -0,0 +1,81 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2009-2015 OpenWrt.org
+
+START=90
+USE_PROCD=1
+
+PROG=/usr/bin/owserver
+
+append_arg() {
+       local cfg="$1"
+       local var="$2"
+       local opt="$3"
+       local def="$4"
+       local val
+
+       config_get val "$cfg" "$var"
+       [ -n "$val" -o -n "$def" ] && procd_append_param command $opt "${val:-$def}"
+}
+
+append_bool() {
+       local cfg="$1"
+       local var="$2"
+       local opt="$3"
+       local def="$4"
+       local val
+
+       config_get_bool val "$cfg" "$var" "$def"
+       [ "$val" = 1 ] && procd_append_param command "$opt"
+}
+
+append_plain() {
+       procd_append_param command "$1"
+}
+
+append_param() {
+       local cfg="$1"
+       local var="$2"
+       local opt="$3"
+       local def="$4"
+       local val
+
+       config_get val "$cfg" "$var"
+       [ -n "$val" -o -n "$def" ] && procd_append_param "$opt" "${val:-$def}"
+}
+
+start_instance() {
+       local cfg="$1"
+       local enabled
+
+       config_get_bool enabled "$cfg" 'enabled' '0'
+       [ "$enabled" = 0 ] && return 1
+
+       procd_open_instance
+
+       procd_set_param command "$PROG" --foreground --error_print=1
+
+       # common parameters
+       append_bool "$cfg" readonly "--readonly"
+       append_arg "$cfg" error_level "--error_level"
+       config_list_foreach "$cfg" options append_plain
+       config_list_foreach "$cfg" devices append_plain
+       append_param "$cfg" user user
+
+       # owserver-specific
+       append_arg "$cfg" port "--port"
+       append_arg "$cfg" max_connections "--max_connections"
+
+       procd_set_param respawn
+
+       procd_close_instance
+
+}
+
+service_triggers() {
+       procd_add_reload_trigger owserver
+}
+
+start_service() {
+       config_load owserver
+       config_foreach start_instance owserver
+}
diff --git a/utils/owfs/patches/100-fix-netlink-w1-status-message-detection.patch b/utils/owfs/patches/100-fix-netlink-w1-status-message-detection.patch
new file mode 100644 (file)
index 0000000..251065f
--- /dev/null
@@ -0,0 +1,30 @@
+AaAA
+--- a/module/owlib/src/c/ow_w1_parse.c
++++ b/module/owlib/src/c/ow_w1_parse.c
+@@ -237,7 +237,7 @@ enum Netlink_Read_Status W1_Process_Resp
+                       owfree(nlp.nlm) ;
+                       return nrs_nodev ;
+               }
+-              if ( nrs_callback == NULL ) { // status message
++              if ( nrs_callback == NULL ) { // bus reset
+                       owfree(nlp.nlm) ;
+                       return nrs_complete ;
+               }
+@@ -246,7 +246,7 @@ enum Netlink_Read_Status W1_Process_Resp
+               nrs_callback( &nlp, v, pn ) ;
+               LEVEL_DEBUG("Called nrs_callback");
+               owfree(nlp.nlm) ;
+-              if ( nlp.cn->ack != 0 ) {
++              if ( nlp.cn->seq != nlp.cn->ack ) {
+                       if ( nlp.w1m->type == W1_LIST_MASTERS ) {
+                               continue ; // look for more data
+                       }
+@@ -254,7 +254,7 @@ enum Netlink_Read_Status W1_Process_Resp
+                               continue ; // look for more data
+                       }
+               }
+-              nrs_callback = NULL ; // now look for status message
++              return nrs_complete ; // status message
+       }
+       return nrs_timeout ;
+ }
diff --git a/utils/owfs/patches/101-fix-no-reset-routine-segfault.patch b/utils/owfs/patches/101-fix-no-reset-routine-segfault.patch
new file mode 100644 (file)
index 0000000..731c4a0
--- /dev/null
@@ -0,0 +1,13 @@
+--- a/module/owlib/src/c/ow_reset.c
++++ b/module/owlib/src/c/ow_reset.c
+@@ -21,6 +21,10 @@ RESET_TYPE BUS_reset(const struct parsed
+       struct connection_in * in = pn->selected_connection ;
+       STAT_ADD1_BUS(e_bus_resets, in);
++      if ( in->iroutines.reset == NO_RESET_ROUTINE ) {
++              return BUS_RESET_OK;
++      }
++
+       switch ( (in->iroutines.reset) (pn) ) {
+       case BUS_RESET_OK:
+               in->reconnect_state = reconnect_ok;     // Flag as good!
index e9879f601b9066cd86bf778fac67b85b1668785f..3cfc1252b89b6bb13b77260c7ba7fc9ff73443bd 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=pciutils
-PKG_VERSION:=3.3.1
+PKG_VERSION:=3.4.0
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@KERNEL/software/utils/pciutils
-PKG_MD5SUM:=86d5462e5cfc2a4341a2b91ce3ed0f09
+PKG_MD5SUM:=46674cdbf2f72e4cfef75fea1b1ec5c8
 PKG_MAINTAINER:=Álvaro Fernández Rojas <noltari@gmail.com>
 
 PKG_LICENSE:=GPL-2.0
@@ -48,7 +48,7 @@ MAKE_FLAGS += \
        CFLAGS="$(TARGET_CFLAGS) -I$(STAGING_DIR)/usr/include" \
        PREFIX="/usr" \
        HOST="$(GNU_TARGET_NAME)" \
-       ZLIB="yes" \
+       ZLIB="yes"
 
 ifneq ($(CONFIG_USE_GLIBC),)
 TARGET_LDFLAGS += -lresolv
diff --git a/utils/pciutils/patches/105-fix-host.patch b/utils/pciutils/patches/105-fix-host.patch
new file mode 100644 (file)
index 0000000..8df4b8c
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/lib/configure
++++ b/lib/configure
+@@ -44,7 +44,7 @@ if [ -z "$HOST" ] ; then
+ fi
+ [ -n "$RELEASE" ] && rel="${RELEASE}"
+ # CAVEAT: tr on Solaris is a bit weird and the extra [] is otherwise harmless.
+-host=`echo $HOST | sed -e 's/^\([^-]*\)-\([^-]*\)-\([^-]*\)-\([^-]*\)$/\1-\3/' -e 's/^\([^-]*\)-\([^-]*\)-\([^-]*\)$/\1-\2/' -e 's/^\([^-]*\)-\([^-]*\)$/\1--\2/' | tr '[A-Z]' '[a-z]'`
++host=`echo $HOST | sed -e 's/^\([^-]*\)-\([^-]*\)-\([^-]*\)-\([^-]*\)$/\1-\3/' -e 's/^\([^-]*\)-\([^-]*\)$/\1--\2/' | tr '[A-Z]' '[a-z]'`
+ cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+ sys=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+ echo " $host $rel $cpu $sys"
diff --git a/utils/procps-ng/Makefile b/utils/procps-ng/Makefile
new file mode 100644 (file)
index 0000000..f5e3cfb
--- /dev/null
@@ -0,0 +1,97 @@
+#
+# Copyright (C) 2006-2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=procps-ng
+PKG_VERSION:=3.3.11
+PKG_RELEASE:=1
+PKG_LICENSE:=GPL-2.0
+PKG_LICENSE_FILES:=COPYING COPYING.LIB
+
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL:=https://gitlab.com/procps-ng/procps.git
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
+PKG_SOURCE_VERSION:=de985eced583f18df273146b110491b0f7404aab
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
+
+PKG_BUILD_PARALLEL:=1
+PKG_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+CONFIGURE_ARGS += --enable-skill
+
+PROCPS_APPLETS := \
+    free kill pgrep pkill pmap ps pwdx skill slabtop \
+    snice tload top uptime vmstat w watch
+
+define Package/procps-ng/Default
+  SECTION:=utils
+  CATEGORY:=Utilities
+  DEPENDS:=+libncurses
+  TITLE:=procps-ng utilities
+  URL:=https://gitlab.com/procps-ng/procps
+  MAINTAINER:=Gergely Kiss <mail.gery@gmail.com>
+endef
+
+define Build/Configure
+       (cd $(PKG_BUILD_DIR); echo "$(PKG_VERSION)" > "$(PKG_BUILD_DIR)/.tarball-version"; ./autogen.sh );
+       $(call Build/Configure/Default)
+endef
+
+define Package/procps-ng
+  $(call Package/procps-ng/Default)
+  MENU:=1
+endef
+
+define Package/procps-ng/description
+  procps is a set of command line and full-screen utilities that provide information out of the pseudo-filesystem
+  most commonly located at /proc. This filesystem provides a simple interface to the kernel data structures.
+  The programs of procps generally concentrate on the structures that describe the processess running on the system.
+
+  NOTE: some utilities provided by procps-ng packages (ps, uptime, kill, ...) are installed as busybox applets, by default.
+  Conflicting applets should be removed from the build to avoid file conflicts.
+endef
+
+define GenPlugin
+ define Package/$(1)
+   $(call Package/procps-ng/Default)
+   DEPENDS:=procps-ng
+   TITLE:=Applet $(2) from the procps-ng package
+   DEFAULT:=y
+ endef
+
+ define Package/$(1)/description
+  Installs the applet $(2).
+ endef
+endef
+
+$(foreach a,$(PROCPS_APPLETS),$(eval $(call GenPlugin,procps-ng-$(a),$(a))))
+
+MAKE_FLAGS += \
+       CFLAGS="$(TARGET_CFLAGS)" \
+       CPPFLAGS="$(TARGET_CPPFLAGS)" \
+       LDFLAGS="$(TARGET_LDFLAGS)" \
+
+define Package/procps-ng/install
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/libprocps.so* $(1)/usr/lib/
+endef
+
+define BuildPlugin
+  define Package/$(1)/install
+       $(INSTALL_DIR) $$(1)/usr/bin
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/$(2) $$(1)/usr/bin/
+  endef
+
+  $$(eval $$(call BuildPackage,$(1)))
+endef
+
+$(foreach a,$(PROCPS_APPLETS),$(eval $(call BuildPlugin,procps-ng-$(a),$(a))))
+$(eval $(call BuildPackage,procps-ng))
diff --git a/utils/procps/Makefile b/utils/procps/Makefile
deleted file mode 100644 (file)
index 25d1ddb..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-#
-# Copyright (C) 2006-2014 OpenWrt.org
-#
-# This is free software, licensed under the GNU General Public License v2.
-# See /LICENSE for more information.
-#
-
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=procps
-PKG_VERSION:=3.2.8
-PKG_RELEASE:=1
-PKG_LICENSE:=GPL-2.0
-PKG_LICENSE_FILES:=COPYING COPYING.LIB
-
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=http://procps.sourceforge.net
-PKG_MD5SUM:=9532714b6846013ca9898984ba4cd7e0
-
-PKG_BUILD_PARALLEL:=1
-
-include $(INCLUDE_DIR)/package.mk
-
-PROCPS_APPLETS := \
-    ps free pgrep pkill pmap pwdx skill w \
-    slabtop snice tload top vmstat watch
-
-define Package/procps/Default
-  SECTION:=utils
-  CATEGORY:=Utilities
-  DEPENDS:=+libncurses
-  TITLE:=proc utilities
-  URL:=http://procps.sourceforge.net/
-  MAINTAINER:=Gergely Kiss <mail.gery@gmail.com>
-endef
-
-define Package/procps
-  $(call Package/procps/Default)
-  MENU:=1
-endef
-
-define Package/procps/description
- procps is the package that has a bunch of small useful utilities that give
- information about processes using the /proc filesystem. The package
- includes the programs ps, top, vmstat, w, kill, free, slabtop, and skill.
-endef
-
-define GenPlugin
- define Package/$(1)
-   $(call Package/procps/Default)
-   DEPENDS:=procps
-   TITLE:=Applet $(2) from the procps package
-   DEFAULT:=y
- endef
-
- define Package/$(1)/description
-  Installs the applet $(2).
- endef
-endef
-
-$(foreach a,$(PROCPS_APPLETS),$(eval $(call GenPlugin,procps-$(a),$(a))))
-
-MAKE_FLAGS += \
-       CFLAGS="$(TARGET_CFLAGS)" \
-       CPPFLAGS="$(TARGET_CPPFLAGS)" \
-       LDFLAGS="$(TARGET_LDFLAGS)" \
-
-define Package/procps/install
-       $(INSTALL_DIR) $(1)/usr/bin
-       $(INSTALL_DIR) $(1)/usr/lib
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/proc/libproc-$(PKG_VERSION).so $(1)/usr/lib/
-endef
-
-AUXDIR_ps := "ps/"
-
-define BuildPlugin
-  define Package/$(1)/install
-       $(INSTALL_DIR) $$(1)/usr/bin
-       $(INSTALL_BIN) $(PKG_BUILD_DIR)/$(AUXDIR_$(2))$(2) $$(1)/usr/bin/
-  endef
-
-  $$(eval $$(call BuildPackage,$(1)))
-endef
-
-$(foreach a,$(PROCPS_APPLETS),$(eval $(call BuildPlugin,procps-$(a),$(a))))
-$(eval $(call BuildPackage,procps))
diff --git a/utils/procps/patches/010-make_fix.patch b/utils/procps/patches/010-make_fix.patch
deleted file mode 100644 (file)
index 74b1d3c..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/Makefile
-+++ b/Makefile
-@@ -174,7 +174,7 @@ INSTALL := $(BINFILES) $(MANFILES)
- # want this rule first, use := on ALL, and ALL not filled in yet
- all: do_all
---include */module.mk
-+-include proc/module.mk ps/module.mk 
- do_all:    $(ALL)
diff --git a/utils/procps/patches/020_hz_fix.patch b/utils/procps/patches/020_hz_fix.patch
deleted file mode 100644 (file)
index 1954453..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
---- a/proc/sysinfo.c
-+++ b/proc/sysinfo.c
-@@ -209,7 +209,12 @@ static int check_for_privs(void){
-   return !!rc;
- }
-+#if __GNUC__ < 4 || __GNUC_MINOR__ < 3
- static void init_libproc(void) __attribute__((constructor));
-+#else
-+static void init_libproc(void) __attribute__((constructor(200)));
-+#endif
-+
- static void init_libproc(void){
-   have_privs = check_for_privs();
-   // ought to count CPUs in /proc/stat instead of relying
---- a/proc/version.c
-+++ b/proc/version.c
-@@ -33,7 +33,12 @@ void display_version(void) {
- int linux_version_code;
-+#if __GNUC__ < 4 || __GNUC_MINOR__ < 3
- static void init_Linux_version(void) __attribute__((constructor));
-+#else
-+static void init_Linux_version(void) __attribute__((constructor(100)));
-+#endif
-+
- static void init_Linux_version(void) {
-     static struct utsname uts;
-     int x = 0, y = 0, z = 0;  /* cleared in case sscanf() < 3 */
---- a/proc/module.mk
-+++ b/proc/module.mk
-@@ -76,7 +76,7 @@ proc/$(ANAME): $(LIBOBJ)
- #proc/$(SONAME): proc/library.map
- proc/$(SONAME): $(LIBOBJ)
--      $(CC) $(ALL_CFLAGS) $(ALL_LDFLAGS) -shared -Wl,-soname,$(SONAME) -Wl,--version-script=proc/library.map -o $@ $^ -lc
-+      $(CC) $(ALL_CFLAGS) $(ALL_LDFLAGS) -shared -Wl,-soname,$(SONAME) -Wl,--version-script=proc/library.map -o $@ $(sort $^) -lc
- # AUTOMATIC DEPENDENCY GENERATION -- GCC AND GNUMAKE DEPENDENT
diff --git a/utils/procps/patches/030-fix-string-problems.patch b/utils/procps/patches/030-fix-string-problems.patch
deleted file mode 100644 (file)
index de3756b..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/proc/sig.c
-+++ b/proc/sig.c
-@@ -214,7 +214,7 @@ void pretty_print_signals(void){
-   while(++i <= number_of_signals){
-     int n;
-     n = printf("%2d %s", i, signal_number_to_name(i));
--    if(i%7) printf("           \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + n);
-+    if(i%7) printf("%s", "           \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + n);
-     else printf("\n");
-   }
-   if((i-1)%7) printf("\n");
diff --git a/utils/procps/patches/040-musl-compatibility.patch b/utils/procps/patches/040-musl-compatibility.patch
deleted file mode 100644 (file)
index 71dc3f0..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-From 6f2fd55ef7621fd7ab7897aee2c2651b6faf9e6a Mon Sep 17 00:00:00 2001
-From: Paul Barker <paul@paulbarker.me.uk>
-Date: Wed, 20 Aug 2014 11:56:11 +0200
-Subject: [PATCH] Fix musl build failure
-
-Include <limits.h> for PATH_MAX.
-
-Signed-off-by: Paul Barker <paul@paulbarker.me.uk>
-
-Upstream-status: Pending
----
- proc/readproc.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/proc/readproc.c b/proc/readproc.c
-index 4fad11d..c5b1869 100644
---- a/proc/readproc.c
-+++ b/proc/readproc.c
-@@ -26,6 +26,7 @@
- #include <sys/dir.h>
- #include <sys/types.h>
- #include <sys/stat.h>
-+#include <limits.h>
- // sometimes it's easier to do this manually, w/o gcc helping
- #ifdef PROF
--- 
-1.9.1
-
diff --git a/utils/sane-backends/Makefile b/utils/sane-backends/Makefile
new file mode 100644 (file)
index 0000000..ffed673
--- /dev/null
@@ -0,0 +1,357 @@
+#
+# Copyright (C) 2006-2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=sane-backends
+PKG_VERSION:=1.0.25
+PKG_RELEASE:=1
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://fossies.org/linux/misc \
+    https://alioth.debian.org/frs/download.php/file/4146/
+PKG_MD5SUM:=f9ed5405b3c12f07c6ca51ee60225fe7
+PKG_MAINTAINER:=Luiz Angelo Daros de Luca <luizluca@gmail.com>
+PKG_LICENSE:=GPL-2.0 GPL-2.0+
+PKG_LICENSE_FILES:=COPYING LICENSE
+
+PKG_FIXUP:=autoreconf
+PKG_REMOVE_FILES:=aclocal.m4
+
+PKG_INSTALL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+SANE_BACKENDS:=
+
+define Package/sane-backends/Default
+  TITLE:=Scanner Access Now Easy
+  URL:=http://www.sane-project.org/
+endef
+
+define Package/sane-backends/Default/description
+ SANE (Scanner Access Now Easy) is a universal scanner interface.
+endef
+
+define Package/sane-backends
+$(call Package/sane-backends/Default)
+  SECTION:=utils
+  CATEGORY:=Utilities
+  TITLE+= (drivers)
+  DEPENDS:=+ALL:sane-backends-all
+endef
+
+define Package/sane-backends/description
+$(call Package/sane-backends/Default/description)
+.
+This
+endef
+
+define Package/sane-backends/config
+    menu "Select SANE backends"
+      depends on PACKAGE_sane-backends
+
+
+    config PACKAGE_sane-backends-all
+      depends on PACKAGE_sane-backends
+      prompt "Include all SANE backends (sane-backends-all)"
+
+    comment "Modules"
+
+$(foreach backend,$(SANE_BACKENDS), \
+    $(eval \
+      $(call Package/Default)
+      $(call Package/sane-$(backend))
+    )\
+    config PACKAGE_sane-$(backend)
+      prompt "$(TITLE)"
+     $(foreach config_dep,\
+       $(filter @%,
+         $(foreach v, $(DEPENDS), $(if $(findstring :,$v),,$v))
+       ),\
+      depends on $(strip $(subst @,,$(config_dep)))
+     )
+)
+  endmenu
+
+endef
+
+# returns conditional dependency on sane backend
+# 1: backend name
+#
+# If there is no config deps on $(1), returns +sane-$(1).
+# Otherwise, +(CONFIG1&&CONFIG2&&..):sane-$(1)
+define SaneBackendDependency
+    $(eval \
+        $(call Package/Default)
+        $(call Package/sane-$(1))
+        FILTER_CONFIG:=$$(strip \
+            $$(foreach config_dep, \
+                $$(filter @%, \
+                    $$(foreach v, \
+                        $$(DEPENDS), \
+                        $$(if $$(findstring :,$$v),,$$v) \
+                    ) \
+                ), \
+                $$(subst @,,$$(config_dep)) \
+            ) \
+        )
+        ifneq (,$$(FILTER_CONFIG))
+           FILTER_CONFIG:=($$(subst $$(space),&&,$$(FILTER_CONFIG))):
+        endif
+    ) \
+    +$(FILTER_CONFIG)sane-$(1)
+endef
+
+define Package/sane-backends-all
+$(call Package/sane-backends/Default)
+  SECTION:=utils
+  CATEGORY:=Utilities
+  TITLE+= (all backends)
+  DEPENDS:=$(foreach backend,$(SANE_BACKENDS),$(strip $(call SaneBackendDependency,$(backend))))
+  HIDDEN:=1
+endef
+
+define Package/sane-backends/description
+$(call Package/sane-backends/Default/description)
+.
+Metapackage for selecting all SANE Backends
+endef
+
+define Package/sane-daemon
+$(call Package/sane-backends/Default)
+  SECTION:=utils
+  CATEGORY:=Utilities
+  DEPENDS:=+libsane
+  TITLE+= (network daemon)
+endef
+
+define Package/sane-daemon/description
+$(call Package/sane-backends/Default/description)
+This package contains the SANE daemon.
+endef
+
+define Package/libsane
+  $(call Package/sane-backends/Default)
+  SECTION:=libs
+  CATEGORY:=Libraries
+  DEPENDS:=+libusb-compat
+  TITLE+= (libraries)
+endef
+
+define Package/libsane/description
+$(call Package/sane-backends/Default/description)
+This package contains the SANE shared libraries.
+endef
+
+define Package/sane-frontends
+  $(call Package/sane-backends/Default)
+  SECTION:=utils
+  CATEGORY:=Utilities
+  DEPENDS:=+libsane +libjpeg +libpng
+  TITLE+= (frontends)
+endef
+
+define Package/sane-frontends/description
+$(call Package/sane-backends/Default/description)
+This package contains the SANE frontends.
+endef
+
+TARGET_LDFLAGS += \
+       -Wl,-rpath-link $(STAGING_DIR)/usr/lib \
+       -Wl,-rpath-link $(PKG_BUILD_DIR)/backend/.libs
+
+CONFIGURE_ARGS+= \
+       --enable-shared \
+       --enable-static \
+       --disable-translations \
+       --disable-latex \
+       --without-gphoto2 \
+       --without-snmp
+
+CONFIGURE_VARS+= \
+    ac_cv_func_mmap_fixed_mapped="yes" \
+
+define Build/Configure
+       mkdir -p $(PKG_BUILD_DIR)/backend/.libs
+       $(Build/Configure/Default)
+endef
+
+define Package/libsane/install
+       $(INSTALL_DIR) $(1)/usr/lib/sane/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libsane.so.* $(1)/usr/lib/
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/sane/libsane-dll.so.* $(1)/usr/lib/sane/
+       $(INSTALL_DIR) $(1)/etc/sane.d/dll.d
+       $(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/sane.d/dll.conf $(1)/etc/sane.d/
+endef
+
+define Package/libsane/conffiles
+/etc/sane.d/dll.conf
+endef
+
+define Package/sane-daemon/install
+       $(INSTALL_DIR) $(1)/etc/sane.d
+       $(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/sane.d/saned.conf $(1)/etc/sane.d/
+       $(INSTALL_DIR) $(1)/usr/sbin
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/* $(1)/usr/sbin/
+       $(INSTALL_DIR) $(1)/etc/xinetd.d
+       $(CP) ./files/xinet.d_sane-port $(1)/etc/xinetd.d/sane-port
+endef
+
+define Package/sane-daemon/conffiles
+/etc/sane.d/saned.conf
+endef
+
+define Package/sane-frontends/install
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/* $(1)/usr/bin/
+endef
+
+define Package/sane-backends-all/install
+       /bin/true
+endef
+
+define Build/InstallDev
+       $(INSTALL_DIR) $(1)/usr/include
+       $(CP) $(PKG_INSTALL_DIR)/usr/include/sane $(1)/usr/include/
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/libsane.{a,so*} $(1)/usr/lib/
+endef
+
+# 1: short name
+# 2: description
+# 3: dependencies on other packages
+define SaneBackend
+  SANE_BACKENDS+= $(1)
+
+  define Package/sane-$(1)
+    $(call Package/sane-backends/Default)
+    TITLE:=SANE backend (sane-$(1)) for $(2)
+    DEPENDS+= +libsane $(3)
+    HIDDEN:=1
+  endef
+
+  define Package/sane-$(1)/description
+   $(call Package/sane-backends/Default/description)
+.
+This package contains the SANE backend for $(2).
+  endef
+
+  define Package/sane-$(1)/install
+       if [ -f "$(PKG_INSTALL_DIR)/etc/sane.d/$(1).conf" ]; then \
+         $(INSTALL_DIR) $$(1)/etc/sane.d ; \
+         $(INSTALL_CONF) $(PKG_INSTALL_DIR)/etc/sane.d/$(1).conf $$(1)/etc/sane.d/; \
+       fi
+       $(INSTALL_DIR) $$(1)/usr/lib/sane
+       $(CP) $(PKG_INSTALL_DIR)/usr/lib/sane/libsane-$(1).so.* $$(1)/usr/lib/sane/
+       if [ -d "$(PKG_INSTALL_DIR)/usr/share/sane/$(1)" ]; then \
+               $(INSTALL_DIR) $$(1)/usr/share/sane/ ; \
+               $(CP) -a $(PKG_INSTALL_DIR)/usr/share/sane/$(1) $$(1)/usr/share/sane/ ; \
+       fi
+  endef
+
+  define Package/sane-$(1)/conffiles
+       /etc/sane.d/$(1).conf
+  endef
+
+  $$(eval $$(call BuildPackage,sane-$(1)))
+endef
+
+$(eval $(call BuildPackage,libsane))
+$(eval $(call BuildPackage,sane-daemon))
+$(eval $(call SaneBackend,abaton,Abaton flatbed scanners))
+$(eval $(call SaneBackend,agfafocus,AGFA Focus flatbed scanners))
+$(eval $(call SaneBackend,apple,Apple flatbed scanners))
+$(eval $(call SaneBackend,artec,Artec flatbed scanners))
+$(eval $(call SaneBackend,artec_eplus48u,Artec E+ 48U and re-badged models))
+$(eval $(call SaneBackend,as6e,Artec AS6E parallel port interface scanner))
+$(eval $(call SaneBackend,avision,Avision and Avision OEM scanners and possibly more flatbed and film scanners))
+$(eval $(call SaneBackend,bh,Bell+Howell Copiscan II series document scanners))
+$(eval $(call SaneBackend,canon,Canon SCSI scanners))
+$(eval $(call SaneBackend,canon630u,the Canon 630u USB flatbed scanner))
+$(eval $(call SaneBackend,canon_dr,Canon DR-series scanners))
+# Depends on libieee1284
+#$(eval $(call SaneBackend,canon_pp,Canon CanoScan Parallel Port flatbed scanners,+libieee1284))
+$(eval $(call SaneBackend,cardscan,Corex CardScan usb scanners))
+$(eval $(call SaneBackend,coolscan,Nikon film-scanners))
+$(eval $(call SaneBackend,coolscan2,Nikon Coolscan film scanners))
+$(eval $(call SaneBackend,coolscan3,Nikon Coolscan film scanners))
+$(eval $(call SaneBackend,dc210,Kodak DC210 Digital Camera,+libjpeg))
+$(eval $(call SaneBackend,dc240,Kodak DC240 Digital Camera,+libjpeg))
+$(eval $(call SaneBackend,dc25,Kodak DC20/DC25 Digital Cameras))
+$(eval $(call SaneBackend,dell1600n_net,Dell 1600n,+libtiff))
+$(eval $(call SaneBackend,dmc,Polaroid Digital Microscope Camera))
+$(eval $(call SaneBackend,epjitsu,Epson-based Fujitsu USB scanners))
+$(eval $(call SaneBackend,epson,EPSON scanners))
+$(eval $(call SaneBackend,epsonds,EPSON scanners,+libjpeg)) ####
+$(eval $(call SaneBackend,epson2,EPSON scanners))
+$(eval $(call SaneBackend,fujitsu,Fujitsu flatbed and ADF scanners))
+$(eval $(call SaneBackend,genesys,GL646 GL841 GL843 GL847 and GL124 based USB flatbed scanners))
+#$(eval $(call SaneBackend,gphoto2,digital cameras supported by gphoto2,+libjpeg))
+$(eval $(call SaneBackend,gt68xx,GT-68XX based USB flatbed scanners))
+$(eval $(call SaneBackend,hp,HP ScanJet scanners))
+$(eval $(call SaneBackend,hp3500,Hewlett-Packard ScanJet 3500 series scanners))
+$(eval $(call SaneBackend,hp3900,RTS8822 chipset based scanners,+libtiff))
+$(eval $(call SaneBackend,hp4200,Hewlett-Packard 4200 scanners))
+$(eval $(call SaneBackend,hp5400,Hewlett-Packard 54XX scanners))
+$(eval $(call SaneBackend,hp5590,Hewlett-Packard 4500C/4570C/5500C/5550C/5590/7650 Workgroup/Document scanners))
+$(eval $(call SaneBackend,hpljm1005,Hewlett-Packard LaserJet M1005 MFP Scanner))
+# Depends on libieee1284
+#$(eval $(call SaneBackend,hpsj5s,HP ScanJet 5S sheet-fed scanner,+libieee1284))
+$(eval $(call SaneBackend,hs2p,Ricoh SCSI flatbed/ADF scanners))
+$(eval $(call SaneBackend,ibm,IBM and Ricoh SCSI flatbed scanners))
+$(eval $(call SaneBackend,kodak,big Kodak flatbed and ADF scanners))
+$(eval $(call SaneBackend,kodakaio,Kodak aio printer / scanners))
+$(eval $(call SaneBackend,kvs20xx,Panasonic KV-S20xxC USB/SCSI ADF scanners))
+$(eval $(call SaneBackend,kvs40xx,Panasonic KV-S40xxC USB/SCSI ADF scanners))
+$(eval $(call SaneBackend,kvs1025,Panasonic KV-S102xC USB ADF scanners))
+$(eval $(call SaneBackend,leo,LEO Technologies scanners))
+$(eval $(call SaneBackend,lexmark,Lexmark X1100/X1200 Series scanners))
+$(eval $(call SaneBackend,ma1509,Mustek BearPaw 1200F USB scanner))
+$(eval $(call SaneBackend,magicolor,KONICA MINOLTA magicolor scanners))
+$(eval $(call SaneBackend,matsushita,Panasonic KV-SS high speed scanners))
+$(eval $(call SaneBackend,microtek,Microtek scanners))
+$(eval $(call SaneBackend,microtek2,Microtek scanners with SCSI-2 command set))
+$(eval $(call SaneBackend,mustek,Mustek SCSI flatbed scanners and some other devices))
+# Depends on libieee1284
+#$(eval $(call SaneBackend,mustek_pp,Mustek parallel port flatbed scanners,+libieee1284))
+$(eval $(call SaneBackend,mustek_usb,Mustek USB flatbed scanners))
+$(eval $(call SaneBackend,mustek_usb2,SQ113 based USB flatbed scanners))
+$(eval $(call SaneBackend,nec,NEC scanners))
+$(eval $(call SaneBackend,net,network backend))
+$(eval $(call SaneBackend,niash,scanners based on the NIASH chipset))
+$(eval $(call SaneBackend,p5,the Primax PagePartner))
+$(eval $(call SaneBackend,pie,PIE Devcom and AdLib SCSI flatbed scanners))
+$(eval $(call SaneBackend,pieusb,PIE Devcom and AdLib SCSI flatbed scanners)) #####
+$(eval $(call SaneBackend,pixma,Canon Multi-Function Printers and CanoScan Scanners))
+$(eval $(call SaneBackend,plustek,LM983[1/2/3] based USB flatbed scanners))
+$(eval $(call SaneBackend,plustek_pp,Plustek parallel port flatbed scanners))
+$(eval $(call SaneBackend,qcam,Connectix QuickCam cameras,@(TARGET_x86||TARGET_x86_64)))
+$(eval $(call SaneBackend,ricoh,Ricoh flatbed scanners))
+$(eval $(call SaneBackend,rts8891,rts8891 based scanners))
+$(eval $(call SaneBackend,s9036,Siemens 9036 flatbed scanners))
+$(eval $(call SaneBackend,sceptre,SCEPTRE scanners))
+$(eval $(call SaneBackend,sharp,SHARP scanners))
+$(eval $(call SaneBackend,sm3600,Microtek scanners with M011 USB chip))
+$(eval $(call SaneBackend,sm3840,Microtek scanners with SCAN08 USB chip))
+$(eval $(call SaneBackend,snapscan,AGFA SnapScan flatbed scanners))
+$(eval $(call SaneBackend,sp15c,Fujitsu ScanPartner 15C flatbed scanner))
+$(eval $(call SaneBackend,st400,Siemens ST/Highscan flatbed scanners))
+$(eval $(call SaneBackend,stv680,STV680 cameras))
+$(eval $(call SaneBackend,tamarack,Tamarack flatbed scanners))
+$(eval $(call SaneBackend,teco1,TECO / RELISYS scanners))
+$(eval $(call SaneBackend,teco2,TECO / RELISYS scanners))
+$(eval $(call SaneBackend,teco3,TECO / RELISYS scanners))
+$(eval $(call SaneBackend,test,testing frontends))
+$(eval $(call SaneBackend,u12,Plustek USB flatbed scanners based on older parport designs))
+$(eval $(call SaneBackend,umax,UMAX scanners))
+$(eval $(call SaneBackend,umax1220u,the UMAX Astra 1220U and similar scanners))
+$(eval $(call SaneBackend,umax_pp,Umax Astra parallel port flatbed scanners))
+$(eval $(call SaneBackend,v4l,Video for Linux API,+libv4l +libjpeg))
+$(eval $(call SaneBackend,xerox_mfp,Xerox Phaser 3200MFP device))
+$(eval $(call BuildPackage,sane-backends))
+$(eval $(call BuildPackage,sane-backends-all))
+$(eval $(call BuildPackage,sane-frontends))
diff --git a/utils/sane-backends/files/xinet.d_sane-port b/utils/sane-backends/files/xinet.d_sane-port
new file mode 100644 (file)
index 0000000..9119973
--- /dev/null
@@ -0,0 +1,14 @@
+# default: off
+# description: The saned provides scanner service via the network.  \
+#      Applications like kooka, xsane or xscanimage can use the remote \
+#      scanner. 
+service sane-port
+{
+       socket_type = stream
+       port        = 6566
+       wait        = no
+       user        = root
+       group       = root
+       server      = /usr/sbin/saned
+       disable     = yes
+}
diff --git a/utils/sane-backends/patches/002-remove-uneeded.patch b/utils/sane-backends/patches/002-remove-uneeded.patch
new file mode 100644 (file)
index 0000000..8348058
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -400,7 +400,7 @@ target_alias = @target_alias@
+ top_build_prefix = @top_build_prefix@
+ top_builddir = @top_builddir@
+ top_srcdir = @top_srcdir@
+-SUBDIRS = include lib sanei backend frontend tools doc po testsuite
++SUBDIRS = include lib sanei backend frontend
+ DIST_SUBDIRS = include lib sanei backend frontend tools doc po japi testsuite
+ dist_doc_DATA = AUTHORS ChangeLog COPYING LICENSE NEWS PROBLEMS PROJECTS \
+  README README.aix README.beos README.darwin README.djpeg README.freebsd \
diff --git a/utils/sane-backends/patches/020-fix_pieusb.patch b/utils/sane-backends/patches/020-fix_pieusb.patch
new file mode 100644 (file)
index 0000000..ae97040
--- /dev/null
@@ -0,0 +1,16 @@
+--- a/backend/pieusb_buffer.c
++++ b/backend/pieusb_buffer.c
+@@ -104,11 +104,13 @@
+ /* When creating the release backend, make complains about unresolved external
+  * le16toh, although it finds the include <endian.h> */
++#ifndef le16toh
+ #if __BYTE_ORDER == __LITTLE_ENDIAN
+  #define le16toh(x) (x)
+ #else
+  #define le16toh(x) __bswap_16 (x)
+ #endif
++#endif
+ static void buffer_update_read_index(struct Pieusb_Read_Buffer* buffer, int increment);
diff --git a/utils/sane-backends/patches/030-musl.patch b/utils/sane-backends/patches/030-musl.patch
new file mode 100644 (file)
index 0000000..7f0a5a2
--- /dev/null
@@ -0,0 +1,73 @@
+--- a/include/sane/sanei_udp.h
++++ b/include/sane/sanei_udp.h
+@@ -27,6 +27,9 @@
+ #include <netinet/in.h>
+ #include <netdb.h>
+ #endif
++#ifdef HAVE_SYS_TYPES_H
++#include <sys/types.h>
++#endif
+ extern SANE_Status sanei_udp_open(const char *host, int port, int *fdp);
+ extern SANE_Status sanei_udp_open_broadcast(int *fdp);
+--- a/backend/kvs20xx_cmd.h
++++ b/backend/kvs20xx_cmd.h
+@@ -9,6 +9,10 @@
+    Panasonic KV-S20xx USB-SCSI scanners.
+ */
++#ifdef HAVE_SYS_TYPES_H
++#include <sys/types.h>
++#endif
++
+ #define COMMAND_BLOCK 1
+ #define DATA_BLOCK    2
+ #define RESPONSE_BLOCK        3
+--- a/backend/kvs40xx.h
++++ b/backend/kvs40xx.h
+@@ -10,6 +10,9 @@
+ #include "../include/sane/config.h"
+ #include <semaphore.h>
++#ifdef HAVE_SYS_TYPES_H
++#include <sys/types.h>
++#endif
+ #undef  BACKEND_NAME
+ #define BACKEND_NAME kvs40xx
+--- a/backend/hp5400.c
++++ b/backend/hp5400.c
+@@ -67,6 +67,9 @@
+ #include <stdlib.h>           /* malloc, free */
+ #include <string.h>           /* memcpy */
+ #include <stdio.h>
++#ifdef HAVE_SYS_TYPES_H
++#include <sys/types.h>
++#endif
+ #define HP5400_CONFIG_FILE "hp5400.conf"
+--- a/backend/hp5590.c
++++ b/backend/hp5590.c
+@@ -48,6 +48,9 @@
+ #include <stdio.h>
+ #include <string.h>
+ #include <unistd.h>
++#ifdef HAVE_SYS_TYPES_H
++#include <sys/types.h>
++#endif
+ #include "../include/sane/sane.h"
+ #define BACKEND_NAME hp5590
+--- a/backend/epsonds-io.c
++++ b/backend/epsonds-io.c
+@@ -16,6 +16,9 @@
+ #include "sane/config.h"
+ #include <ctype.h>
+ #include <unistd.h>     /* sleep */
++#ifdef HAVE_SYS_TYPES_H
++#include <sys/types.h>
++#endif
+ #include "epsonds.h"
+ #include "epsonds-io.h"
diff --git a/utils/sane-backends/patches/031-fix_uclibc.patch b/utils/sane-backends/patches/031-fix_uclibc.patch
new file mode 100644 (file)
index 0000000..b7495a5
--- /dev/null
@@ -0,0 +1,38 @@
+--- a/configure.in
++++ b/configure.in
+@@ -279,6 +279,9 @@ dnl ************************************
+ dnl Checks for library functions
+ dnl ***********************************************************************
++dnl Check mkostemp (missing in uclibc)
++AC_CHECK_FUNC(mkostemp)
++
+ dnl Define SOCKET_LIB, NSL_LIB, BIND_LIB, and RESOLV_LIB  when required 
+ dnl for functions we use.
+ AC_CHECK_FUNC(gethostbyaddr,, [AC_CHECK_LIB(bind, gethostbyaddr, BIND_LIB="-lbind")])
+--- a/include/sane/config.h.in
++++ b/include/sane/config.h.in
+@@ -207,6 +207,9 @@
+ /* Define to 1 if you have the `mkdir' function. */
+ #undef HAVE_MKDIR
++/* Define to 1 if you have a working `mkostemp' function. */
++#undef HAVE_MKOSTEMP
++
+ /* Define to 1 if you have a working `mmap' system call. */
+ #undef HAVE_MMAP
+--- a/backend/pieusb_buffer.c
++++ b/backend/pieusb_buffer.c
+@@ -112,6 +112,11 @@
+ #endif
+ #endif
++#ifndef HAVE_MKOSTEMP
++/* uclibc might not implement mkostemp GNU extension */
++#define mkostemp(template, flags) mkstemp(template)
++#endif
++
+ static void buffer_update_read_index(struct Pieusb_Read_Buffer* buffer, int increment);
+ /* READER */
diff --git a/utils/sane-backends/patches/050-remove_linked_libs_for_unused_preload.patch b/utils/sane-backends/patches/050-remove_linked_libs_for_unused_preload.patch
new file mode 100644 (file)
index 0000000..bb01dd9
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/backend/Makefile.am
++++ b/backend/Makefile.am
+@@ -1142,7 +1142,7 @@ EXTRA_DIST += dll.aliases
+ nodist_libsane_la_SOURCES =  dll-s.c
+ libsane_la_CPPFLAGS = $(AM_CPPFLAGS) -DBACKEND_NAME=dll
+ libsane_la_LDFLAGS = $(DIST_LIBS_LDFLAGS)
+-libsane_la_LIBADD = $(COMMON_LIBS) @PRELOADABLE_BACKENDS_ENABLED@ libdll_preload.la sane_strstatus.lo ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo ../sanei/sanei_config.lo ../sanei/sanei_config2.lo ../sanei/sanei_usb.lo ../sanei/sanei_scsi.lo ../sanei/sanei_pv8630.lo ../sanei/sanei_pp.lo ../sanei/sanei_thread.lo  ../sanei/sanei_lm983x.lo ../sanei/sanei_access.lo ../sanei/sanei_net.lo ../sanei/sanei_wire.lo ../sanei/sanei_codec_bin.lo ../sanei/sanei_pa4s2.lo ../sanei/sanei_ab306.lo ../sanei/sanei_pio.lo ../sanei/sanei_tcp.lo ../sanei/sanei_udp.lo ../sanei/sanei_magic.lo $(DL_LIBS) $(LIBV4L_LIBS) $(MATH_LIB) $(IEEE1284_LIBS) $(TIFF_LIBS) $(JPEG_LIBS) $(GPHOTO2_LIBS) $(SOCKET_LIBS) $(USB_LIBS) $(AVAHI_LIBS) $(SCSI_LIBS) $(PTHREAD_LIBS) $(RESMGR_LIBS)
++libsane_la_LIBADD = $(COMMON_LIBS) @PRELOADABLE_BACKENDS_ENABLED@ libdll_preload.la sane_strstatus.lo ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo ../sanei/sanei_config.lo ../sanei/sanei_config2.lo ../sanei/sanei_usb.lo ../sanei/sanei_scsi.lo ../sanei/sanei_pv8630.lo ../sanei/sanei_pp.lo ../sanei/sanei_thread.lo  ../sanei/sanei_lm983x.lo ../sanei/sanei_access.lo ../sanei/sanei_net.lo ../sanei/sanei_wire.lo ../sanei/sanei_codec_bin.lo ../sanei/sanei_pa4s2.lo ../sanei/sanei_ab306.lo ../sanei/sanei_pio.lo ../sanei/sanei_tcp.lo ../sanei/sanei_udp.lo ../sanei/sanei_magic.lo $(DL_LIBS) $(MATH_LIB) $(IEEE1284_LIBS) $(SOCKET_LIBS) $(USB_LIBS) $(PTHREAD_LIBS) $(RESMGR_LIBS)
+ # WARNING: Automake is getting this wrong so have to do it ourselves.
+ libsane_la_DEPENDENCIES = $(COMMON_LIBS) @PRELOADABLE_BACKENDS_ENABLED@ libdll_preload.la sane_strstatus.lo ../sanei/sanei_init_debug.lo ../sanei/sanei_constrain_value.lo ../sanei/sanei_config.lo ../sanei/sanei_config2.lo ../sanei/sanei_usb.lo ../sanei/sanei_scsi.lo ../sanei/sanei_pv8630.lo ../sanei/sanei_pp.lo ../sanei/sanei_thread.lo  ../sanei/sanei_lm983x.lo ../sanei/sanei_access.lo ../sanei/sanei_net.lo ../sanei/sanei_wire.lo ../sanei/sanei_codec_bin.lo ../sanei/sanei_pa4s2.lo ../sanei/sanei_ab306.lo ../sanei/sanei_pio.lo ../sanei/sanei_tcp.lo ../sanei/sanei_udp.lo ../sanei/sanei_magic.lo @SANEI_SANEI_JPEG_LO@
index 0c7dd2cf555c95b001b5caded76000061023811f..d2499a756370cf061a0cc5aef59f68d7dfefb409 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=smstools3
 PKG_VERSION:=3.1.15
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_MAINTAINER:=Gérald Kerma <dreagle@doukki.net>
 PKG_LICENSE:=GPL-2.0
@@ -50,11 +50,11 @@ TARGET_LDFLAGS += -liconv
 BINDIR=/usr/local/bin
 
 define Build/Compile
-       $(MAKE) -C "$(PKG_BUILD_DIR)"/src \
+       $(MAKE) -C "$(PKG_BUILD_DIR)/src" \
                CC="$(TARGET_CC)" \
-               USER_CFLAGS='$(TARGET_CFLAGS) $(EXTRA_CFLAGS) $(TARGET_CPPFLAGS) $(EXTRA_CPPFLAGS) \
+               CFLAGS='$(TARGET_CFLAGS) $(EXTRA_CFLAGS) $(TARGET_CPPFLAGS) $(EXTRA_CPPFLAGS) \
                -I"$(STAGING_DIR)/usr/lib/libiconv-full/include"' \
-               USER_LDFLAGS='$(TARGET_LFLAGS) $(EXTRA_LDFLAGS) -L"$(STAGING_DIR)/usr/lib/libiconv-full/lib"' \
+               LFLAGS='$(TARGET_LDFLAGS) $(EXTRA_LDFLAGS) -L"$(STAGING_DIR)/usr/lib/libiconv-full/lib"' \
                all
 endef
 
diff --git a/utils/spi-tools/Makefile b/utils/spi-tools/Makefile
new file mode 100644 (file)
index 0000000..ca4da88
--- /dev/null
@@ -0,0 +1,48 @@
+#
+# Copyright (C) 2014-2015 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=spi-tools
+PKG_VERSION:=1
+
+PKG_RELEASE=$(PKG_SOURCE_VERSION)
+
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL:=https://github.com/cpb-/spi-tools.git
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
+PKG_SOURCE_VERSION:=cc6a41fdcec60610703ba6db488c621c64952898
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
+
+PKG_MAINTAINER:=John Crispin <blogic@openwrt.org>
+
+PKG_LICENSE:=GPL-2.0
+PKG_LICENSE_FILES:=
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/spi-tools
+  SECTION:=utils
+  CATEGORY:=Utilities
+  TITLE:=Command line SPI tools
+endef
+
+EXTRA_CFLAGS+=-DVERSION=\"$(PKG_SOURCE_VERSION)\"
+
+define Build/Compile
+       cd $(PKG_BUILD_DIR) ; \
+        $(TARGET_CC) $(TARGET_CFLAGS) $(EXTRA_CFLAGS) -Wall -Werror -o spi-config src/spi-config.c ; \
+        $(TARGET_CC) $(TARGET_CFLAGS) $(EXTRA_CFLAGS) -Wall -Werror -o spi-pipe src/spi-pipe.c
+endef
+
+define Package/spi-tools/install
+       $(INSTALL_DIR) $(1)/usr/bin
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/spi-config $(1)/usr/bin
+       $(INSTALL_BIN) $(PKG_BUILD_DIR)/spi-pipe $(1)/usr/bin
+endef
+
+$(eval $(call BuildPackage,spi-tools))
index 83aa40d4270e902a15ee15b0e66d5785205b592b..eb1360c469d8927611247ab4de1fdb94f6273a24 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=sumo
-PKG_VERSION:=0.23.0
+PKG_VERSION:=0.24.0
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-src-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@SF/sumo
-PKG_MD5SUM:=0df95a449d44808b8d3677af086e1af1
+PKG_MD5SUM:=5522dffc71ecf636b02dc6bdea7e569d
 PKG_MAINTAINER:=Álvaro Fernández Rojas <noltari@gmail.com>
 
 PKG_LICENSE:=GPL-3.0
diff --git a/utils/swig/Makefile b/utils/swig/Makefile
new file mode 100644 (file)
index 0000000..7b9c4f0
--- /dev/null
@@ -0,0 +1,39 @@
+# 
+# Copyright (C) 2006-2013 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=swig
+PKG_VERSION:=3.0.7
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=@SF/$(PKG_NAME)
+PKG_MD5SUM:=7fff46c84b8c630ede5b0f0827e3d90a
+PKG_INSTALL:=1
+
+PKG_MAINTAINER:=John Crispin <blogic@openwrt.org>
+PKG_LICENSE:=GPL-3.0
+PKG_LICENSE_FILE:=LICENSE
+
+include $(INCLUDE_DIR)/host-build.mk
+include $(INCLUDE_DIR)/package.mk
+
+define Package/swig
+  SECTION:=libs
+  CATEGORY:=Libraries
+  TITLE:=swig binding generator
+  BUILDONLY:=1
+endef
+
+HOST_CONFIGURE_ARGS+= \
+       --without-pcre
+
+define Package/swig/description
+  tool that generates bindings for various languages
+endef
+
+$(eval $(call HostBuild))
+$(eval $(call BuildPackage,swig))
index 30fed85a44b6f6c1e113fbf99904c88a9146fa6f..6982f0fd0cabba68df3c1cc781f07206a0425e17 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=tmux
-PKG_VERSION:=2.0
+PKG_VERSION:=2.1
 PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=https://github.com/tmux/tmux/releases/download/$(PKG_VERSION)
-PKG_MD5SUM:=9fb6b443392c3978da5d599f1e814eaa
+PKG_MD5SUM:=74a2855695bccb51b6e301383ad4818c
 PKG_MAINTAINER:=Maxim Storchak <m.storchak@gmail.com>
 
 PKG_LICENSE:=ISC
index 6350f5b71861bb33ecdf1f1ad4ba75cecb7950fb..5afc9b742a4a18e5ec5e6893fcabbecd01ed7740 100644 (file)
@@ -1,6 +1,8 @@
+diff --git a/compat.h b/compat.h
+index 8666a1d..2a44a2b 100644
 --- a/compat.h
 +++ b/compat.h
-@@ -230,7 +230,9 @@ int                 daemon(int, int);
+@@ -223,7 +223,9 @@ int                 daemon(int, int);
  #ifndef HAVE_B64_NTOP
  /* b64_ntop.c */
  #undef b64_ntop /* for Cygwin */
  #endif
  
  #ifndef HAVE_FORKPTY
---- a/tty.c
-+++ b/tty.c
-@@ -1070,7 +1070,7 @@ tty_cmd_setselection(struct tty *tty, co
-       off = 4 * ((ctx->num + 2) / 3) + 1; /* storage for base64 */
-       buf = xmalloc(off);
--      b64_ntop(ctx->ptr, ctx->num, buf, off);
-+      local_b64_ntop(ctx->ptr, ctx->num, buf, off);
-       tty_putcode_ptr2(tty, TTYC_MS, "", buf);
-       free(buf);
+diff --git a/compat/b64_ntop.c b/compat/b64_ntop.c
+index 2b4dc2d..a1314ca 100644
 --- a/compat/b64_ntop.c
 +++ b/compat/b64_ntop.c
 @@ -122,7 +122,7 @@ static const char Pad64 = '=';
        size_t datalength = 0;
        uint8_t input[3];
        uint8_t output[4];
+diff --git a/tty.c b/tty.c
+index 7be952c..06dedab 100644
+--- a/tty.c
++++ b/tty.c
+@@ -1134,7 +1134,7 @@ tty_cmd_setselection(struct tty *tty, const struct tty_ctx *ctx)
+       off = 4 * ((ctx->num + 2) / 3) + 1; /* storage for base64 */
+       buf = xmalloc(off);
+-      b64_ntop(ctx->ptr, ctx->num, buf, off);
++      local_b64_ntop(ctx->ptr, ctx->num, buf, off);
+       tty_putcode_ptr2(tty, TTYC_MS, "", buf);
+       free(buf);
index 733d074bacd0d4476fe09046d425f5e549bae6b1..8d95a9cb1c8ca235e1c66590a3cfc1a6a4d8fdee 100644 (file)
@@ -8,15 +8,15 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=tracertools
-PKG_VERSION:=20141027
+PKG_VERSION:=20150916
 PKG_RELEASE=$(PKG_SOURCE_VERSION)
 PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
 
 PKG_LICENSE:=GPL-3.0
 
 PKG_SOURCE_PROTO:=git
-PKG_SOURCE_URL:=https://gitorious.org/tracertools/tracertools.git
-PKG_SOURCE_VERSION:=9ba70d1fe4f3c0f24d565d98c79fee71711823f0
+PKG_SOURCE_URL:=https://github.com/dangowrt/tracertools.git
+PKG_SOURCE_VERSION:=7dba3342fedfd04eb7b0d9941971726fde948ec0
 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
 
index b5ad45eb439df6e7fce7fd14142b522204e50e83..156abd2e72c4cdd6f12d6d0823191e1894dcdd19 100644 (file)
@@ -8,12 +8,12 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=unrar
-PKG_VERSION:=5.3.1
+PKG_VERSION:=5.3.7
 PKG_RELEASE:=1
 
 PKG_SOURCE:=unrarsrc-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=http://www.rarlab.com/rar
-PKG_MD5SUM:=c0471d0f5513fb3f8e3f019538a0fb7a
+PKG_MD5SUM:=668f8de87b74d9fa7037d3d487200149
 PKG_MAINTAINER:=Álvaro Fernández Rojas <noltari@gmail.com>
 
 PKG_LICENSE:=UnRAR
@@ -25,21 +25,40 @@ PKG_INSTALL:=1
 include $(INCLUDE_DIR)/uclibc++.mk
 include $(INCLUDE_DIR)/package.mk
 
-define Package/unrar
-  SECTION:=utils
-  CATEGORY:=Utilities
+define Package/unrar/Default
+  TITLE:=UnRAR
   SUBMENU:=Compression
-  TITLE:=UnRAR application
   URL:=http://www.rarlab.com/
   DEPENDS:=$(CXX_DEPENDS) +libpthread
 endef
 
+define Package/unrar
+$(call Package/unrar/Default)
+  SECTION:=utils
+  CATEGORY:=Utilities
+  TITLE+= (application)
+endef
+
+define Package/libunrar
+$(call Package/unrar/Default)
+  SECTION:=libs
+  CATEGORY:=Libraries
+  TITLE+= (library)
+endef
+
 define Package/unrar/description
-   UnRAR is an application that can decompress files and archives created using
-   the RAR compression scheme
+  UnRAR is an application that can decompress files and archives created using
+  the RAR compression scheme
 endef
 
-define Build/Configure
+define Package/libunrar/description
+  UnRAR library is a shared library that provides file extraction from RAR
+  archives
+endef
+
+define Build/Compile
+       $(call Build/Compile/Default,unrar)
+       $(call Build/Compile/Default,lib)
 endef
 
 define Package/unrar/install
@@ -47,4 +66,10 @@ define Package/unrar/install
        $(INSTALL_BIN) $(PKG_INSTALL_DIR)/bin/unrar $(1)/usr/bin/
 endef
 
+define Package/libunrar/install
+       $(INSTALL_DIR) $(1)/usr/lib
+       $(CP) $(PKG_BUILD_DIR)/libunrar.so $(1)/usr/lib/
+endef
+
 $(eval $(call BuildPackage,unrar))
+$(eval $(call BuildPackage,libunrar))
index cdd6d2ae91f7c2f9f301ed5641d19bc072afa420..112b3f4e85ba2e1fd89be8563821ce32538d3d77 100644 (file)
@@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
 PKG_NAME:=unzip
 PKG_REV:=60
 PKG_VERSION:=6.0
-PKG_RELEASE:=2
+PKG_RELEASE:=3
 
 PKG_SOURCE:=$(PKG_NAME)$(PKG_REV).tar.gz
 PKG_SOURCE_URL:=@SF/infozip
diff --git a/utils/unzip/patches/005-CVE-2015-7696-heap-overflow.patch b/utils/unzip/patches/005-CVE-2015-7696-heap-overflow.patch
new file mode 100644 (file)
index 0000000..df758a1
--- /dev/null
@@ -0,0 +1,21 @@
+--- a/crypt.c
++++ b/crypt.c
+@@ -465,7 +465,17 @@ int decrypt(__G__ passwrd)
+     GLOBAL(pInfo->encrypted) = FALSE;
+     defer_leftover_input(__G);
+     for (n = 0; n < RAND_HEAD_LEN; n++) {
+-        b = NEXTBYTE;
++        /* 2012-11-23 SMS.  (OUSPG report.)
++         * Quit early if compressed size < HEAD_LEN.  The resulting
++         * error message ("unable to get password") could be improved,
++         * but it's better than trying to read nonexistent data, and
++         * then continuing with a negative G.csize.  (See
++         * fileio.c:readbyte()).
++         */
++        if ((b = NEXTBYTE) == (ush)EOF)
++        {
++            return PK_ERR;
++        }
+         h[n] = (uch)b;
+         Trace((stdout, " (%02x)", h[n]));
+     }
diff --git a/utils/unzip/patches/006-CVE-2015-7697-infinite-loop.patch b/utils/unzip/patches/006-CVE-2015-7697-infinite-loop.patch
new file mode 100644 (file)
index 0000000..a8376b2
--- /dev/null
@@ -0,0 +1,15 @@
+--- a/extract.c
++++ b/extract.c
+@@ -2728,6 +2728,12 @@ __GDEF
+     int repeated_buf_err;
+     bz_stream bstrm;
++    if (G.incnt <= 0 && G.csize <= 0L) {
++        /* avoid an infinite loop */
++        Trace((stderr, "UZbunzip2() got empty input\n"));
++        return 2;
++    }
++
+ #if (defined(DLL) && !defined(NO_SLIDE_REDIR))
+     if (G.redirect_slide)
+         wsize = G.redirect_size, redirSlide = G.redirect_buffer;
diff --git a/utils/unzip/patches/007-integer-underflow-csiz_decrypted.patch b/utils/unzip/patches/007-integer-underflow-csiz_decrypted.patch
new file mode 100644 (file)
index 0000000..738ea52
--- /dev/null
@@ -0,0 +1,21 @@
+--- a/extract.c
++++ b/extract.c
+@@ -1257,8 +1257,17 @@ static int extract_or_test_entrylist(__G
+         if (G.lrec.compression_method == STORED) {
+             zusz_t csiz_decrypted = G.lrec.csize;
+-            if (G.pInfo->encrypted)
++            if (G.pInfo->encrypted) {
++                if (csiz_decrypted <= 12) {
++                    /* handle the error now to prevent unsigned overflow */
++                    Info(slide, 0x401, ((char *)slide,
++                      LoadFarStringSmall(ErrUnzipNoFile),
++                      LoadFarString(InvalidComprData),
++                      LoadFarStringSmall2(Inflate)));
++                    return PK_ERR;
++                }
+                 csiz_decrypted -= 12;
++            }
+             if (G.lrec.ucsize != csiz_decrypted) {
+                 Info(slide, 0x401, ((char *)slide,
+                   LoadFarStringSmall2(WrnStorUCSizCSizDiff),
index 373140da29f2f585af57436fc179d1cbcbc6a061..4f738bbf3bb8e61c430763917a2c1e20691d7311 100644 (file)
@@ -8,12 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=xz
-PKG_VERSION:=5.2.1
-PKG_RELEASE:=2
+PKG_VERSION:=5.2.2
+PKG_RELEASE:=1
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
-PKG_SOURCE_URL:=http://tukaani.org/xz
-PKG_MD5SUM:=d484910b26fec5aff99ee66350589e29
+PKG_SOURCE_URL:=http://tukaani.org/xz \
+               http://fossies.org/linux/misc
+PKG_MD5SUM:=f90c9a0c8b259aee2234c4e0d7fd70af
 
 PKG_LICENSE:=Public-Domain LGPL-2.1+ GPL-2.0+ GPL-3.0+
 PKG_LICENSE_FILES:=COPYING
diff --git a/utils/yunbridge/Makefile b/utils/yunbridge/Makefile
new file mode 100644 (file)
index 0000000..ae49232
--- /dev/null
@@ -0,0 +1,48 @@
+#
+# Copyright (C) 2006-2011 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=yunbridge
+PKG_VERSION:=160
+
+PKG_RELEASE=$(PKG_SOURCE_VERSION)
+
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL:=https://github.com/arduino/YunBridge.git
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
+PKG_SOURCE_VERSION:=f2042052115e71ad2c91f77e78d21db8275fcdd6
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
+
+PKG_MAINTAINER:=John Crispin <blogic@openwrt.org>
+PKG_LICENSE:=GPL-2.0
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/yunbridge
+  SECTION:=utils
+  CATEGORY:=Utilities
+  TITLE:=Arduino YUN bridge library
+  URL:=http://arduino.cc/
+  DEPENDS:=+python
+endef
+
+define Package/yunbridge/description
+  Arduino YUN bridge library
+endef
+
+define Build/Compile
+       true
+endef
+
+define Package/yunbridge/install
+       mkdir -p $(1)/usr/lib/python2.7/bridge
+       $(CP) $(PKG_BUILD_DIR)/bridge/*.py $(1)/usr/lib/python2.7/bridge/
+       $(CP) ./files/* $(1)
+endef
+
+$(eval $(call BuildPackage,yunbridge))
diff --git a/utils/yunbridge/files/etc/config/yunbridge b/utils/yunbridge/files/etc/config/yunbridge
new file mode 100644 (file)
index 0000000..fe8dd28
--- /dev/null
@@ -0,0 +1,6 @@
+config bridge config
+       option socket_timeout 5
+       option secure_rest_api false
+
+       # remove this line to activae the yunbridge
+       option disabled 1
diff --git a/utils/yunbridge/files/etc/init.d/yunbridge b/utils/yunbridge/files/etc/init.d/yunbridge
new file mode 100755 (executable)
index 0000000..4b48220
--- /dev/null
@@ -0,0 +1,22 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2013 OpenWrt.org
+
+# start after and stop before networking
+START=20
+STOP=89
+
+USE_PROCD=1
+
+service_triggers()
+{
+       procd_add_reload_trigger "yunbridge"
+}
+
+start_service()
+{
+       [ "$(uci -q get yunbridge.config.disabled)" = "1" ] && return 0
+       procd_open_instance
+       procd_set_param command "/sbin/yunbridge"
+       procd_set_param respawn
+       procd_close_instance
+}
diff --git a/utils/yunbridge/files/sbin/yunbridge b/utils/yunbridge/files/sbin/yunbridge
new file mode 100755 (executable)
index 0000000..c8e4812
--- /dev/null
@@ -0,0 +1,6 @@
+#!/bin/sh
+stty -F /dev/ttyS0 2500000 clocal cread cs8 -cstopb -parenb
+exec < /dev/ttyS0
+exec > /dev/ttyS0
+exec 2> /dev/ttyS0
+askfirst bin/ash --login
diff --git a/utils/yunbridge/files/usr/bin/pretty-wifi-info.lua b/utils/yunbridge/files/usr/bin/pretty-wifi-info.lua
new file mode 100755 (executable)
index 0000000..d91817a
--- /dev/null
@@ -0,0 +1,75 @@
+#!/usr/bin/lua
+
+local function get_basic_net_info(network, iface, accumulator)
+  local net = network:get_network(iface)
+  local device = net and net:get_interface()
+
+  if device then
+    accumulator["uptime"] = net:uptime()
+    accumulator["iface"] = device:name()
+    accumulator["mac"] = device:mac()
+    accumulator["rx_bytes"] = device:rx_bytes()
+    accumulator["tx_bytes"] = device:tx_bytes()
+    accumulator["ipaddrs"] = {}
+
+    for _, ipaddr in ipairs(device:ipaddrs()) do
+      accumulator.ipaddrs[#accumulator.ipaddrs + 1] = {
+        addr = ipaddr:host():string(),
+        netmask = ipaddr:mask():string()
+      }
+    end
+  end
+end
+
+local function get_wifi_info(network, iface, accumulator)
+  local net = network:get_wifinet(iface)
+
+  if net then
+    local dev = net:get_device()
+    if dev then
+      accumulator["mode"] = net:active_mode()
+      accumulator["ssid"] = net:active_ssid()
+      accumulator["encryption"] = net:active_encryption()
+      accumulator["quality"] = net:signal_percent()
+    end
+  end
+end
+
+local function collect_wifi_info()
+  local network = require"luci.model.network".init()
+  local accumulator = {}
+  get_basic_net_info(network, "lan", accumulator)
+  get_wifi_info(network, "wlan0", accumulator)
+  return accumulator
+end
+
+local info = collect_wifi_info()
+
+print("Current WiFi configuration")
+if info.ssid then
+  print("SSID: " .. info.ssid)
+end
+if info.mode then
+  print("Mode: " .. info.mode)
+end
+if info.quality then
+  print("Signal: " .. info.quality .. "%")
+end
+if info.encryption then
+  print("Encryption method: " .. info.encryption)
+end
+if info.iface then
+  print("Interface name: " .. info.iface)
+end
+if info.uptime then
+  print("Active for: " .. math.floor(info.uptime / 60) .. " minutes")
+end
+if #info.ipaddrs > 0 then
+  print("IP address: " .. info.ipaddrs[1].addr .. "/" .. info.ipaddrs[1].netmask)
+end
+if info.mac then
+  print("MAC address: " .. info.mac)
+end
+if info.rx_bytes and info.tx_bytes then
+  print("RX/TX: " .. math.floor(info.rx_bytes / 1024) .. "/" .. math.floor(info.tx_bytes / 1024) .. " KBs")
+end
diff --git a/utils/yunbridge/files/usr/lib/lua/luci/controller/arduino/index.lua b/utils/yunbridge/files/usr/lib/lua/luci/controller/arduino/index.lua
new file mode 100644 (file)
index 0000000..8d3b7eb
--- /dev/null
@@ -0,0 +1,414 @@
+--[[
+This file is part of YunWebUI.
+
+YunWebUI is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+
+As a special exception, you may use this file as part of a free software
+library without restriction.  Specifically, if other files instantiate
+templates or use macros or inline functions from this file, or you compile
+this file and link it with other files to produce an executable, this
+file does not by itself cause the resulting executable to be covered by
+the GNU General Public License.  This exception does not however
+invalidate any other reasons why the executable file might be covered by
+the GNU General Public License.
+
+Copyright 2013 Arduino LLC (http://www.arduino.cc/)
+]]
+
+module("luci.controller.arduino.index", package.seeall)
+
+local function not_nil_or_empty(value)
+  return value and value ~= ""
+end
+
+local function get_first(cursor, config, type, option)
+  return cursor:get_first(config, type, option)
+end
+
+local function set_first(cursor, config, type, option, value)
+  cursor:foreach(config, type, function(s)
+    if s[".type"] == type then
+      cursor:set(config, s[".name"], option, value)
+    end
+  end)
+end
+
+
+local function to_key_value(s)
+  local parts = luci.util.split(s, ":")
+  parts[1] = luci.util.trim(parts[1])
+  parts[2] = luci.util.trim(parts[2])
+  return parts[1], parts[2]
+end
+
+function http_error(code, text)
+  luci.http.prepare_content("text/plain")
+  luci.http.status(code)
+  if text then
+    luci.http.write(text)
+  end
+end
+
+function index()
+  function luci.dispatcher.authenticator.arduinoauth(validator, accs, default)
+    require("luci.controller.arduino.index")
+
+    local user = luci.http.formvalue("username")
+    local pass = luci.http.formvalue("password")
+    local basic_auth = luci.http.getenv("HTTP_AUTHORIZATION")
+
+    if user and validator(user, pass) then
+      return user
+    end
+
+    if basic_auth and basic_auth ~= "" then
+      local decoded_basic_auth = nixio.bin.b64decode(string.sub(basic_auth, 7))
+      user = string.sub(decoded_basic_auth, 0, string.find(decoded_basic_auth, ":") - 1)
+      pass = string.sub(decoded_basic_auth, string.find(decoded_basic_auth, ":") + 1)
+    end
+
+    if user then
+      if #pass ~= 64 and validator(user, pass) then
+        return user
+      elseif #pass == 64 then
+        local uci = luci.model.uci.cursor()
+        uci:load("yunbridge")
+        local stored_encrypted_pass = uci:get_first("yunbridge", "bridge", "password")
+        if pass == stored_encrypted_pass then
+          return user
+        end
+      end
+    end
+
+    luci.http.header("WWW-Authenticate", "Basic realm=\"yunbridge\"")
+    luci.http.status(401)
+
+    return false
+  end
+
+  local function make_entry(path, target, title, order)
+    local page = entry(path, target, title, order)
+    page.leaf = true
+    return page
+  end
+
+  -- web panel
+  local webpanel = entry({ "webpanel" }, alias("webpanel", "go_to_homepage"), _("%s Web Panel") % luci.sys.hostname(), 10)
+  webpanel.sysauth = "root"
+  webpanel.sysauth_authenticator = "arduinoauth"
+
+  make_entry({ "webpanel", "go_to_homepage" }, call("go_to_homepage"), nil)
+
+  --api security level
+  local uci = luci.model.uci.cursor()
+  uci:load("yunbridge")
+  local secure_rest_api = uci:get_first("yunbridge", "bridge", "secure_rest_api")
+  local rest_api_sysauth = false
+  if secure_rest_api == "true" then
+    rest_api_sysauth = webpanel.sysauth
+  end
+
+  --storage api
+  local data_api = node("data")
+  data_api.sysauth = rest_api_sysauth
+  data_api.sysauth_authenticator = webpanel.sysauth_authenticator
+  make_entry({ "data", "get" }, call("storage_send_request"), nil).sysauth = rest_api_sysauth
+  make_entry({ "data", "put" }, call("storage_send_request"), nil).sysauth = rest_api_sysauth
+  make_entry({ "data", "delete" }, call("storage_send_request"), nil).sysauth = rest_api_sysauth
+  local mailbox_api = node("mailbox")
+  mailbox_api.sysauth = rest_api_sysauth
+  mailbox_api.sysauth_authenticator = webpanel.sysauth_authenticator
+  make_entry({ "mailbox" }, call("build_bridge_mailbox_request"), nil).sysauth = rest_api_sysauth
+
+  --plain socket endpoint
+  local plain_socket_endpoint = make_entry({ "arduino" }, call("board_plain_socket"), nil)
+  plain_socket_endpoint.sysauth = rest_api_sysauth
+  plain_socket_endpoint.sysauth_authenticator = webpanel.sysauth_authenticator
+end
+
+function go_to_homepage()
+  luci.http.redirect("/index.html")
+end
+
+local function build_bridge_request(command, params)
+
+  local bridge_request = {
+    command = command
+  }
+
+  if command == "raw" then
+    params = table.concat(params, "/")
+    if not_nil_or_empty(params) then
+      bridge_request["data"] = params
+    end
+    return bridge_request
+  end
+
+  if command == "get" then
+    if not_nil_or_empty(params[1]) then
+      bridge_request["key"] = params[1]
+    end
+    return bridge_request
+  end
+
+  if command == "put" and not_nil_or_empty(params[1]) and params[2] then
+    bridge_request["key"] = params[1]
+    bridge_request["value"] = params[2]
+    return bridge_request
+  end
+
+  if command == "delete" and not_nil_or_empty(params[1]) then
+    bridge_request["key"] = params[1]
+    return bridge_request
+  end
+
+  return nil
+end
+
+local function extract_jsonp_param(query_string)
+  if not not_nil_or_empty(query_string) then
+    return nil
+  end
+
+  local qs_parts = string.split(query_string, "&")
+  for idx, value in ipairs(qs_parts) do
+    if string.find(value, "jsonp") == 1 or string.find(value, "callback") == 1 then
+      return string.sub(value, string.find(value, "=") + 1)
+    end
+  end
+end
+
+local function parts_after(url_part)
+  local url = luci.http.getenv("PATH_INFO")
+  local url_after_part = string.find(url, "/", string.find(url, url_part) + 1)
+  if not url_after_part then
+    return {}
+  end
+  return luci.util.split(string.sub(url, url_after_part + 1), "/")
+end
+
+function storage_send_request()
+  local method = luci.http.getenv("REQUEST_METHOD")
+  local jsonp_callback = extract_jsonp_param(luci.http.getenv("QUERY_STRING"))
+  local parts = parts_after("data")
+  local command = parts[1]
+  if not command or command == "" then
+    luci.http.status(404)
+    return
+  end
+  local params = {}
+  for idx, param in ipairs(parts) do
+    if idx > 1 and not_nil_or_empty(param) then
+      table.insert(params, param)
+    end
+  end
+
+  -- TODO check method?
+  local bridge_request = build_bridge_request(command, params)
+  if not bridge_request then
+    luci.http.status(403)
+    return
+  end
+
+  local uci = luci.model.uci.cursor()
+  uci:load("yunbridge")
+  local socket_timeout = uci:get_first("yunbridge", "bridge", "socket_timeout", 5)
+
+  local sock, code, msg = nixio.connect("127.0.0.1", 5700)
+  if not sock then
+    code = code or ""
+    msg = msg or ""
+    http_error(500, "nil socket, " .. code .. " " .. msg)
+    return
+  end
+
+  sock:setopt("socket", "sndtimeo", socket_timeout)
+  sock:setopt("socket", "rcvtimeo", socket_timeout)
+  sock:setopt("tcp", "nodelay", 1)
+
+  local json = require("luci.json")
+
+  sock:write(json.encode(bridge_request))
+  sock:writeall("\n")
+
+  local response_text = {}
+  while true do
+    local bytes = sock:recv(4096)
+    if bytes and #bytes > 0 then
+      table.insert(response_text, bytes)
+    end
+
+    local json_response = json.decode(table.concat(response_text))
+    if json_response then
+      sock:close()
+      luci.http.status(200)
+      if jsonp_callback then
+        luci.http.prepare_content("application/javascript")
+        luci.http.write(jsonp_callback)
+        luci.http.write("(")
+        luci.http.write_json(json_response)
+        luci.http.write(");")
+      else
+        luci.http.prepare_content("application/json")
+        luci.http.write(json.encode(json_response))
+      end
+      return
+    end
+
+    if not bytes or #response_text == 0 then
+      sock:close()
+      http_error(500, "Empty response")
+      return
+    end
+  end
+
+  sock:close()
+end
+
+function board_plain_socket()
+  local function send_response(response_text, jsonp_callback)
+    if not response_text then
+      luci.http.status(500)
+      return
+    end
+
+    local rows = luci.util.split(response_text, "\r\n")
+    if #rows == 1 or string.find(rows[1], "Status") ~= 1 then
+      luci.http.prepare_content("text/plain")
+      luci.http.status(200)
+      luci.http.write(response_text)
+      return
+    end
+
+    local body_start_at_idx = -1
+    local content_type = "text/plain"
+    for idx, row in ipairs(rows) do
+      if row == "" then
+        body_start_at_idx = idx
+        break
+      end
+
+      local key, value = to_key_value(row)
+      if string.lower(key) == "status" then
+        luci.http.status(tonumber(value))
+      elseif string.lower(key) == "content-type" then
+        content_type = value
+      else
+        luci.http.header(key, value)
+      end
+    end
+
+    local response_body = table.concat(rows, "\r\n", body_start_at_idx + 1)
+    if content_type == "application/json" and jsonp_callback then
+      local json = require("luci.json")
+      luci.http.prepare_content("application/javascript")
+      luci.http.write(jsonp_callback)
+      luci.http.write("(")
+      luci.http.write_json(json.decode(response_body))
+      luci.http.write(");")
+    else
+      luci.http.prepare_content(content_type)
+      luci.http.write(response_body)
+    end
+  end
+
+  local method = luci.http.getenv("REQUEST_METHOD")
+  local jsonp_callback = extract_jsonp_param(luci.http.getenv("QUERY_STRING"))
+  local parts = parts_after("arduino")
+  local params = {}
+  for idx, param in ipairs(parts) do
+    if not_nil_or_empty(param) then
+      table.insert(params, param)
+    end
+  end
+
+  if #params == 0 then
+    luci.http.status(404)
+    return
+  end
+
+  params = table.concat(params, "/")
+
+  local uci = luci.model.uci.cursor()
+  uci:load("yunbridge")
+  local socket_timeout = uci:get_first("yunbridge", "bridge", "socket_timeout", 5)
+
+  local sock, code, msg = nixio.connect("127.0.0.1", 5555)
+  if not sock then
+    code = code or ""
+    msg = msg or ""
+    http_error(500, "Could not connect to YunServer " .. code .. " " .. msg)
+    return
+  end
+
+  sock:setopt("socket", "sndtimeo", socket_timeout)
+  sock:setopt("socket", "rcvtimeo", socket_timeout)
+  sock:setopt("tcp", "nodelay", 1)
+
+  sock:write(params)
+  sock:writeall("\r\n")
+
+  local response_text = sock:readall()
+  sock:close()
+
+  send_response(response_text, jsonp_callback)
+end
+
+function build_bridge_mailbox_request()
+  local method = luci.http.getenv("REQUEST_METHOD")
+  local jsonp_callback = extract_jsonp_param(luci.http.getenv("QUERY_STRING"))
+  local parts = parts_after("mailbox")
+  local params = {}
+  for idx, param in ipairs(parts) do
+    if not_nil_or_empty(param) then
+      table.insert(params, param)
+    end
+  end
+
+  if #params == 0 then
+    luci.http.status(400)
+    return
+  end
+
+  local bridge_request = build_bridge_request("raw", params)
+  if not bridge_request then
+    luci.http.status(403)
+    return
+  end
+
+  local uci = luci.model.uci.cursor()
+  uci:load("yunbridge")
+  local socket_timeout = uci:get_first("yunbridge", "bridge", "socket_timeout", 5)
+
+  local sock, code, msg = nixio.connect("127.0.0.1", 5700)
+  if not sock then
+    code = code or ""
+    msg = msg or ""
+    http_error(500, "nil socket, " .. code .. " " .. msg)
+    return
+  end
+
+  sock:setopt("socket", "sndtimeo", socket_timeout)
+  sock:setopt("socket", "rcvtimeo", socket_timeout)
+  sock:setopt("tcp", "nodelay", 1)
+
+  local json = require("luci.json")
+
+  sock:write(json.encode(bridge_request))
+  sock:writeall("\n")
+  sock:close()
+
+  luci.http.status(200)
+end
diff --git a/utils/yunbridge/files/usr/lib/lua/luci/sha256.lua b/utils/yunbridge/files/usr/lib/lua/luci/sha256.lua
new file mode 100644 (file)
index 0000000..b5e2dea
--- /dev/null
@@ -0,0 +1,199 @@
+--
+--  Code merged by gravityscore at http://pastebin.com/gsFrNjbt
+--
+--  Adaptation of the Secure Hashing Algorithm (SHA-244/256)
+--  Found Here: http://lua-users.org/wiki/SecureHashAlgorithm
+--  
+--  Using an adapted version of the bit library
+--  Found Here: https://bitbucket.org/Boolsheet/bslf/src/1ee664885805/bit.lua
+--  
+
+module("luci.sha256", package.seeall)
+
+local MOD = 2 ^ 32
+local MODM = MOD - 1
+
+local function memoize(f)
+  local mt = {}
+  local t = setmetatable({}, mt)
+  function mt:__index(k)
+    local v = f(k)
+    t[k] = v
+    return v
+  end
+
+  return t
+end
+
+local function make_bitop_uncached(t, m)
+  local function bitop(a, b)
+    local res, p = 0, 1
+    while a ~= 0 and b ~= 0 do
+      local am, bm = a % m, b % m
+      res = res + t[am][bm] * p
+      a = (a - am) / m
+      b = (b - bm) / m
+      p = p * m
+    end
+    res = res + (a + b) * p
+    return res
+  end
+
+  return bitop
+end
+
+local function make_bitop(t)
+  local op1 = make_bitop_uncached(t, 2 ^ 1)
+  local op2 = memoize(function(a) return memoize(function(b) return op1(a, b) end) end)
+  return make_bitop_uncached(op2, 2 ^ (t.n or 1))
+end
+
+local bxor1 = make_bitop({ [0] = { [0] = 0, [1] = 1 }, [1] = { [0] = 1, [1] = 0 }, n = 4 })
+
+local function bxor(a, b, c, ...)
+  local z = nil
+  if b then
+    a = a % MOD
+    b = b % MOD
+    z = bxor1(a, b)
+    if c then z = bxor(z, c, ...) end
+    return z
+  elseif a then return a % MOD
+  else return 0
+  end
+end
+
+local function band(a, b, c, ...)
+  local z
+  if b then
+    a = a % MOD
+    b = b % MOD
+    z = ((a + b) - bxor1(a, b)) / 2
+    if c then z = bit32_band(z, c, ...) end
+    return z
+  elseif a then return a % MOD
+  else return MODM
+  end
+end
+
+local function bnot(x) return (-1 - x) % MOD end
+
+local function rshift1(a, disp)
+  if disp < 0 then return lshift(a, -disp) end
+  return math.floor(a % 2 ^ 32 / 2 ^ disp)
+end
+
+local function rshift(x, disp)
+  if disp > 31 or disp < -31 then return 0 end
+  return rshift1(x % MOD, disp)
+end
+
+local function lshift(a, disp)
+  if disp < 0 then return rshift(a, -disp) end
+  return (a * 2 ^ disp) % 2 ^ 32
+end
+
+local function rrotate(x, disp)
+  x = x % MOD
+  disp = disp % 32
+  local low = band(x, 2 ^ disp - 1)
+  return rshift(x, disp) + lshift(low, 32 - disp)
+end
+
+local k = {
+  0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,
+  0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
+  0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,
+  0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
+  0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,
+  0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
+  0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,
+  0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,
+  0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,
+  0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
+  0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,
+  0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
+  0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,
+  0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
+  0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,
+  0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2,
+}
+
+local function str2hexa(s)
+  return (string.gsub(s, ".", function(c) return string.format("%02x", string.byte(c)) end))
+end
+
+local function num2s(l, n)
+  local s = ""
+  for i = 1, n do
+    local rem = l % 256
+    s = string.char(rem) .. s
+    l = (l - rem) / 256
+  end
+  return s
+end
+
+local function s232num(s, i)
+  local n = 0
+  for i = i, i + 3 do n = n * 256 + string.byte(s, i) end
+  return n
+end
+
+local function preproc(msg, len)
+  local extra = 64 - ((len + 9) % 64)
+  len = num2s(8 * len, 8)
+  msg = msg .. "\128" .. string.rep("\0", extra) .. len
+  assert(#msg % 64 == 0)
+  return msg
+end
+
+local function initH256(H)
+  H[1] = 0x6a09e667
+  H[2] = 0xbb67ae85
+  H[3] = 0x3c6ef372
+  H[4] = 0xa54ff53a
+  H[5] = 0x510e527f
+  H[6] = 0x9b05688c
+  H[7] = 0x1f83d9ab
+  H[8] = 0x5be0cd19
+  return H
+end
+
+local function digestblock(msg, i, H)
+  local w = {}
+  for j = 1, 16 do w[j] = s232num(msg, i + (j - 1) * 4) end
+  for j = 17, 64 do
+    local v = w[j - 15]
+    local s0 = bxor(rrotate(v, 7), rrotate(v, 18), rshift(v, 3))
+    v = w[j - 2]
+    w[j] = w[j - 16] + s0 + w[j - 7] + bxor(rrotate(v, 17), rrotate(v, 19), rshift(v, 10))
+  end
+
+  local a, b, c, d, e, f, g, h = H[1], H[2], H[3], H[4], H[5], H[6], H[7], H[8]
+  for i = 1, 64 do
+    local s0 = bxor(rrotate(a, 2), rrotate(a, 13), rrotate(a, 22))
+    local maj = bxor(band(a, b), band(a, c), band(b, c))
+    local t2 = s0 + maj
+    local s1 = bxor(rrotate(e, 6), rrotate(e, 11), rrotate(e, 25))
+    local ch = bxor(band(e, f), band(bnot(e), g))
+    local t1 = h + s1 + ch + k[i] + w[i]
+    h, g, f, e, d, c, b, a = g, f, e, d + t1, c, b, a, t1 + t2
+  end
+
+  H[1] = band(H[1] + a)
+  H[2] = band(H[2] + b)
+  H[3] = band(H[3] + c)
+  H[4] = band(H[4] + d)
+  H[5] = band(H[5] + e)
+  H[6] = band(H[6] + f)
+  H[7] = band(H[7] + g)
+  H[8] = band(H[8] + h)
+end
+
+function sha256(msg)
+  msg = preproc(msg, #msg)
+  local H = initH256({})
+  for i = 1, #msg, 64 do digestblock(msg, i, H) end
+  return str2hexa(num2s(H[1], 4) .. num2s(H[2], 4) .. num2s(H[3], 4) .. num2s(H[4], 4) ..
+          num2s(H[5], 4) .. num2s(H[6], 4) .. num2s(H[7], 4) .. num2s(H[8], 4))
+end
\ No newline at end of file
diff --git a/utils/yunbridge/patches/000-scripts.patch b/utils/yunbridge/patches/000-scripts.patch
new file mode 100644 (file)
index 0000000..46f21bd
--- /dev/null
@@ -0,0 +1,18 @@
+--- a/bridge/packet.py
++++ b/bridge/packet.py
+@@ -93,12 +93,12 @@
+     
+   def run(self, data):
+     if data[0] != 'X':
+-      call(['/usr/bin/blink-start', '100'])
++      #call(['/usr/bin/blink-start', '100'])
+       return chr(1)
+     if data[1:4] != '100':
+-      call(['/usr/bin/blink-start', '100'])
++      #call(['/usr/bin/blink-start', '100'])
+       return chr(2)
+-    call(['/usr/bin/blink-stop'])
++    #call(['/usr/bin/blink-stop'])
+     return chr(0) + '160' # send the actual bridge version
+     
+ class PacketReader:
index 512057c2a5dd5d2d1764a496c6224ce7a0d25078..73b7d19793f4e9de226f3a74729eb95ffe64b785 100644 (file)
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=zile
 PKG_VERSION:=2.3.24
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
 PKG_SOURCE_URL:=@GNU/zile
@@ -19,8 +19,11 @@ PKG_MAINTAINER:=Ted Hess <thess@kitschensync.net>
 PKG_LICENSE:=GPL-3.0+
 PKG_LICENSE_FILES:=COPYING
 
+PKG_FIXUP:=autoreconf
 PKG_INSTALL:=1
 
+PKG_BUILD_DEPENDS += libncurses
+
 include $(INCLUDE_DIR)/package.mk
 
 define Package/zile
@@ -39,7 +42,9 @@ define Package/zile/description
 endef
 
 CONFIGURE_VARS += \
-       gl_cv_func_getopt_gnu=yes
+       gl_cv_func_getopt_gnu=yes \
+       gl_cv_warn__Wmudflap=no \
+       gl_cv_warn__fmudflap=no
 
 define Package/zile/install
        $(INSTALL_DIR) $(1)/usr/bin
diff --git a/utils/zile/patches/010-remove_gets_definition_warning.patch b/utils/zile/patches/010-remove_gets_definition_warning.patch
new file mode 100644 (file)
index 0000000..55ad2c4
--- /dev/null
@@ -0,0 +1,11 @@
+--- a/lib/stdio.in.h
++++ b/lib/stdio.in.h
+@@ -733,7 +733,7 @@ _GL_CXXALIASWARN (gets);
+ /* It is very rare that the developer ever has full control of stdin,
+    so any use of gets warrants an unconditional warning.  Assume it is
+    always declared, since it is required by C89.  */
+-_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
++#define gets(a) fgets( a, sizeof(*(a)), stdin)
+ #endif
index cbbe32a09faf091b3701d7d61c9643cc7ff1a272..09b4f581c6eb3c45bf2a1d81a3dcf8fdc8e263de 100644 (file)
@@ -9,8 +9,8 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=zoneinfo
-PKG_VERSION:=2015f
-PKG_VERSION_CODE:=2015f
+PKG_VERSION:=2015g
+PKG_VERSION_CODE:=2015g
 PKG_RELEASE:=1
 
 #As i couldn't find real license used "Public Domain"
@@ -20,14 +20,14 @@ PKG_LICENSE:=Public Domain
 PKG_SOURCE:=tzdata$(PKG_VERSION).tar.gz
 PKG_SOURCE_CODE:=tzcode$(PKG_VERSION_CODE).tar.gz
 PKG_SOURCE_URL:=http://www.iana.org/time-zones/repository/releases
-PKG_MD5SUM:=e3b82732d20e973e48af1c6f13df9a1d
+PKG_MD5SUM:=8d46e8b225b9a04c75f5c39636435ad6
 
 include $(INCLUDE_DIR)/package.mk
 
 define Download/tzcode
    FILE=$(PKG_SOURCE_CODE)
    URL=$(PKG_SOURCE_URL)
-   MD5SUM:=19578d432ba8b92f73406a17a9bc268d
+   MD5SUM:=a2c47d908a6426f530efb1393cf1cd06
 endef
 
 $(eval $(call Download,tzcode))
index 2e62f08a6f40802021c00f8942706af6c4b10a8d..19a909c885a7ba819b5b9031fe7eee831895d3d6 100644 (file)
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=zsh
-PKG_VERSION:=5.0.6
+PKG_VERSION:=5.1.1
 PKG_RELEASE:=1
 
-PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
 PKG_SOURCE_URL:=@SF/zsh
-PKG_MD5SUM:=7150a6abc2aa1a79d81ed9a282594225
-PKG_MAINTAINER:=Vadim A. Misbakh-Soloviov <mva@mva.name>
+PKG_MD5SUM:=0e8ea3313300277a04cee80836507bae
+PKG_MAINTAINER:=Vadim A. Misbakh-Soloviov <openwrt-zsh@mva.name>
 PKG_LICENSE:=ZSH
 
 PKG_INSTALL:=1