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
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)
--- /dev/null
+--- 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
+ }
+++ /dev/null
---- 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); \
}
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)
}
}
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)
}
--- /dev/null
+--- 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"
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
--- /dev/null
+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.
+ */
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
--enable-agent \
--enable-server \
--enable-proxy \
+ $(call autoconf_bool,CONFIG_IPV6,ipv6) \
--disable-java \
--with-sqlite3="$(STAGING_DIR)/usr"
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
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
/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/
$(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))
--- /dev/null
+--- 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 */
+
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>
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
--- /dev/null
+#
+# 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))
+
--- /dev/null
+(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);
--- /dev/null
+--- a/package.json
++++ b/package.json
+@@ -30,7 +30,6 @@
+ "author": "Sho Hashimoto <hashimoto@shokai.org>",
+ "license": "MIT",
+ "dependencies": {
+- "serialport": "*",
+ "eventemitter2": "*",
+ "debug": "*"
+ },
--- /dev/null
+#
+# 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))
+
--- /dev/null
+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"
--- /dev/null
+#
+# 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))
+
--- /dev/null
+--- 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_
--- /dev/null
+#
+# 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))
+
--- /dev/null
+--- 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"
+ }
+ }
--- /dev/null
+#
+# 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))
--- /dev/null
+--- 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',
--- /dev/null
+--- 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);
+ }
--- /dev/null
+--- 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'));
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>
--- /dev/null
+#
+# 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))
--- /dev/null
+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
--- /dev/null
+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})
--- /dev/null
+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.
--- /dev/null
+--- 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',
--- /dev/null
+--- 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}\"" ) : () ),
--- /dev/null
+--- 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);
+ }
--- /dev/null
+#
+# 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))
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>
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
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>
--- /dev/null
+#
+# 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))
--- /dev/null
+--- 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";
+ }
--- /dev/null
+--- 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;
--- /dev/null
+#
+# 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))
--- /dev/null
+#
+# 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))
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 \
# 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
# 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
$(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
$(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 \
--- /dev/null
+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
--- /dev/null
+-- 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.
--- /dev/null
+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"'
+}
--- /dev/null
+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'
--- /dev/null
+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'
--- /dev/null
+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'
+++ /dev/null
-#!/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%%'
+++ /dev/null
-#!/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%%'
+++ /dev/null
-#!/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%%'
+++ /dev/null
-#!/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%%'
+++ /dev/null
-#!/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%%'
+++ /dev/null
-#!/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%%'
+++ /dev/null
-#!/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%%'
+++ /dev/null
-#!/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%%'
+++ /dev/null
-#!/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%%'
+++ /dev/null
-#!/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%%'
+++ /dev/null
-#!/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%%'
+++ /dev/null
-#!/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%%'
+++ /dev/null
-#!/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%%'
+++ /dev/null
-#!/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%%'
+++ /dev/null
-#!/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%%'
+++ /dev/null
-#!/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%%'
+++ /dev/null
-#!/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%%'
+++ /dev/null
-#!/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%%'
--- /dev/null
+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'
--- /dev/null
+($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'
+}
--- /dev/null
+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'
--- /dev/null
+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'
--- /dev/null
+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'
--- /dev/null
+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"
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"
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
--- /dev/null
+#!/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
--- /dev/null
+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'
--- /dev/null
+# 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"
+}
--- /dev/null
+($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'
+}
--- /dev/null
+# 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"
--- /dev/null
+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'
--- /dev/null
+--- 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
+
--- /dev/null
+--- 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'
--- /dev/null
+--- 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.
+ */
+++ /dev/null
---- 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
-
+++ /dev/null
---- 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.
- */
--- /dev/null
+--- 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
+++ /dev/null
---- 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'
--- /dev/null
+--- /dev/null
++++ b/relink/Makefile.PL
+@@ -0,0 +1,3 @@
++use ExtUtils::MakeMaker;
++
++WriteMakefile(NAME => "relink");
+++ /dev/null
---- 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
+++ /dev/null
---- 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)
+++ /dev/null
---- /dev/null
-+++ b/relink/Makefile.PL
-@@ -0,0 +1,3 @@
-+use ExtUtils::MakeMaker;
-+
-+WriteMakefile(NAME => "relink");
--- /dev/null
+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:
+ {
--- /dev/null
+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");
+ }
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))
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))
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))
define Package/perlbase-benchmark/install
$(call perlmod/Install,$(1),Benchmark.pm,)
+$(call perlmod/InstallBaseTests,$(1),lib/Benchmark.t)
endef
$(eval $(call BuildPackage,perlbase-benchmark))
define Package/perlbase-blib/install
$(call perlmod/Install,$(1),blib.pm,)
+$(call perlmod/InstallBaseTests,$(1),lib/blib.t)
endef
$(eval $(call BuildPackage,perlbase-blib))
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))
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))
define Package/perlbase-class/install
$(call perlmod/Install,$(1),Class,)
+$(call perlmod/InstallBaseTests,$(1),lib/Class/Struct.t)
endef
$(eval $(call BuildPackage,perlbase-class))
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))
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
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))
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))
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))
define Package/perlbase-dirhandle/install
$(call perlmod/Install,$(1),DirHandle.pm,)
+$(call perlmod/InstallBaseTests,$(1),lib/DirHandle.t)
endef
$(eval $(call BuildPackage,perlbase-dirhandle))
define Package/perlbase-dumpvar/install
$(call perlmod/Install,$(1),dumpvar.pl,)
+$(call perlmod/InstallBaseTests,$(1),lib/dumpvar.t)
endef
$(eval $(call BuildPackage,perlbase-dumpvar))
define Package/perlbase-english/install
$(call perlmod/Install,$(1),English.pm,)
+$(call perlmod/InstallBaseTests,$(1),lib/English.t)
endef
$(eval $(call BuildPackage,perlbase-english))
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))
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))
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))
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))
define Package/perlbase-filehandle/install
$(call perlmod/Install,$(1),FileHandle.pm,)
+$(call perlmod/InstallBaseTests,$(1),lib/FileHandle.t)
endef
$(eval $(call BuildPackage,perlbase-filehandle))
define Package/perlbase-filetest/install
$(call perlmod/Install,$(1),filetest.pm,)
+$(call perlmod/InstallBaseTests,$(1),lib/filetest.t)
endef
$(eval $(call BuildPackage,perlbase-filetest))
define Package/perlbase-findbin/install
$(call perlmod/Install,$(1),FindBin.pm,)
+$(call perlmod/InstallBaseTests,$(1),lib/FindBin.t)
endef
$(eval $(call BuildPackage,perlbase-findbin))
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))
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))
define Package/perlbase-integer/install
$(call perlmod/Install,$(1),integer.pm,)
+$(call perlmod/InstallBaseTests,$(1),lib/integer.t)
endef
$(eval $(call BuildPackage,perlbase-integer))
define Package/perlbase-less/install
$(call perlmod/Install,$(1),less.pm,)
+$(call perlmod/InstallBaseTests,$(1),lib/less.t)
endef
$(eval $(call BuildPackage,perlbase-less))
$(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
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))
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))
define Package/perlbase-open/install
$(call perlmod/Install,$(1),open.pm,)
+$(call perlmod/InstallBaseTests,$(1),lib/open.t)
endef
$(eval $(call BuildPackage,perlbase-open))
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))
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/
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
define Package/perlbase-selectsaver/install
$(call perlmod/Install,$(1),SelectSaver.pm,)
+$(call perlmod/InstallBaseTests,$(1),lib/SelectSaver.t)
endef
$(eval $(call BuildPackage,perlbase-selectsaver))
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))
define Package/perlbase-sort/install
$(call perlmod/Install,$(1),sort.pm,)
+$(call perlmod/InstallBaseTests,$(1),lib/sort.t)
endef
$(eval $(call BuildPackage,perlbase-sort))
define Package/perlbase-symbol/install
$(call perlmod/Install,$(1),Symbol.pm,)
+$(call perlmod/InstallBaseTests,$(1),lib/Symbol.t)
endef
$(eval $(call BuildPackage,perlbase-symbol))
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
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))
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))
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))
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))
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))
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))
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))
$(eval $(call BuildPackage,perlbase-xsloader))
-# Generated Mon Jun 15 15:00:59 2015
+# Generated Fri Sep 25 07:47:59 2015
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
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>
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
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$ */
#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
+
#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;
/* read ID */
version = (*tzf)[3] - '0';
*tzf += 4;
-@@ -296,7 +320,406 @@
+@@ -298,7 +321,406 @@ void timelib_dump_tzinfo(timelib_tzinfo
}
}
{
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;
}
}
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;
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);
}
} 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)
--- /dev/null
+#
+# 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))
--- /dev/null
+#
+# 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))
--- /dev/null
+--- 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"]),
+
--- /dev/null
+--- 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)
--- /dev/null
+#
+# 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))
--- /dev/null
+#
+# 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))
--- /dev/null
+#
+# 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))
--- /dev/null
+#
+# 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))
--- /dev/null
+#
+# 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))
--- /dev/null
+#
+# 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))
--- /dev/null
+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},
+ )
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)
--- /dev/null
+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)
--- /dev/null
+#
+# 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))
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
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)" \
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
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
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)
MAKE_FLAGS+=\
CROSS_COMPILE=yes \
LD="$(TARGET_CC)" \
+ FREEZE_IMPORTLIB=_freeze_importlib \
PGEN=pgen3
ifeq ($(ARCH),i386)
--without-pymalloc \
--with-threads \
--prefix=$(STAGING_DIR_HOST) \
+ --with-system-expat=$(STAGING_DIR_HOST) \
--with-ensurepip=upgrade \
CONFIG_SITE= \
CFLAGS="$(HOST_CFLAGS)"
$(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))
# 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
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
- -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
- -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
-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')
--- /dev/null
+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
+
+
--- /dev/null
+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)
--- /dev/null
+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[:]
--- /dev/null
+#
+# 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))
--- /dev/null
+--- 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)" ; \
--- /dev/null
+--- 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();
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
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) \
--- /dev/null
+#
+# 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))
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
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 =
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
$(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,))
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
$(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 \
# 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
$(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
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
$(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
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
--- 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
#
--- 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 \
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+
--- /dev/null
+#
+# 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))
--- /dev/null
+--- 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()");
--- /dev/null
+--- 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
--- /dev/null
+--- 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)
+ {
--- /dev/null
+#
+# 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))
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>
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
--- /dev/null
+#
+# 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))
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
#
-# 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:=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
PKG_MAINTAINER:=Daniel Golle <daniel@makrotopia.org>
PKG_INSTALL:=1
+PKG_FIXUP:=autoreconf
PLUGINS:= \
archive:+libarchive-noopenssl \
include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/nls.mk
CONFIGURE_ARGS += \
--enable-ffmpeg \
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
$(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
--- /dev/null
+--- 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
+
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/
--- /dev/null
+--- 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}
+ )
+
--- /dev/null
+#
+# 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))
--- /dev/null
+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.
--- /dev/null
+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 _$@
+
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
--- 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)
{
# 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
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>
+++ /dev/null
---- 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, ©Buffer);
- 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)
- {
--- /dev/null
+#
+# 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))
--- /dev/null
+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>
--- /dev/null
+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;
++}
--- /dev/null
+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
+
--- /dev/null
+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)
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
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
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
+++ /dev/null
---- 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
#
-# 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.
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
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
#
-# 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.
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
--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
+++ /dev/null
---- 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);
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
--- /dev/null
+#
+# 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))) \
+)
--- /dev/null
+--- 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}")
+
--- /dev/null
+--- 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)");
+ }
+
--- /dev/null
+--- 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
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
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
#
-# 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:=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
+++ /dev/null
-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 */
-
- /*
include $(INCLUDE_DIR)/package.mk
+ifeq ($(CONFIG_USE_MUSL),n)
+ LDFLAGS += -lnsl
+endif
+
define Package/libzdb
SECTION:=libs
CATEGORY:=Libraries
- 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
-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
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
--- /dev/null
+--- 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>
--- /dev/null
+--- 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 *);
--- /dev/null
+--- 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);
#
-# 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.
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
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
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/
$(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)))
--- /dev/null
+--- 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;
--- /dev/null
+--- 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);
+ }
--- /dev/null
+--- 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);
--- /dev/null
+--- 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);
+ }
--- /dev/null
+#
+# 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))
--- /dev/null
+#
+# 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))
PKG_NAME:=gst1-plugins-bad
PKG_VERSION:=1.4.5
-PKG_RELEASE:=2
+PKG_RELEASE:=3
PKG_MAINTAINER:=W. Michael Petullo <mike@flyn.org>
--disable-resindvd \
--disable-faac \
--disable-faad \
- --disable-fbdev \
--disable-flite \
--disable-gsm \
--disable-kate \
$(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,,))
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>
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
#!/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
--- /dev/null
+--- 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>
--- /dev/null
+#
+# 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))
--- /dev/null
+#!/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`
+}
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
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
--- /dev/null
+--- 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;
#
-# 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.
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
--- /dev/null
+--- 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
+
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)
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
--- /dev/null
+#
+# 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)))
--- /dev/null
+# 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
--- /dev/null
+#!/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}"
+}
--- /dev/null
+#!/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
--- /dev/null
+# 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"
--- /dev/null
+downloads.openwrt.org
+ftp.de.debian.org
+download.eclipse.org
+dl.sourceforge.net
--- /dev/null
+# 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"
--- /dev/null
+# tweaks for dnsmasq
+# configuration found in /etc/config/dhcp
+#
+config dnsmasq
+ option cachesize '1000'
+ option filterwin2k '0'
+ option logqueries '1'
--- /dev/null
+# 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"
--- /dev/null
+# 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
--- /dev/null
+# 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
--- /dev/null
+# 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 &
--- /dev/null
+<html>
+ <head></head>
+ <body>
+ <img src="/adblock.png" border=0 alt=""></img>
+ </body>
+</html>
--- /dev/null
+<html>
+ <head></head>
+ <body>
+ <img src="/adblock.png" border=0 alt=""></img>
+ </body>
+</html>
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>
--- /dev/null
+#
+# 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))
--- /dev/null
+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.
--- /dev/null
+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;
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
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
--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 += \
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
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
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/
--- /dev/null
+#
+# 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))
--- /dev/null
+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)
--- /dev/null
+/*
+ * 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;
+}
--- /dev/null
+/* 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;
+}
--- /dev/null
+/* 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
--- /dev/null
+#
+# 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))
+
--- /dev/null
+[ "$INTERFACE" == "wan" ] || return
+[ "$ACTION" == "ifup" ] && /etc/init.d/chaosvpn restart
+
--- /dev/null
+#!/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
+}
--- /dev/null
+#
+# 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))
--- /dev/null
+# 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
--- /dev/null
+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'
--- /dev/null
+#!/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
--- /dev/null
+#!/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
+}
--- /dev/null
+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 */
--- /dev/null
+--- 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.
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
#
-# 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"
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"
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"
. /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
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
# 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
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
}
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"
[ -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
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
# 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
# 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
# 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
[ -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";;
# 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
&& 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
"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]"
+
# 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]"
# 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]"
+
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
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
its.me
priv.me
-// mg : http://www.nic.mg/tarif.htm
+// mg : http://nic.mg/nicmg/?page_id=39
mg
org.mg
nom.mg
edu.mg
mil.mg
com.mg
+co.mg
// mh : http://en.wikipedia.org/wiki/.mh
mh
zp.ua
zt.ua
-// Private registries in .ua
-co.ua
-pp.ua
-
// ug : https://www.registry.co.ug/
ug
co.ug
// 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
*.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
// 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
// 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
// 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
// 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
// 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
// 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
// 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
// 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
// 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
// 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
// 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
// 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
// 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
// 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
// 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
// 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
// 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
// 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
// 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.
// 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.
// 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
// 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
// cheap : 2013-11-14 Sand Cover, LLC
cheap
+// chintai : 2015-06-11 CHINTAI Corporation
+chintai
+
// chloe : 2014-10-16 Richemont DNS Inc.
chloe
// 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
// 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
// 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
// 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
// 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
// company : 2013-11-07 Silver Avenue, LLC
company
+// compare : 2015-10-08 iSelect Ltd
+compare
+
// computer : 2013-10-24 Pine Mill, LLC
computer
// 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
// 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
// dell : 2014-10-24 Dell Inc.
dell
+// deloitte : 2015-07-31 Deloitte Touche Tohmatsu
+deloitte
+
// delta : 2015-02-19 Delta Air Lines, Inc.
delta
// 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
// 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
// doosan : 2014-04-03 Doosan Corporation
doosan
+// dot : 2015-05-21 Dish DBS Corporation
+dot
+
// download : 2014-11-20 dot Support Limited
download
// 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
// emerck : 2014-04-03 Merck KGaA
emerck
+// emerson : 2015-07-23 Emerson Electric Co.
+emerson
+
// energy : 2014-09-11 Binky Birch, LLC
energy
// 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
// 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
// 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
// faith : 2014-11-20 dot Faith Limited
faith
-// family : 2015-04-02 Bitter Galley, LLC
+// family : 2015-04-02
family
// fan : 2014-03-06
// 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
// 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
// flights : 2013-12-05 Fox Station, LLC
flights
+// flir : 2015-07-23 FLIR Systems, Inc.
+flir
+
// florist : 2013-11-07 Half Cypress, LLC
florist
// 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
// 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
// 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
// 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
// giving : 2014-11-13 Giving Limited
giving
+// glade : 2015-07-23 Johnson Shareholdings, Inc.
+glade
+
// glass : 2013-11-07 Black Cover, LLC
glass
// 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
// 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
// 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
// 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
// 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
// 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
// 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
// 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
// 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
// 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
// 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
// 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
// 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
// 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
// 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
// juegos : 2014-03-20 Uniregistry, Corp.
juegos
+// juniper : 2015-07-30 JUNIPER NETWORKS, INC.
+juniper
+
// kaufen : 2013-11-07 United TLD Holdco Ltd.
kaufen
// 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
// 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
// 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
// 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
// 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
// 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
// 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
// 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
// luxury : 2013-10-17 Luxury Partners, LLC
luxury
+// macys : 2015-07-31 Macys, Inc.
+macys
+
// madrid : 2014-05-01 Comunidad de Madrid
madrid
// 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
// 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
// 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
// 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
// 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
// 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
// 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
// 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
// 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
// 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
// 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
// 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
// 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
// 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
// pamperedchef : 2015-02-05 The Pampered Chef, Ltd.
pamperedchef
+// panasonic : 2015-07-30 Panasonic Corporation
+panasonic
+
// panerai : 2014-11-07 Richemont DNS Inc.
panerai
// 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
// 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
// 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
// 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
// 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
// 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
// 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
// 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
// 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
// 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
// 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
// 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
// science : 2014-09-11 dot Science Limited
science
+// scjohnson : 2015-07-23 Johnson Shareholdings, Inc.
+scjohnson
+
// scor : 2014-10-31 SCOR SE
scor
// 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
// 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
// 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
// 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
// social : 2013-11-07 United TLD Holdco Ltd.
social
+// softbank : 2015-07-02 SoftBank Corp.
+softbank
+
// software : 2014-03-20
software
// 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
// 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
// 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
// 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
// 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
// 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
// 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
// toshiba : 2014-04-10 TOSHIBA Corporation
toshiba
+// total : 2015-08-06 Total SA
+total
+
// tours : 2015-01-22 Sugar Station, LLC
tours
// 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
// trv : 2015-03-26 Travelers TLD, LLC
trv
+// tube : 2015-06-11 Latin American Telecom LLC
+tube
+
// tui : 2014-07-03 TUI AG
tui
// 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
// 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
// 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
// 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
// wales : 2014-05-08 Nominet UK
wales
+// walmart : 2015-07-31 Wal-Mart Stores, Inc.
+walmart
+
// walter : 2014-11-13 Sandvik AB
walter
// 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
// webcam : 2014-01-23 dot Webcam Limited
webcam
+// weber : 2015-06-04 Saint-Gobain Weber SA
+weber
+
// website : 2014-04-03 DotWebsite Inc.
website
// 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
// 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
// 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
在线
xn--3ds443g
+// xn--3oq18vl8pn36a : 2015-07-02 Volkswagen (China) Investment Co., Ltd.
+大众汽车
+xn--3oq18vl8pn36a
+
// xn--3pxu8k : 2015-01-15 VeriSign Sarl
点看
xn--3pxu8k
موقع
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
公司
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
삼성
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
谷歌
xn--flw351e
+// xn--fzys8d69uvgm : 2015-05-14 PCCW Enterprises Limited
+電訊盈科
+xn--fzys8d69uvgm
+
// xn--g2xx48c : 2015-01-30 Minds + Machines Group Limited
购物
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
ارامكو
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
موبايلي
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
嘉里大酒店
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
政务
xn--zfr164b
+// xperia : 2015-05-14 Sony Mobile Communications AB
+xperia
+
// xyz : 2013-12-05 XYZ.COM LLC
xyz
// 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
// zip : 2014-05-08 Charleston Road Registry Inc.
zip
+// zippo : 2015-07-02 Zadco Company
+zippo
+
// zone : 2013-11-14 Outer Falls, LLC
zone
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
// 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
// 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
// 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
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
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
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
# 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 ""
# 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
#
# 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
# 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
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
--enable-sslmitm=no
define Build/Configure
+ ( cd $(PKG_BUILD_DIR); ./autogen.sh )
$(call Build/Configure/Default,$CONFIGURE_ARGS)
endef
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
--- /dev/null
+#
+# 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))
--- /dev/null
+config server 'dummy'
+ option repository '/tmp/fossil/dummy'
+ option port 8008
+ option localhost 0
+ option create 1
--- /dev/null
+#!/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'
+}
--- /dev/null
+--- 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.
+ #
#!/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
}
endef
-ifeq ($(CONFIG_FWKNOPD_GPG),n)
+ifneq ($(CONFIG_FWKNOPD_GPG),y)
CONFIGURE_ARGS += --without-gpgme
endif
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
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
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
-cf - \
usr/lib/git-core \
) | ( cd $(1); $(TAR) -xf - )
+ $(INSTALL_DIR) $(1)/usr/share/git-core/templates
endef
define Package/git-http/install
--- 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)
# 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
GITLIBS = $(LIB_FILE) $(XDIFF_LIB)
EXTLIBS =
-@@ -1089,7 +1085,7 @@ endif
+@@ -1106,7 +1102,7 @@ endif
EXTLIBS += -lz
ifndef NO_OPENSSL
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)
-
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/" || \
} && \
--- 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);
+#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");
}
--- 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],
])
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],
])
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],
--- 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
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
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) \
$(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
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)
--- /dev/null
+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
+
--- /dev/null
+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
+
--- /dev/null
+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
+
--- /dev/null
+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
+
--- /dev/null
+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
+
--- /dev/null
+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
+
--- /dev/null
+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
+
--- /dev/null
+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
+
--- /dev/null
+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
+
--- /dev/null
+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
+
--- /dev/null
+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
+
--- /dev/null
+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
+
--- /dev/null
+#
+# 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))
+
--- /dev/null
+OPTIONS="www.google.com www.yahoo.com www.linux.org www.freebsd.org"
--- /dev/null
+#!/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)
+}
+
--- /dev/null
+--- 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) );
+ }
+
+ }
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>
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
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 C Library
URL:=https://www.iotivity.org
endef
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
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
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
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
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) \
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))
--- 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
+ # 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')
+
--- 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. *
*******************************************************************************
'''
+
if env.get('VERBOSE') == False:
env['CCCOMSTR'] = "Compiling $TARGET"
- env['CXXCOMSTR'] = "Compiling $TARGET"
+ env['SHCCCOMSTR'] = "Compiling $TARGET"
--- /dev/null
+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 */
+++ /dev/null
-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
-
+++ /dev/null
-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:
--- /dev/null
+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_')
--- /dev/null
+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);
+++ /dev/null
---- 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'])
--- /dev/null
+--- 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
+++ /dev/null
---- 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')
+++ /dev/null
---- 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
--- /dev/null
+--- 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'])
--- /dev/null
+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();
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
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+
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>
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
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
+++ /dev/null
-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) {
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
#
-# 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+
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/
}
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 @@
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);
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
+++ /dev/null
-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);
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
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
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
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
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
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
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 = '';
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 = '';
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
-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'
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'
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'
#!/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
--- /dev/null
+#!/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
+}
#!/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()
{
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
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()
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
}
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
}
}
case "$1" in
- ifup|ifdown|interfaces|policies|rules|status|start|stop|restart)
+ ifup|ifdown|interfaces|policies|connected|rules|status|start|stop|restart)
$*
;;
*)
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
--- /dev/null
+#
+# 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))
--- /dev/null
+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
--- /dev/null
+#!/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
+}
--- /dev/null
+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'
+
--- /dev/null
+#!/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"
+}
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'
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
stop_service() {
[ -f "$CONFIGFILE" ] && rm -f "$CONFIGFILE"
}
+
+service_triggers(){
+ procd_add_reload_trigger 'snmpd'
+}
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>
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
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
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
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 \
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
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
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
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
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 \
--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
$(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))
-
#!/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
-}
-
+++ /dev/null
-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;
- }
- }
-}
+++ /dev/null
-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;
- }
- }
-}
+++ /dev/null
---- 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
+++ /dev/null
-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)
+++ /dev/null
-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
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"
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"
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"
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"
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"
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"
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"
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"
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"
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"
+++ /dev/null
---- 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"
-
+++ /dev/null
-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"
+++ /dev/null
-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;
- }
#
-# 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
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
define Package/ntp-utils
$(call Package/ntpd/Default)
TITLE+= utilities
+ DEPENDS+= +libcap
endef
define Package/ntp-utils/description
define Package/ntp-keygen
$(call Package/ntpd/Default)
TITLE+=keygen
+ DEPENDS+= +libcap +libevent2-core
endef
define Package/ntp-keygen/description
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"
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/
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
$(call Package/nut/Default)
TITLE:=Network UPS Tools
DEPENDS:= \
+ +libpthread \
+NUT_DRIVER_SNMP:libnetsnmp \
+NUT_DRIVER_USB:libusb-compat \
+NUT_SSL:libopenssl
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
$(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/)
$(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
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))))
--- /dev/null
+<?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>
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
$(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
+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'
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'
----/etc/config/firewall-----------------------------------------
config zone
option input 'ACCEPT'
- option forward 'REJECT'
+ option forward 'ACCEPT'
option output 'ACCEPT'
option name 'vpn'
option device 'vpns+'
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.
+
+++ /dev/null
-#!/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
# 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.
# 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 =
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="#"
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"
-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() {
procd_set_param respawn
procd_close_instance
}
+
/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
PKG_NAME:=openvswitch
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_VERSION:=2.4.0
PKG_RELEASE=$(PKG_SOURCE_VERSION)
PKG_LICENSE:=Apache-2.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
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)
TARGET_CFLAGS += -flto -std=gnu99
+CONFIGURE_VARS += KARCH=$(LINUX_KARCH)
+MAKE_FLAGS += ARCH="$(LINUX_KARCH)"
+
define Package/openvswitch/install
$(INSTALL_DIR) $(1)/etc/openvswitch
+++ /dev/null
-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)
- {
--- /dev/null
+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
+
--- /dev/null
+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
--- /dev/null
+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 */
--- /dev/null
+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;
--- /dev/null
+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;
--- /dev/null
+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
--- /dev/null
+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);
+
--- /dev/null
+#
+# 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))
+
--- /dev/null
+#
+# 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))
--- /dev/null
+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"'
--- /dev/null
+#!/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
--- /dev/null
+#
+# 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))
--- /dev/null
+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
--- /dev/null
+#!/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
+}
#
-# 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.
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
--enable-shared \
--disable-static \
--disable-debug \
- $(call autoconf_bool,CONFIG_IPV6,ipv6)
+ --disable-ipv6
ifeq ($(BUILD_VARIANT),rpc)
CONFIGURE_ARGS += \
--- 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)
--- /dev/null
+#
+# 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))
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
--- /dev/null
+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"
# 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
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
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))
--- /dev/null
+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>
+
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
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
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
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
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>
gcm \
gcrypt \
gmp \
+ gmpdh \
ha \
hmac \
kernel-libipsec \
$(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
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)
true
endef
+define Package/strongswan-isakmp/install
+ true
+endef
+
define Package/strongswan-minimal/install
true
endef
$(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))
$(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,))
--- /dev/null
+--- 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_ @}*/
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
+++ /dev/null
---- 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;
- }
-
---- 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
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
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
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)
+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 @@
#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"
--- /dev/null
+#
+# 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))
--- /dev/null
+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 ''
--- /dev/null
+#!/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
--- /dev/null
+#!/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'
+}
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
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
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/
#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 @@
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
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
+++ /dev/null
---- 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>
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
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
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 \
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,
--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))
--- /dev/null
+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;
+
--- /dev/null
+--- 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@
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
--- /dev/null
+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() {
--- 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",
--- 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);
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/
SECTION:=sound
CATEGORY:=Sound
TITLE:=fast console mpeg audio player
- DEPENDS+=+libmpg123 +alsa-lib +libsdl +libpthread
+ DEPENDS+=+libmpg123 +alsa-lib
endef
define Build/Configure
--enable-shared \
--enable-static \
--with-cpu=generic_nofpu \
+ --with-default-audio=alsa \
)
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
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>
+++ /dev/null
---- 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;
- }
--- /dev/null
+--- 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])
--- 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"
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);
}
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
#!/bin/sh /etc/rc.common
# Copyright (C) 2011 OpenWrt.org
-START=65
+START=99
STOP=65
USE_PROCD=1
--- /dev/null
+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
#
-# 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.
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>
--- 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;
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))
-# 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
#!/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
}
--- /dev/null
+--- 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))
#
-# 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.
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
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
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
--- /dev/null
+#
+# 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))
--- /dev/null
+#!/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
+}
--- /dev/null
+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
+
--- /dev/null
+--- 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
+
#
-# 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.
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
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
-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
--- /dev/null
+#
+# 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))
--- /dev/null
+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"
--- /dev/null
+#!/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
+}
--- /dev/null
+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
--- /dev/null
+#!/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
+}
--- /dev/null
+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
--- /dev/null
+--- 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();
--- /dev/null
+#
+# 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))))
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/
--disable-debug \
--enable-daemon \
--with-nan-emulation \
+ --with-perl-bindings= \
--without-libgcrypt
CONFIGURE_VARS+= \
$(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
#$(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,))
-#
-# 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>
--- /dev/null
+--- 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);
+
--- /dev/null
+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
# 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
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) \
--- /dev/null
+#
+# 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))
#
-# 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.
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
+++ /dev/null
-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
#
-# 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.
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))
option enable_agc '0'
option freq ''
option ifile ''
+ option iformat ''
+ option throttle '0'
option raw '0'
option net '1'
option modeac '0'
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'
#!/bin/sh /etc/rc.common
-# Copyright (C) 2014 OpenWrt.org
+# Copyright (C) 2014-2015 OpenWrt.org
START=90
STOP=10
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"
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
+++ /dev/null
---- 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)
+++ /dev/null
-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
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
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))
-# 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)))
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
--- /dev/null
+#
+# 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))
--- /dev/null
+config gpsd core
+ option device "/dev/ttyUSB0"
+ option port "2947"
+ option listen_globally "false"
+ option enabled "true"
--- /dev/null
+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
--- /dev/null
+#!/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
+ }
+}
--- /dev/null
+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
+
#
-# 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.
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
+++ /dev/null
-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
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
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
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/
--- /dev/null
+--- 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);
#
-# 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.
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
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)
--- 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)
#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);
/* 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);
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)
{
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;
}
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
+++ /dev/null
---- 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;
-
--- /dev/null
+--- 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;
--- /dev/null
+#
+# 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))
--- /dev/null
+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;
+ }
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"
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"
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
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 \
--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
$(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)))
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
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: 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 \
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
$(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)" \
--- /dev/null
+#
+# 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))
--- /dev/null
+# 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
--- /dev/null
+--- 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:
PKG_FIXUP:=autoreconf
include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/nls.mk
define Package/openocd
SECTION:=utils
--- /dev/null
+ 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
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
#
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)
--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" \
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
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
--- /dev/null
+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'
--- /dev/null
+#!/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
+}
--- /dev/null
+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'
--- /dev/null
+#!/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
+}
--- /dev/null
+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'
--- /dev/null
+#!/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
+}
--- /dev/null
+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'
--- /dev/null
+#!/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
+}
--- /dev/null
+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 ;
+ }
--- /dev/null
+--- 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!
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
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
--- /dev/null
+--- 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"
--- /dev/null
+#
+# 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))
+++ /dev/null
-#
-# 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))
+++ /dev/null
---- 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)
-
+++ /dev/null
---- 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
+++ /dev/null
---- 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");
+++ /dev/null
-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
-
--- /dev/null
+#
+# 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))
--- /dev/null
+# 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
+}
--- /dev/null
+--- 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 \
--- /dev/null
+--- 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);
+
--- /dev/null
+--- 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"
--- /dev/null
+--- 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 */
--- /dev/null
+--- 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@
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
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
--- /dev/null
+#
+# 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))
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
--- /dev/null
+#
+# 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))
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
+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);
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
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
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
$(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))
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
--- /dev/null
+--- 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]));
+ }
--- /dev/null
+--- 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;
--- /dev/null
+--- 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),
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
--- /dev/null
+#
+# 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))
--- /dev/null
+config bridge config
+ option socket_timeout 5
+ option secure_rest_api false
+
+ # remove this line to activae the yunbridge
+ option disabled 1
--- /dev/null
+#!/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
+}
--- /dev/null
+#!/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
--- /dev/null
+#!/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
--- /dev/null
+--[[
+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
--- /dev/null
+--
+-- 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
--- /dev/null
+--- 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:
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
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
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
--- /dev/null
+--- 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
+
+
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"
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))
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