Merge "hotplug: Touch a file on interface creation."
diff --git a/configs/gfrg240_defconfig b/configs/gfrg240_defconfig
index 7545977..e9e8ff2 100644
--- a/configs/gfrg240_defconfig
+++ b/configs/gfrg240_defconfig
@@ -3,7 +3,7 @@
BR2_JLEVEL=15
BR2_CCACHE=y
BR2_TOOLCHAIN_EXTERNAL=y
-BR2_TOOLCHAIN_EXTERNAL_PATH="${TOPDIR}/../toolchains/quantenna/usr"
+BR2_TOOLCHAIN_EXTERNAL_PATH="${TOPDIR}/../toolchains/quantenna"
BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="arc-linux"
BR2_TOOLCHAIN_EXTERNAL_LARGEFILE=y
BR2_TOOLCHAIN_EXTERNAL_INET_IPV6=y
@@ -57,6 +57,7 @@
BR2_PACKAGE_GOOGLE_TEST=y
BR2_PACKAGE_GOOGLE_NETWORK_BOX=y
BR2_PACKAGE_CATAWAMPUS=y
+BR2_PACKAGE_QUANTENNA_DRIVERS_STANDALONE=y
BR2_PACKAGE_HOSTAPD_QUANTENNA=y
BR2_PACKAGE_HOSTAPD_QUANTENNA_WPS=y
BR2_PACKAGE_WPA_SUPPLICANT_QUANTENNA=y
diff --git a/fs/skeleton/bin/apman.test b/fs/skeleton/bin/apman.test
index a888b73..4990ca6 100755
--- a/fs/skeleton/bin/apman.test
+++ b/fs/skeleton/bin/apman.test
@@ -1,5 +1,12 @@
#!/bin/sh
# Test script for /bin/apman
+
+# b/28915040
+if [ "$(cat /etc/platform)" = "GFHD100" ]; then
+ echo "Not running apman.test on GFHD100"
+ exit 0
+fi
+
mydir=$(dirname "$0")
cd "$mydir"
. ../etc/wvtest.sh
diff --git a/fs/skeleton/bin/has-ghn b/fs/skeleton/bin/has-ghn
new file mode 100755
index 0000000..217a842
--- /dev/null
+++ b/fs/skeleton/bin/has-ghn
@@ -0,0 +1,11 @@
+#!/bin/sh
+#
+# Returns 0 (true) if this device has a local G.hn node
+# By checking for marvell's DEK tool: configlayer
+#
+. /etc/utils.sh
+if runnable configlayer; then
+ exit 0
+else
+ exit 1
+fi
diff --git a/fs/skeleton/bin/has-tuneable-laser b/fs/skeleton/bin/has-tuneable-laser
new file mode 100755
index 0000000..3e97d37
--- /dev/null
+++ b/fs/skeleton/bin/has-tuneable-laser
@@ -0,0 +1,11 @@
+#!/bin/sh
+#
+# Returns 0 (true) if this device has a tuneable laser
+#
+. /etc/utils.sh
+plat=$(cat /etc/platform)
+if startswith "$plat" "GFLT3" ; then
+ exit 0
+else
+ exit 1
+fi
diff --git a/fs/skeleton/bin/update-ntp-filters b/fs/skeleton/bin/update-ntp-filters
new file mode 100755
index 0000000..9625b78
--- /dev/null
+++ b/fs/skeleton/bin/update-ntp-filters
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+. /etc/utils.sh
+
+FAILURE_DELAY="30"
+SUCCESS_DELAY="900"
+
+while :; do
+ ip46tables -F captive-portal-ntp
+
+ code="0"
+ for dst in $@; do
+ echo "Updating ntp server: $dst"
+ ip46tables -A captive-portal-ntp -p udp -d "$dst" --dport ntp -j ACCEPT
+ code=$(( $code | $? ))
+ done
+
+ if [ "$code" -eq "0" ]; then
+ echo "Success. Next update in $SUCCESS_DELAY s."
+ sleep "$SUCCESS_DELAY"
+ else
+ echo "Failure! Trying again in $FAILURE_DELAY s."
+ sleep "$FAILURE_DELAY"
+ fi
+done
diff --git a/fs/skeleton/etc/config/ifup.default.platform_gfibertv b/fs/skeleton/etc/config/ifup.default.platform_gfibertv
index 453e187..b87c6cf 100755
--- a/fs/skeleton/etc/config/ifup.default.platform_gfibertv
+++ b/fs/skeleton/etc/config/ifup.default.platform_gfibertv
@@ -15,6 +15,13 @@
fi
fi
+if is-wireless-client; then
+ if [ "${iface#wcli}" != "$iface" ]; then
+ uplink=1
+ fi
+fi
+
+
ip link set dev "$iface" up
if [ "$uplink" = 1 ]; then
diff --git a/fs/skeleton/etc/init.d/S01sysctl.platform_gfibertv b/fs/skeleton/etc/init.d/S01sysctl.platform_gfibertv
index 5cd3608..0b9a316 100755
--- a/fs/skeleton/etc/init.d/S01sysctl.platform_gfibertv
+++ b/fs/skeleton/etc/init.d/S01sysctl.platform_gfibertv
@@ -6,7 +6,7 @@
# Avoid UDP packet loss by increasing socket buffer size.
# rmem_max defines the maximum receive socket buffer size in bytes.
# The actual buffer size is set in sagesrv.
- sysctl net.core.rmem_max=4194304
+ sysctl net.core.rmem_max=5242880
# Set the socket write buffer size large enough to hold a complete
# blocksize from the streamer.
# wmem_max defines the maximum send socket buffer size in bytes.
diff --git a/fs/skeleton/etc/init.d/S08volcheck.platform_gfibertv b/fs/skeleton/etc/init.d/S08volcheck.platform_gfibertv
index 10c5ab1..554a6cd 100755
--- a/fs/skeleton/etc/init.d/S08volcheck.platform_gfibertv
+++ b/fs/skeleton/etc/init.d/S08volcheck.platform_gfibertv
@@ -245,14 +245,17 @@
mount_ext4fs()
{
- mount -t ext4 -o defaults,noatime,discard,data=writeback $1 /user || return 1
+ # Use ordered mode & disable delayed allocation to enable metadata journaling
+ # and ensure data blocks are always written before metadata. Avoids issues
+ # with power loss or crashes resulting in zero length files.
+ mount -t ext4 -o defaults,noatime,discard,nodelalloc,data=ordered $1 /user || return 1
[ ! -d /user/config ] && mkdir -p /user/config
mount --bind /user/config /config || return 1
}
mount_atv_ext4fs()
{
- mount -t ext4 -o defaults,noatime,discard,data=writeback $1 /atv_userdata || return 1
+ mount -t ext4 -o defaults,noatime,discard,nodelalloc,data=ordered $1 /atv_userdata || return 1
mkdir -p /atv_userdata/gfiber/user
mount --bind /atv_userdata/gfiber/user /user || return 1
mkdir -p /user/config
diff --git a/fs/skeleton/etc/init.d/S41portal_firewall b/fs/skeleton/etc/init.d/S41portal_firewall
index eb0f706..bce1c8c 100755
--- a/fs/skeleton/etc/init.d/S41portal_firewall
+++ b/fs/skeleton/etc/init.d/S41portal_firewall
@@ -4,17 +4,17 @@
# Servers used by CPE on the other side of the captive portal.
IP4_DNS="8.8.8.8 8.8.4.4"
IP6_DNS="2001:4860:4860::8888 2001:4860:4860::8844"
-# TODO(b/29131559): allow NTP servers to be dynamically updated
-NTP="216.239.32.15 216.239.34.15 216.239.36.15 216.239.38.15"
+NTP_SERVERS="time1.google.com time2.google.com time3.google.com time4.google.com"
has_iptables() {
runnable iptables && iptables -L 2>/dev/null
}
flush() {
- ip46tables -F captive-portal-input
- ip46tables -F captive-portal-filter
ip46tables -F captive-portal-guests
+ ip46tables -F captive-portal-filter
+ ip46tables -F captive-portal-ntp
+ ip46tables -F captive-portal-input
}
case "$1" in
@@ -59,13 +59,12 @@
ip6tables -A captive-portal-filter -p icmpv6 -d $dst --icmpv6-type echo-request -j ACCEPT
done
- for dst in $NTP; do
- iptables -A captive-portal-filter -p udp -d $dst --dport ntp -j ACCEPT
- done
+ nice babysit 60 update-ntp-filters $NTP_SERVERS 2>&1 | logos update-ntp-filters &
fi
;;
stop)
if has_iptables && is-network-box; then
+ pkillwait -x update-ntp-filters
flush
fi
;;
diff --git a/fs/skeleton/etc/init.d/S45ghn.platform_gfiberlt b/fs/skeleton/etc/init.d/S45ghn.platform_gfiberlt
new file mode 100755
index 0000000..16ac013
--- /dev/null
+++ b/fs/skeleton/etc/init.d/S45ghn.platform_gfiberlt
@@ -0,0 +1,51 @@
+#! /bin/sh
+
+. /etc/utils.sh
+
+GHN_DIR="/tmp/ghn"
+GHN_MAC_ADDR_FILE="${GHN_DIR}/mac_addr"
+
+case "$1" in
+ start|"")
+ platform=$(cat /etc/platform)
+ if ! startswith "$platform" "GFLT4"; then
+ exit 0
+ fi
+
+ # Create Ghn directory and mac_addr file
+ mkdir -p "$GHN_DIR"
+
+ HNVRAM_MAC=$(hnvram -q -r MAC_ADDR_PON)
+ if [ -z "$HNVRAM_MAC" ]; then
+ echo "S45ghn: hnvram G.hn mac_addr is empty!"
+ exit 1
+ fi
+ echo "$HNVRAM_MAC" >"$GHN_MAC_ADDR_FILE"
+
+ # Bring up eth1 interface to ghn
+ ip link set up dev eth1
+ # ghn defaults to 10.10.1.69, we want to be on the same subnet
+ ip addr add 10.10.1.2/24 dev eth1
+
+ if ! read-ghn-local "NODE.GENERAL.ENABLE" 1>/dev/null; then
+ echo "S45ghn: Failed to read stats from G.hn: $HNVRAM_MAC"
+ exit 1
+ fi
+
+ # Periodically grab GHN stats and write to file
+ babysit 60 ghn-periodic-stats 2>&1 | logos ghn-periodic-stats &
+ ;;
+ stop)
+ pkillwait -f ghn-periodic-stats
+ ip addr del 10.10.1.2/24 dev eth1
+ ip link set down dev eth1
+ rm -rf "$GHN_DIR"
+ ;;
+ restart)
+ $0 stop; $0 start
+ ;;
+ *)
+ echo "Usage: S45ghn {start|stop|restart}" >&2
+ exit 1
+ ;;
+esac
diff --git a/fs/skeleton/etc/init.d/S74lasertune.platform_gfiberlt b/fs/skeleton/etc/init.d/S74lasertune.platform_gfiberlt
index aa4dff5..7dc8d78 100755
--- a/fs/skeleton/etc/init.d/S74lasertune.platform_gfiberlt
+++ b/fs/skeleton/etc/init.d/S74lasertune.platform_gfiberlt
@@ -1,11 +1,10 @@
#!/bin/sh
. /etc/utils.sh
-platform=$(cat /etc/platform)
case "$1" in
start)
- if startswith "$platform" "GFLT3"; then
+ if has-tuneable-laser; then
echo "Starting lasertune."
babysit 5 lasertune 2>&1 | logos lasertune &
fi
diff --git a/fs/skeleton/etc/init.d/firewall b/fs/skeleton/etc/init.d/firewall
index 8261889..f4d718a 100755
--- a/fs/skeleton/etc/init.d/firewall
+++ b/fs/skeleton/etc/init.d/firewall
@@ -149,6 +149,7 @@
# what services we're trying to provide with it.
ip46tables -N captive-portal-guests
ip46tables -N captive-portal-filter
+ ip46tables -N captive-portal-ntp
ip46tables -N captive-portal-input
ip46tables -N acs-captive-portal-input
ip46tables -N sniproxy-input
@@ -177,6 +178,7 @@
ip46tables -A FORWARD -i br1 -o wan0+ -j captive-portal-guests
ip46tables -A FORWARD -i br1 -o wan0+ -j captive-portal-filter
+ ip46tables -A FORWARD -i br1 -o wan0+ -j captive-portal-ntp
for ifc in lo br0; do
ip46tables -A INPUT -i "$ifc" -j ACCEPT
diff --git a/fs/skeleton/etc/utils.sh b/fs/skeleton/etc/utils.sh
index e4f4b9c..5236c51 100644
--- a/fs/skeleton/etc/utils.sh
+++ b/fs/skeleton/etc/utils.sh
@@ -8,10 +8,14 @@
local filename="$1" newval="$2"
shift
- if [ ! -e $filename ] || [ "$(cat $filename)" != "$newval" ]; then
- rm -f $filename.new
- echo "$@" >$filename.new
- mv $filename.new $filename
+ if [ ! -e "$filename" ] || [ "$(cat "$filename")" != "$newval" ]; then
+ # fsync after writing the temp file to avoid the potential for ending up
+ # with a zero length file at $filename on ext4 partitions due to ext4's
+ # delayed allocation.
+ rm -f "$filename.new"
+ echo "$@" >"$filename.new"
+ fsync "$filename.new"
+ mv "$filename.new" "$filename"
fi
}
diff --git a/fs/skeleton/fiber/config b/fs/skeleton/fiber/config
new file mode 120000
index 0000000..4088526
--- /dev/null
+++ b/fs/skeleton/fiber/config
@@ -0,0 +1 @@
+../config/
\ No newline at end of file
diff --git a/fs/skeleton/usr/bin/ghn-periodic-stats.platform_gfiberlt b/fs/skeleton/usr/bin/ghn-periodic-stats.platform_gfiberlt
new file mode 100755
index 0000000..ad3ddba
--- /dev/null
+++ b/fs/skeleton/usr/bin/ghn-periodic-stats.platform_gfiberlt
@@ -0,0 +1,61 @@
+#!/bin/sh
+
+. /etc/utils.sh
+
+GHN_DIR="/tmp/ghn"
+GHN_STATS_FILE="${GHN_DIR}/config"
+
+usage() {
+ echo "Usage:"
+ echo
+ echo " $0"
+ echo
+ echo " Repeatedly grabs up to date stats from G.hn chip using 'configlayer' "
+ echo " These stats are eventually used in catawampus' periodic statistics. "
+ echo
+ exit 99
+}
+
+if ! has-ghn; then
+ exit 0
+fi
+
+if [ "$#" -ne "0" ]; then
+ usage
+fi
+
+GHN_MAC_ADDR=$(cat "$GHN_DIR"/mac_addr)
+while true; do
+ if configlayer -o GET -i eth1 -m "$GHN_MAC_ADDR" -w paterna \
+ -p NODE.GENERAL.ENABLE \
+ -p NTP.GENERAL.STATUS \
+ -p NODE.GENERAL.DEVICE_ALIAS \
+ -p NODE.GENERAL.DEVICE_NAME \
+ -p SYSTEM.PRODUCTION.DEVICE_NAME \
+ -p NODE.GENERAL.LAST_CHANGE \
+ -p SYSTEM.PRODUCTION.MAC_ADDR \
+ -p SYSTEM.GENERAL.API_VERSION \
+ -p SYSTEM.GENERAL.FW_VERSION \
+ -p SYSTEM.GENERAL.FW_VERSION_CORE \
+ -p NODE.GENERAL.DOMAIN_NAME \
+ -p NODE.GENERAL.DNI \
+ -p NODE.GENERAL.DOMAIN_ID \
+ -p NODE.GENERAL.DEVICE_ID \
+ -p NODE.GENERAL.NODE_TYPE \
+ -p SYSTEM.GENERAL.DOMAIN_MASTER_CAPABLE \
+ -p SYSTEM.GENERAL.SEC_CONTROLLER_CAPABLE \
+ -p SYSTEM.GENERAL.SEC_CONTROLLER_STATUS \
+ -p DIDMNG.GENERAL.NUM_DIDS \
+ -p DIDMNG.GENERAL.DIDS \
+ -p DIDMNG.GENERAL.MACS \
+ -p DIDMNG.GENERAL.TX_BPS \
+ -p DIDMNG.GENERAL.RX_BPS \
+ -p DIDMNG.GENERAL.ACTIVE \
+ > "${GHN_STATS_FILE}.tmp"; then
+ # Do write in two stages to preserve atomicity
+ mv "${GHN_STATS_FILE}.tmp" "$GHN_STATS_FILE"
+ else
+ echo "$0 failed to grab config from G.hn: $GHN_MAC_ADDR"
+ fi
+ sleep 60
+done
diff --git a/fs/skeleton/usr/bin/lasertune.platform_gfiberlt b/fs/skeleton/usr/bin/lasertune.platform_gfiberlt
index 7b7a091..aa0f553 100755
--- a/fs/skeleton/usr/bin/lasertune.platform_gfiberlt
+++ b/fs/skeleton/usr/bin/lasertune.platform_gfiberlt
@@ -3,7 +3,6 @@
. /etc/utils.sh
laser_channel_file="/sys/devices/platform/gpon/misc/laserChannel"
-platform=$(cat /etc/platform)
prev_laser_channel=-1
# Initially be very aggressive about acquiring a channel, then back off once
@@ -15,7 +14,7 @@
echo "$@" >&2
}
-if ! startswith "$platform" "GFLT3"; then
+if ! has-tuneable-laser; then
# not all fiberjacks have a tunable laser.
exit 0
fi
diff --git a/fs/skeleton/usr/bin/read-ghn-local.platform_gfiberlt b/fs/skeleton/usr/bin/read-ghn-local.platform_gfiberlt
new file mode 100755
index 0000000..b528523
--- /dev/null
+++ b/fs/skeleton/usr/bin/read-ghn-local.platform_gfiberlt
@@ -0,0 +1,27 @@
+#!/bin/sh
+
+. /etc/utils.sh
+
+GHN_DIR="/tmp/ghn"
+
+usage() {
+ echo "Usage:"
+ echo
+ echo " $0 $1"
+ echo
+ echo " A wrapper for 'read-ghn-node' when querying the local G.hn node "
+ echo " Grabs a single paramater and prints the value. "
+ echo
+ exit 99
+}
+
+if ! has-ghn; then
+ exit 0
+fi
+
+if [ "$#" -ne "1" ]; then
+ usage "$1"
+fi
+
+GHN_MAC_ADDR=$(cat "$GHN_DIR"/mac_addr)
+read-ghn-node "$GHN_MAC_ADDR" "$1"
diff --git a/fs/skeleton/usr/bin/reset-ghn.platform_gfiberlt b/fs/skeleton/usr/bin/reset-ghn.platform_gfiberlt
index 9f5bdf0..87f6a52 100755
--- a/fs/skeleton/usr/bin/reset-ghn.platform_gfiberlt
+++ b/fs/skeleton/usr/bin/reset-ghn.platform_gfiberlt
@@ -12,8 +12,7 @@
exit 99
}
-platform=$(cat /etc/platform)
-if ! startswith "$platform" "GFLT4"; then
+if ! has-ghn; then
# Only GFLT400 has G.hn chip (Marvell's 88x5153)
exit 0
fi
diff --git a/fs/skeleton/usr/bin/set_laser_channel.platform_gfiberlt b/fs/skeleton/usr/bin/set_laser_channel.platform_gfiberlt
index 439709e..ea159c8 100755
--- a/fs/skeleton/usr/bin/set_laser_channel.platform_gfiberlt
+++ b/fs/skeleton/usr/bin/set_laser_channel.platform_gfiberlt
@@ -2,8 +2,6 @@
. /etc/utils.sh
-platform=$(cat /etc/platform)
-
usage() {
echo "Usage:"
echo
@@ -15,7 +13,7 @@
exit 99
}
-if ! startswith "$platform" "GFLT3"; then
+if ! has-tuneable-laser; then
# not all fiberjacks have tuneable optics.
exit 0
fi
@@ -40,7 +38,7 @@
fi
# Program the laser channel.
-result=$(i2cset -y 0 0x51 0x90 $1 i)
+result=$(i2cset -y 0 0x51 0x90 0 $1 i)
if [ "$?" -ne "0" ]; then
echo "Failed to set laser channel! i2cset error: $result"
exit 1
diff --git a/linux/linux.mk b/linux/linux.mk
index 88b83f2..d367cac 100644
--- a/linux/linux.mk
+++ b/linux/linux.mk
@@ -48,7 +48,7 @@
# Get the real Linux version, which tells us where kernel modules are
# going to be installed in the target filesystem.
-LINUX_VERSION_PROBED = $(shell $(MAKE) $(LINUX_MAKE_FLAGS) -C $(LINUX_DIR) --no-print-directory -s kernelrelease)
+LINUX_VERSION_PROBED = $(shell LOGLINEAR_LEAVE_STDOUT=1 $(MAKE) $(LINUX_MAKE_FLAGS) -C $(LINUX_DIR) --no-print-directory -s kernelrelease 2>/dev/null)
ifeq ($(BR2_LINUX_KERNEL_USE_INTREE_DTS),y)
KERNEL_DTS_NAME = $(call qstrip,$(BR2_LINUX_KERNEL_INTREE_DTS_NAME))
@@ -221,6 +221,8 @@
endef
endif
+LINUX_MAKE_MODULES_EXTRA_FLAGS += $(if LINUX_KBUILD_EXTRA_SYMBOLS,KBUILD_EXTRA_SYMBOLS="$(LINUX_KBUILD_EXTRA_SYMBOLS)")
+
# Compilation. We make sure the kernel gets rebuilt when the
# configuration has changed.
define LINUX_BUILD_CMDS
@@ -230,7 +232,7 @@
cp $(call qstrip,$(BR2_LINUX_KERNEL_CUSTOM_DTS_PATH)) $(KERNEL_ARCH_PATH)/boot/dts/)
$(TARGET_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) $(LINUX_IMAGE_NAME)
@if grep -q "CONFIG_MODULES=y" $(@D)/.config; then \
- $(TARGET_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) -C $(@D) modules ; \
+ $(TARGET_MAKE_ENV) $(MAKE) $(LINUX_MAKE_FLAGS) $(LINUX_MAKE_MODULES_EXTRA_FLAGS) -C $(@D) modules ; \
fi
$(LINUX_BUILD_DTB)
$(LINUX_APPEND_DTB)
diff --git a/loglinear b/loglinear
index 873d9b1..6afc211 100755
--- a/loglinear
+++ b/loglinear
@@ -249,8 +249,12 @@
_Write(conn.fileno(), '%s %s\nPWD: %s\nStarting: %s (%s)\n'
% (parent, nice_cmdline or '',
os.getcwd(), cmdline, nice_cmdline))
- os.dup2(conn.fileno(), 1)
- os.dup2(conn.fileno(), 2)
+ if os.environ.get('LOGLINEAR_LEAVE_STDOUT'):
+ _Write(conn.fileno(), 'Not redirecting stdout or stderr ' \
+ 'because LOGLINEAR_LEAVE_STDOUT is set')
+ else:
+ os.dup2(conn.fileno(), 1)
+ os.dup2(conn.fileno(), 2)
conn.close()
os.environ['LOGLINEAR_PARENT'] = str(myid)
os.execvp(cmdline[0], cmdline)
diff --git a/package/clockspeed/clockspeed-0005-wait-longer.patch b/package/clockspeed/clockspeed-0005-wait-longer.patch
new file mode 100644
index 0000000..d235402
--- /dev/null
+++ b/package/clockspeed/clockspeed-0005-wait-longer.patch
@@ -0,0 +1,11 @@
+--- a/sntpclock.c 2017-01-19 12:08:54.003237871 -0800
++++ b/sntpclock.c 2017-01-19 12:27:31.212751112 -0800
+@@ -202,7 +202,7 @@
+ strerr_die2sys(111,FATAL,"unable to send request: ");
+ FD_ZERO(&rfds);
+ FD_SET(s,&rfds);
+- tvselect.tv_sec = 1;
++ tvselect.tv_sec = 5;
+ tvselect.tv_usec = 0;
+ if (select(s + 1,&rfds,(fd_set *) 0,(fd_set *) 0,&tvselect) != 1) {
+ strerr_warn2(WARNING,"unable to read clock: timed out",0);
diff --git a/package/golang/go_cloud/go_cloud.mk b/package/golang/go_cloud/go_cloud.mk
index 28c28b0..6a9689d 100644
--- a/package/golang/go_cloud/go_cloud.mk
+++ b/package/golang/go_cloud/go_cloud.mk
@@ -10,7 +10,7 @@
define GO_CLOUD_FIX_PATH
mkdir -p "$(BUILD_DIR)/go_pkgs/src/google.golang.org/"
- ln -sT "$(@D)" "$(BUILD_DIR)/go_pkgs/src/google.golang.org/cloud"
+ ln -sfT "$(@D)" "$(BUILD_DIR)/go_pkgs/src/google.golang.org/cloud"
endef
GO_CLOUD_POST_PATCH_HOOKS += GO_CLOUD_FIX_PATH
diff --git a/package/golang/go_cron/go_cron.mk b/package/golang/go_cron/go_cron.mk
index 4e9e518..71a55e5 100644
--- a/package/golang/go_cron/go_cron.mk
+++ b/package/golang/go_cron/go_cron.mk
@@ -10,7 +10,7 @@
define GO_CRON_FIX_PATH
mkdir -p "$(BUILD_DIR)/go_pkgs/src/github.com/robfig/"
- ln -sT "$(@D)" "$(BUILD_DIR)/go_pkgs/src/github.com/robfig/cron"
+ ln -sfT "$(@D)" "$(BUILD_DIR)/go_pkgs/src/github.com/robfig/cron"
endef
GO_CRON_POST_PATCH_HOOKS += GO_CRON_FIX_PATH
diff --git a/package/golang/go_fsnotify/go_fsnotify.mk b/package/golang/go_fsnotify/go_fsnotify.mk
index 357a915..e6ed876 100644
--- a/package/golang/go_fsnotify/go_fsnotify.mk
+++ b/package/golang/go_fsnotify/go_fsnotify.mk
@@ -10,7 +10,7 @@
define GO_FSNOTIFY_FIX_PATH
mkdir -p "$(BUILD_DIR)/go_pkgs/src/github.com/go-fsnotify/"
- ln -sT "$(@D)" "$(BUILD_DIR)/go_pkgs/src/github.com/go-fsnotify/fsnotify"
+ ln -sfT "$(@D)" "$(BUILD_DIR)/go_pkgs/src/github.com/go-fsnotify/fsnotify"
endef
GO_FSNOTIFY_POST_PATCH_HOOKS += GO_FSNOTIFY_FIX_PATH
diff --git a/package/golang/go_glog/go_glog.mk b/package/golang/go_glog/go_glog.mk
index d01dbd6..5779579 100644
--- a/package/golang/go_glog/go_glog.mk
+++ b/package/golang/go_glog/go_glog.mk
@@ -10,7 +10,7 @@
define GO_GLOG_FIX_PATH
mkdir -p "$(BUILD_DIR)/go_pkgs/src/github.com/golang"
- ln -sT "$(@D)" "$(BUILD_DIR)/go_pkgs/src/github.com/golang/glog"
+ ln -sfT "$(@D)" "$(BUILD_DIR)/go_pkgs/src/github.com/golang/glog"
endef
GO_GLOG_POST_PATCH_HOOKS += GO_GLOG_FIX_PATH
diff --git a/package/golang/go_goczmq/go_goczmq.mk b/package/golang/go_goczmq/go_goczmq.mk
index fdb7950..076ba30 100644
--- a/package/golang/go_goczmq/go_goczmq.mk
+++ b/package/golang/go_goczmq/go_goczmq.mk
@@ -10,7 +10,7 @@
define GO_GOCZMQ_FIX_PATH
mkdir -p "$(BUILD_DIR)/go_pkgs/src/github.com/zeromq"
- ln -sT "$(@D)" "$(BUILD_DIR)/go_pkgs/src/github.com/zeromq/goczmq"
+ ln -sfT "$(@D)" "$(BUILD_DIR)/go_pkgs/src/github.com/zeromq/goczmq"
endef
GO_GOCZMQ_POST_PATCH_HOOKS += GO_GOCZMQ_FIX_PATH
diff --git a/package/golang/go_godbus_dbus/go_godbus_dbus.mk b/package/golang/go_godbus_dbus/go_godbus_dbus.mk
index fc16412..15c040e 100644
--- a/package/golang/go_godbus_dbus/go_godbus_dbus.mk
+++ b/package/golang/go_godbus_dbus/go_godbus_dbus.mk
@@ -10,7 +10,7 @@
define GO_GODBUS_DBUS_FIX_PATH
mkdir -p "$(BUILD_DIR)/go_pkgs/src/github.com/godbus/"
- ln -sT "$(@D)" "$(BUILD_DIR)/go_pkgs/src/github.com/godbus/dbus"
+ ln -sfT "$(@D)" "$(BUILD_DIR)/go_pkgs/src/github.com/godbus/dbus"
endef
GO_GODBUS_DBUS_POST_PATCH_HOOKS += GO_GODBUS_DBUS_FIX_PATH
diff --git a/package/golang/go_golua/go_golua.mk b/package/golang/go_golua/go_golua.mk
index 27e65c6..f8e9d5b 100644
--- a/package/golang/go_golua/go_golua.mk
+++ b/package/golang/go_golua/go_golua.mk
@@ -10,7 +10,7 @@
define GO_GOLUA_FIX_PATH
mkdir -p "$(BUILD_DIR)/go_pkgs/src/github.com/aarzilli"
- ln -sT "$(@D)" "$(BUILD_DIR)/go_pkgs/src/github.com/aarzilli/golua"
+ ln -sfT "$(@D)" "$(BUILD_DIR)/go_pkgs/src/github.com/aarzilli/golua"
endef
GO_GOLUA_POST_PATCH_HOOKS += GO_GOLUA_FIX_PATH
diff --git a/package/golang/go_gonzojive_mdns/go_gonzojive_mdns.mk b/package/golang/go_gonzojive_mdns/go_gonzojive_mdns.mk
index 340a339..5f842e0 100644
--- a/package/golang/go_gonzojive_mdns/go_gonzojive_mdns.mk
+++ b/package/golang/go_gonzojive_mdns/go_gonzojive_mdns.mk
@@ -10,7 +10,7 @@
define GO_GONZOJIVE_MDNS_FIX_PATH
mkdir -p "$(BUILD_DIR)/go_pkgs/src/github.com/gonzojive"
- ln -sT "$(@D)" "$(BUILD_DIR)/go_pkgs/src/github.com/gonzojive/mdns"
+ ln -sfT "$(@D)" "$(BUILD_DIR)/go_pkgs/src/github.com/gonzojive/mdns"
endef
GO_GONZOJIVE_MDNS_POST_PATCH_HOOKS += GO_GONZOJIVE_MDNS_FIX_PATH
diff --git a/package/golang/go_google_api/go_google_api.mk b/package/golang/go_google_api/go_google_api.mk
index 4b96596..f063fb4 100644
--- a/package/golang/go_google_api/go_google_api.mk
+++ b/package/golang/go_google_api/go_google_api.mk
@@ -10,7 +10,7 @@
define GO_GOOGLE_API_FIX_PATH
mkdir -p "$(BUILD_DIR)/go_pkgs/src/google.golang.org"
- ln -sT "$(@D)" "$(BUILD_DIR)/go_pkgs/src/google.golang.org/api"
+ ln -sfT "$(@D)" "$(BUILD_DIR)/go_pkgs/src/google.golang.org/api"
endef
GO_GOOGLE_API_POST_PATCH_HOOKS += GO_GOOGLE_API_FIX_PATH
diff --git a/package/golang/go_grpc/go_grpc.mk b/package/golang/go_grpc/go_grpc.mk
index 21e68cc..97ca85d 100644
--- a/package/golang/go_grpc/go_grpc.mk
+++ b/package/golang/go_grpc/go_grpc.mk
@@ -10,7 +10,7 @@
define GO_GRPC_FIX_PATH
mkdir -p "$(BUILD_DIR)/go_pkgs/src/google.golang.org/"
- ln -sT "$(@D)" "$(BUILD_DIR)/go_pkgs/src/google.golang.org/grpc"
+ ln -sfT "$(@D)" "$(BUILD_DIR)/go_pkgs/src/google.golang.org/grpc"
endef
GO_GRPC_POST_PATCH_HOOKS += GO_GRPC_FIX_PATH
diff --git a/package/golang/go_luar/go_luar.mk b/package/golang/go_luar/go_luar.mk
index 86432d4..0a7386d 100644
--- a/package/golang/go_luar/go_luar.mk
+++ b/package/golang/go_luar/go_luar.mk
@@ -10,7 +10,7 @@
define GO_LUAR_FIX_PATH
mkdir -p "$(BUILD_DIR)/go_pkgs/src/github.com/stevedonovan/"
- ln -sT "$(@D)" "$(BUILD_DIR)/go_pkgs/src/github.com/stevedonovan/luar"
+ ln -sfT "$(@D)" "$(BUILD_DIR)/go_pkgs/src/github.com/stevedonovan/luar"
endef
GO_LUAR_POST_PATCH_HOOKS += GO_LUAR_FIX_PATH
diff --git a/package/golang/go_miekg_dns/go_miekg_dns.mk b/package/golang/go_miekg_dns/go_miekg_dns.mk
index 1917ca2..86133b6 100644
--- a/package/golang/go_miekg_dns/go_miekg_dns.mk
+++ b/package/golang/go_miekg_dns/go_miekg_dns.mk
@@ -10,7 +10,7 @@
define GO_MIEKG_DNS_FIX_PATH
mkdir -p "$(BUILD_DIR)/go_pkgs/src/github.com/miekg"
- ln -sT "$(@D)" "$(BUILD_DIR)/go_pkgs/src/github.com/miekg/dns"
+ ln -sfT "$(@D)" "$(BUILD_DIR)/go_pkgs/src/github.com/miekg/dns"
endef
GO_MIEKG_DNS_POST_PATCH_HOOKS += GO_MIEKG_DNS_FIX_PATH
diff --git a/package/golang/go_net/go_net.mk b/package/golang/go_net/go_net.mk
index 4dff340..0e3ef15 100644
--- a/package/golang/go_net/go_net.mk
+++ b/package/golang/go_net/go_net.mk
@@ -10,7 +10,7 @@
define GO_NET_FIX_PATH
mkdir -p "$(BUILD_DIR)/go_pkgs/src/golang.org/x"
- ln -sT "$(@D)" "$(BUILD_DIR)/go_pkgs/src/golang.org/x/net"
+ ln -sfT "$(@D)" "$(BUILD_DIR)/go_pkgs/src/golang.org/x/net"
endef
GO_NET_POST_PATCH_HOOKS += GO_NET_FIX_PATH
diff --git a/package/golang/go_oauth2/go_oauth2.mk b/package/golang/go_oauth2/go_oauth2.mk
index f2fe500..756208e 100644
--- a/package/golang/go_oauth2/go_oauth2.mk
+++ b/package/golang/go_oauth2/go_oauth2.mk
@@ -10,7 +10,7 @@
define GO_OAUTH2_FIX_PATH
mkdir -p "$(BUILD_DIR)/go_pkgs/src/golang.org/x"
- ln -sT "$(@D)" "$(BUILD_DIR)/go_pkgs/src/golang.org/x/oauth2"
+ ln -sfT "$(@D)" "$(BUILD_DIR)/go_pkgs/src/golang.org/x/oauth2"
endef
GO_OAUTH2_POST_PATCH_HOOKS += GO_OAUTH2_FIX_PATH
diff --git a/package/golang/go_protobuf/go_protobuf.mk b/package/golang/go_protobuf/go_protobuf.mk
index a714e4d..3989108 100644
--- a/package/golang/go_protobuf/go_protobuf.mk
+++ b/package/golang/go_protobuf/go_protobuf.mk
@@ -10,7 +10,7 @@
define GO_PROTOBUF_FIX_PATH
mkdir -p "$(BUILD_DIR)/go_pkgs/src/github.com/golang"
- ln -sT "$(@D)" "$(BUILD_DIR)/go_pkgs/src/github.com/golang/protobuf"
+ ln -sfT "$(@D)" "$(BUILD_DIR)/go_pkgs/src/github.com/golang/protobuf"
endef
GO_PROTOBUF_POST_PATCH_HOOKS += GO_PROTOBUF_FIX_PATH
@@ -20,7 +20,7 @@
# Install Go protobuf compiler on host
define HOST_GO_PROTOBUF_INSTALL_CMDS
mkdir -p "$(@D)/go/src/github.com/golang"
- ln -sT "$(@D)" "$(@D)/go/src/github.com/golang/protobuf"
+ ln -sfT "$(@D)" "$(@D)/go/src/github.com/golang/protobuf"
export $(GOLANG_ENV) ; \
GOARCH= GOBIN="$(HOST_DIR)/usr/bin" GOPATH="$(@D)/go" \
go install github.com/golang/protobuf/protoc-gen-go
diff --git a/package/golang/go_sys/go_sys.mk b/package/golang/go_sys/go_sys.mk
index 72cdcb5..dff37ba 100644
--- a/package/golang/go_sys/go_sys.mk
+++ b/package/golang/go_sys/go_sys.mk
@@ -10,7 +10,7 @@
define GO_SYS_FIX_PATH
mkdir -p "$(BUILD_DIR)/go_pkgs/src/golang.org/x"
- ln -sT "$(@D)" "$(BUILD_DIR)/go_pkgs/src/golang.org/x/sys"
+ ln -sfT "$(@D)" "$(BUILD_DIR)/go_pkgs/src/golang.org/x/sys"
endef
GO_SYS_POST_PATCH_HOOKS += GO_SYS_FIX_PATH
diff --git a/package/google/google_glfw_dart/Config.in b/package/google/google_glfw_dart/Config.in
index e816c43..c95ed05 100644
--- a/package/google/google_glfw_dart/Config.in
+++ b/package/google/google_glfw_dart/Config.in
@@ -1,7 +1,7 @@
config BR2_PACKAGE_GOOGLE_GLFW_DART
bool "google_glfw_dart"
- depends on BR2_PACKAGE_BCM_COMMON
- depends on BR2_PACKAGE_GOOGLE_GLFW_NEXUS
- depends on BR2_PACKAGE_GOOGLE_DART_VM
+ select BR2_PACKAGE_BCM_COMMON
+ select BR2_PACKAGE_GOOGLE_GLFW_NEXUS
+ select BR2_PACKAGE_GOOGLE_DART_VM
help
Builds the Dart GLFW bindings
diff --git a/package/google/google_oregano_native/Config.in b/package/google/google_oregano_native/Config.in
index c6cb4dd..c6b26f3 100644
--- a/package/google/google_oregano_native/Config.in
+++ b/package/google/google_oregano_native/Config.in
@@ -1,5 +1,7 @@
config BR2_PACKAGE_GOOGLE_OREGANO_NATIVE
bool "google_oregano_native"
select BR2_PACKAGE_GOOGLE_DART_VM
+ select BR2_PACKAGE_GOOGLE_GL_DART if BR2_mipsel
+ select BR2_PACKAGE_GOOGLE_GLFW_DART if BR2_mipsel
help
Native extensions for Oregano projects.
diff --git a/package/google/google_platform/rc/syslog/run b/package/google/google_platform/rc/syslog/run
index 4acc747..ee90f69 100755
--- a/package/google/google_platform/rc/syslog/run
+++ b/package/google/google_platform/rc/syslog/run
@@ -2,4 +2,4 @@
fdmove -c 2 1
if { runnable syslogd }
# run with CAP_NET_BIND_SERVICE
-minijail0 -u syslog -g syslog -c 0x400 /bin/syslogd -l 0.0.0.0:514
+minijail0 -u syslog -g syslog -c 0x400 /bin/syslogd -p 514
diff --git a/package/quantenna_drivers/quantenna_drivers.mk b/package/quantenna_drivers/quantenna_drivers.mk
index c24891d..3ed6491 100644
--- a/package/quantenna_drivers/quantenna_drivers.mk
+++ b/package/quantenna_drivers/quantenna_drivers.mk
@@ -21,8 +21,19 @@
$(QUANTENNA_DRIVERS_MAKE_ENV) $(MAKE) -C $(@D) $(QUANTENNA_DRIVERS_TARGET)
endef
+# We need to re-run modules_install for depmod to discover the
+# binary kernel modules that we just installed
define QUANTENNA_DRIVERS_INSTALL_TARGET_CMDS
$(QUANTENNA_DRIVERS_MAKE_ENV) $(MAKE) -C $(@D) $(QUANTENNA_DRIVERS_TARGET)_install
+
+ $(TARGET_MAKE_ENV) $(MAKE1) $(LINUX_MAKE_FLAGS) -C $(LINUX_DIR) \
+ DEPMOD="$(HOST_DIR)/usr/sbin/depmod" modules_install ; \
+ rm -f $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/build ; \
+ rm -f $(TARGET_DIR)/lib/modules/$(LINUX_VERSION_PROBED)/source
endef
+ifeq ($(BR2_PACKAGE_QUANTENNA_DRIVERS),y)
+LINUX_KBUILD_EXTRA_SYMBOLS = $(QUANTENNA_DRIVERS_DIR)/binary_kos.symvers/$(QUANTENNA_DRIVERS_TARGET)/$(LINUX_VERSION_PROBED)/Module.symvers
+endif
+
$(eval $(call GENTARGETS))
diff --git a/package/toybox/toybox.config b/package/toybox/toybox.config
index b01f19b..2b09397 100644
--- a/package/toybox/toybox.config
+++ b/package/toybox/toybox.config
@@ -206,7 +206,7 @@
CONFIG_FREE=y
# CONFIG_FREERAMDISK is not set
# CONFIG_FSFREEZE is not set
-# CONFIG_FSYNC is not set
+CONFIG_FSYNC=y
# CONFIG_HELP is not set
# CONFIG_HELP_EXTRAS is not set
# CONFIG_HEXEDIT is not set
diff --git a/support/scripts/mkmakefile b/support/scripts/mkmakefile
index a059052..336068c 100755
--- a/support/scripts/mkmakefile
+++ b/support/scripts/mkmakefile
@@ -40,6 +40,8 @@
Makefile:;
+menuconfig linux-menuconfig backports-menuconfig: LOGLINEAR=
+
\$(all): all
@: