Compare commits

...

12 Commits

Author SHA1 Message Date
Matthias Schiffer
e54e3dc410 docs: update version number 2015-06-17 01:04:48 +02:00
Matthias Schiffer
f13ac9fee1 docs: releases/v2015.1.1 2015-06-17 00:12:39 +02:00
Matthias Schiffer
3fcfbe0b1d Revert netns_ct ABI change introduced in r44874
Fixes compatiblity with upstream kernel modules.
2015-06-17 00:08:30 +02:00
Matthias Schiffer
637df6b197 gluon-announce, ...: don't output empty lists where not appropriate
Always output empty objects or nothing at all where objects are expected, but
no elements exist.

Also remove a few unneeded "requires", a few basic modules are provided by
announce.lua by default.
2015-06-17 00:06:51 +02:00
Matthias Schiffer
8375e82a38 x86: support two ethernet interfaces by default 2015-06-16 01:10:20 +02:00
Matthias Schiffer
c7ff22ca15 Add support for TP-LINK TL-WA830RE v1 2015-06-15 21:33:18 +02:00
Nils Schneider
b5050b294e Merge pull request #394 from oakey-dev/v2015.1.x
updated openwrt commit, to include openssl patch
2015-06-14 14:24:17 +02:00
Neal Oakey
9fa3fd8aa2 Update OpenWrt base
updates openssl to 1.0.2c
2015-06-14 14:21:32 +02:00
Matthias Schiffer
bdd0dbda1b build: prevent race condition between tool symlink creation 2015-05-28 03:52:24 +02:00
Matthias Schiffer
1d6bfd8eda build: ensure prereq has been run at the beginning of prepare-tmpinfo 2015-05-28 02:47:58 +02:00
Matthias Schiffer
66f6ff2385 gluon-mesh-batman-adv-core: don't break network configuration on upgrades with mesh_on_lan=true 2015-05-28 01:45:36 +02:00
Nils Schneider
bc2512980c gluon-luci-admin: fix translation of "Export Mode"
Export Mode -> Expert Mode
2015-05-28 01:45:27 +02:00
18 changed files with 307 additions and 34 deletions

View File

@ -184,6 +184,7 @@ gluon-tools: FORCE
+$(GLUONMAKE_EARLY) package/lua/host/install +$(GLUONMAKE_EARLY) package/lua/host/install
prepare-tmpinfo: FORCE prepare-tmpinfo: FORCE
@+$(MAKE) -r -s tmp/.prereq-build OPENWRT_BUILD= QUIET=0
mkdir -p tmp/info mkdir -p tmp/info
$(_SINGLE)$(NO_TRACE_MAKE) -j1 -r -s -f include/scan.mk SCAN_TARGET="packageinfo" SCAN_DIR="package" SCAN_NAME="package" SCAN_DEPS="$(TOPDIR)/include/package*.mk $(TOPDIR)/overlay/*/*.mk" SCAN_EXTRA="" $(_SINGLE)$(NO_TRACE_MAKE) -j1 -r -s -f include/scan.mk SCAN_TARGET="packageinfo" SCAN_DIR="package" SCAN_NAME="package" SCAN_DEPS="$(TOPDIR)/include/package*.mk $(TOPDIR)/overlay/*/*.mk" SCAN_EXTRA=""
$(_SINGLE)$(NO_TRACE_MAKE) -j1 -r -s -f include/scan.mk SCAN_TARGET="targetinfo" SCAN_DIR="target/linux" SCAN_NAME="target" SCAN_DEPS="profiles/*.mk $(TOPDIR)/include/kernel*.mk $(TOPDIR)/include/target.mk" SCAN_DEPTH=2 SCAN_EXTRA="" SCAN_MAKEOPTS="TARGET_BUILD=1" $(_SINGLE)$(NO_TRACE_MAKE) -j1 -r -s -f include/scan.mk SCAN_TARGET="targetinfo" SCAN_DIR="target/linux" SCAN_NAME="target" SCAN_DEPS="profiles/*.mk $(TOPDIR)/include/kernel*.mk $(TOPDIR)/include/target.mk" SCAN_DEPTH=2 SCAN_EXTRA="" SCAN_MAKEOPTS="TARGET_BUILD=1"
@ -205,7 +206,7 @@ feeds: FORCE
+$(GLUONMAKE_EARLY) prepare-tmpinfo +$(GLUONMAKE_EARLY) prepare-tmpinfo
config: FORCE config: FORCE
+$(NO_TRACE_MAKE) scripts/config/conf OPENWRT_BUILD=0 +$(NO_TRACE_MAKE) scripts/config/conf OPENWRT_BUILD= QUIET=0
+$(GLUONMAKE) prepare-tmpinfo +$(GLUONMAKE) prepare-tmpinfo
( \ ( \
cat $(GLUONDIR)/include/config $(GLUONDIR)/targets/$(GLUON_TARGET)/config; \ cat $(GLUONDIR)/include/config $(GLUONDIR)/targets/$(GLUON_TARGET)/config; \

View File

@ -54,9 +54,9 @@ copyright = '2015, Project Gluon'
# built documents. # built documents.
# #
# The short X.Y version. # The short X.Y version.
version = '2015.1' version = '2015.1.1'
# The full version, including alpha/beta/rc tags. # The full version, including alpha/beta/rc tags.
release = '2015.1' release = '2015.1.1'
# The language for content autogenerated by Sphinx. Refer to documentation # The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages. # for a list of supported languages.

View File

@ -49,6 +49,7 @@ Releases
.. toctree:: .. toctree::
:maxdepth: 1 :maxdepth: 1
releases/v2015.1.1
releases/v2015.1 releases/v2015.1
releases/v2014.4 releases/v2014.4
releases/v2014.3.1 releases/v2014.3.1

View File

@ -0,0 +1,27 @@
Gluon 2015.1.1
==============
Added hardware support
~~~~~~~~~~~~~~~~~~~~~~
ar71xx-generic
^^^^^^^^^^^^^^
* TP-Link
- TL-WA830RE (v1)
New features
~~~~~~~~~~~~
The `x86-generic` and `x86-kvm_guest` images now support two ethernet interfaces by default. If two interfaces exist during
the first boot, `eth0` will be used as LAN and `eth1` as WAN.
Bugfixes
~~~~~~~~
* Fix German "Expert Mode" label (was "Export Mode")
* Fix download of OpenSSL during build (because of broken OpenSSL download servers...)
* Fix ABI break causing kernel panics when trying to use network-related modules from the official OpenWrt repository (like `kmod-pppoe`)
* Fix race conditions breaking parallel build occasionally
* A broken network configuration would be generated when an older Gluon version was updated to 2015.1 with
``mesh_on_lan`` enabled in `site.conf`
* Minor announced/alfred JSON format fixes (don't output empty lists where empty objects would be expected)

View File

@ -48,10 +48,6 @@ else
export HOSTCC_WRAPPER:=$(HOSTCC) export HOSTCC_WRAPPER:=$(HOSTCC)
endif endif
ifeq ($(FORCE),)
.config scripts/config/conf scripts/config/mconf: tmp/.prereq-build
endif
SCAN_COOKIE?=$(shell echo $$$$) SCAN_COOKIE?=$(shell echo $$$$)
export SCAN_COOKIE export SCAN_COOKIE

View File

@ -1,7 +1,7 @@
GLUON_FEEDS='openwrt gluon routing luci' GLUON_FEEDS='openwrt gluon routing luci'
OPENWRT_REPO=git://git.openwrt.org/14.07/openwrt.git OPENWRT_REPO=git://git.openwrt.org/14.07/openwrt.git
OPENWRT_COMMIT=179bab8b1700d74b28cc6cd25322f9a1ad670107 OPENWRT_COMMIT=d70e69464ec00006b26ac684e808a6118dd4177a
PACKAGES_OPENWRT_REPO=git://github.com/openwrt/packages.git PACKAGES_OPENWRT_REPO=git://github.com/openwrt/packages.git
PACKAGES_OPENWRT_COMMIT=01fcd1f29174a56d6ddb59901ed8c67ea42c3a8f PACKAGES_OPENWRT_COMMIT=01fcd1f29174a56d6ddb59901ed8c67ea42c3a8f

View File

@ -3,6 +3,7 @@
module('gluon.announce', package.seeall) module('gluon.announce', package.seeall)
fs = require 'luci.fs' fs = require 'luci.fs'
json = require 'luci.json'
uci = require('luci.model.uci').cursor() uci = require('luci.model.uci').cursor()
util = require 'luci.util' util = require 'luci.util'
@ -15,7 +16,7 @@ local function collect_entry(entry)
end end
function collect_dir(dir) function collect_dir(dir)
local ret = {} local ret = { [json.null] = true }
for _, entry in ipairs(fs.dir(dir)) do for _, entry in ipairs(fs.dir(dir)) do
if entry:sub(1, 1) ~= '.' then if entry:sub(1, 1) ~= '.' then

View File

@ -27,7 +27,7 @@ msgid "Don't switch off the device in any circumstance!"
msgstr "Unterbrich auf keinen Fall die Stromversorgung!" msgstr "Unterbrich auf keinen Fall die Stromversorgung!"
msgid "Expert Mode" msgid "Expert Mode"
msgstr "Export Mode" msgstr "Expert Mode"
msgid "Firmware image" msgid "Firmware image"
msgstr "Firmware-Datei" msgstr "Firmware-Datei"

View File

@ -1,7 +1,3 @@
local json = require 'luci.json'
local util = require 'luci.util'
local fs = require 'nixio.fs'
local ifname_address_cache = {} local ifname_address_cache = {}
function ifname2address(ifname) function ifname2address(ifname)
@ -26,7 +22,7 @@ function batadv()
if mac1 ~= nil and mac1 == mac2 then if mac1 ~= nil and mac1 == mac2 then
ifaddress = ifname2address(ifname) ifaddress = ifname2address(ifname)
if interfaces[ifaddress] == nil then if interfaces[ifaddress] == nil then
interfaces[ifaddress] = { neighbours = {} } interfaces[ifaddress] = { neighbours = { [json.null] = true } }
end end
interfaces[ifaddress].neighbours[mac1] = { tq = tonumber(tq) interfaces[ifaddress].neighbours[mac1] = { tq = tonumber(tq)
@ -35,7 +31,9 @@ function batadv()
end end
end end
if next(interfaces) then
return interfaces return interfaces
end end
end
return batadv() return batadv()

View File

@ -1,6 +1,3 @@
local json = require 'luci.json'
local util = require 'luci.util'
local fs = require 'nixio.fs'
local iwinfo = require 'iwinfo' local iwinfo = require 'iwinfo'
function neighbours(iface) function neighbours(iface)
@ -12,8 +9,10 @@ function neighbours(iface)
} }
end end
if next(stations) then
return stations return stations
end end
end
function interfaces() function interfaces()
local interfaces = {} local interfaces = {}
@ -38,4 +37,6 @@ for address, iface in pairs(interfaces()) do
wifi[address] = { neighbours = neighbours(iface) } wifi[address] = { neighbours = neighbours(iface) }
end end
if next(wifi) then
return wifi return wifi
end

View File

@ -48,5 +48,6 @@ end
return { return {
wireless = nil_table(wireless), wireless = nil_table(wireless),
tunnel = nil_table(tunnel), tunnel = nil_table(tunnel),
other = nil_table(other) other = nil_table(other),
[json.null] = true
} }

View File

@ -1,23 +1,32 @@
#!/usr/bin/lua #!/usr/bin/lua
local site = require 'gluon.site_config' local site = require 'gluon.site_config'
local uci = require 'luci.model.uci'
local util = require 'gluon.util' local util = require 'gluon.util'
local sysconfig = require 'gluon.sysconfig' local sysconfig = require 'gluon.sysconfig'
local c = uci.cursor() local uci = require('luci.model.uci').cursor()
local lutil = require 'luci.util'
if sysconfig.lan_ifname then if sysconfig.lan_ifname and not uci:get('network', 'mesh_lan') then
if not c:get('network', 'mesh_lan') then local enable = site.mesh_on_lan
c:section('network', 'interface', 'mesh_lan',
if enable then
local interfaces = uci:get('network', 'client', 'ifname')
if interfaces and lutil.contains(interfaces:split(' '), sysconfig.lan_ifname) then
enable = false
end
end
uci:section('network', 'interface', 'mesh_lan',
{ ifname = sysconfig.lan_ifname { ifname = sysconfig.lan_ifname
, proto = 'batadv' , proto = 'batadv'
, mesh = 'bat0' , mesh = 'bat0'
, macaddr = util.generate_mac(1, 1) , macaddr = util.generate_mac(1, 1)
, auto = site.mesh_on_lan and 1 or 0 , auto = enable and 1 or 0
}) })
end
uci:save('network')
uci:commit('network')
end end
c:save('network')
c:commit('network')

View File

@ -0,0 +1,20 @@
From: Matthias Schiffer <mschiffer@universe-factory.net>
Date: Thu, 28 May 2015 03:48:14 +0200
Subject: build: prevent race condition between tool symlink creation
Filter out STAGING_DIR_HOST binary path to prevent picking up grep from this
path.
diff --git a/tools/Makefile b/tools/Makefile
index 137ad61..c24bca1 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -120,7 +120,7 @@ $(STAGING_DIR_HOST)/.prepared: $(TMP_DIR)/.build
define PrepareCommand
$(STAGING_DIR_HOST)/bin/$(1): $(STAGING_DIR_HOST)/.prepared
@mkdir -p "$$(dir $$@)"; rm -f "$$@"
- @export FILE="$$$$(which $(2) 2>/dev/null | grep -v 'not found' | head -n1)"; [ -n "$$$$FILE" ] || { \
+ @export PATH="$(subst $(space),:,$(filter-out $(STAGING_DIR_HOST)/%,$(subst :,$(space),$(PATH))))"; export FILE="$$$$(which $(2) 2>/dev/null | grep -v 'not found' | head -n1)"; [ -n "$$$$FILE" ] || { \
echo "Command $(1) not found."; false; \
}; ln -s "$$$$FILE" "$$@"

View File

@ -0,0 +1,24 @@
From: Matthias Schiffer <mschiffer@universe-factory.net>
Date: Mon, 15 Jun 2015 21:28:06 +0200
Subject: ar71xx: fix AR71XX_MODEL for TP-Link TL-WA830RE v1
The v1 identifies as v10 internally. As there is no TL-WA830RE v10, add a
workaround to avoid confusing users.
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
diff --git a/target/linux/ar71xx/base-files/lib/ar71xx.sh b/target/linux/ar71xx/base-files/lib/ar71xx.sh
index 1838cb4..d79776b 100755
--- a/target/linux/ar71xx/base-files/lib/ar71xx.sh
+++ b/target/linux/ar71xx/base-files/lib/ar71xx.sh
@@ -145,6 +145,10 @@ tplink_board_detect() {
;;
"083000"*)
model="TP-Link TL-WA830RE"
+
+ if [ "$hwver" = 'v10' ]; then
+ hwver='v1'
+ fi
;;
"084100"*)
model="TP-Link TL-WR841N/ND"

View File

@ -0,0 +1,137 @@
From: Matthias Schiffer <mschiffer@universe-factory.net>
Date: Tue, 16 Jun 2015 01:07:41 +0200
Subject: x86: remove old soekris config hacks, install a more appropriate default /etc/config/network with lan+wan
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
diff --git a/target/linux/x86/base-files/etc/config/network b/target/linux/x86/base-files/etc/config/network
new file mode 100644
index 0000000..c9953a0
--- /dev/null
+++ b/target/linux/x86/base-files/etc/config/network
@@ -0,0 +1,26 @@
+# Copyright (C) 2006 OpenWrt.org
+
+config interface loopback
+ option ifname lo
+ option proto static
+ option ipaddr 127.0.0.1
+ option netmask 255.0.0.0
+
+config interface lan
+ option ifname eth0
+ option type bridge
+ option proto static
+ option ipaddr 192.168.1.1
+ option netmask 255.255.255.0
+ option ip6assign 60
+
+config interface wan
+ option ifname eth1
+ option proto dhcp
+
+config interface wan6
+ option ifname eth1
+ option proto dhcpv6
+
+config globals globals
+ option ula_prefix auto
diff --git a/target/linux/x86/base-files/etc/defconfig/net4801/network b/target/linux/x86/base-files/etc/defconfig/net4801/network
deleted file mode 100644
index 172d513..0000000
--- a/target/linux/x86/base-files/etc/defconfig/net4801/network
+++ /dev/null
@@ -1,24 +0,0 @@
-config interface loopback
- option ifname lo
- option proto static
- option ipaddr 127.0.0.1
- option netmask 255.0.0.0
-
-config interface lan
- option ifname eth1
- option type bridge
- option proto static
- option ipaddr 192.168.1.1
- option netmask 255.255.255.0
- option ip6assign 60
-
-config interface wan
- option ifname eth0
- option proto dhcp
-
-config interface wan6
- option ifname @wan
- option proto dhcpv6
-
-config globals globals
- option ula_prefix auto
diff --git a/target/linux/x86/base-files/etc/defconfig/net4826/network b/target/linux/x86/base-files/etc/defconfig/net4826/network
deleted file mode 100644
index 7c9fb63..0000000
--- a/target/linux/x86/base-files/etc/defconfig/net4826/network
+++ /dev/null
@@ -1,12 +0,0 @@
-config interface loopback
- option ifname lo
- option proto static
- option ipaddr 127.0.0.1
- option netmask 255.0.0.0
-
-config interface lan
- option ifname eth0
- option type bridge
- option proto static
- option ipaddr 192.168.1.1
- option netmask 255.255.255.0
diff --git a/target/linux/x86/base-files/etc/init.d/defconfig b/target/linux/x86/base-files/etc/init.d/defconfig
deleted file mode 100755
index 4b4f28f..0000000
--- a/target/linux/x86/base-files/etc/init.d/defconfig
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/sh /etc/rc.common
-#
-# Copyright (C) 2010 Thinktube Inc.
-#
-
-START=05
-
-start() {
- . /lib/soekris.sh
-
- local board=$(net48xx_board_name)
-
- [ ! -d /etc/defconfig/$board ] && board="net4826"
-
- for f in $( ls /etc/defconfig/$board ); do
- if [ ! -e /etc/config/$f ]; then
- cp /etc/defconfig/$board/$f /etc/config/
- fi
- done
-}
diff --git a/target/linux/x86/base-files/lib/soekris.sh b/target/linux/x86/base-files/lib/soekris.sh
deleted file mode 100755
index e416ad3..0000000
--- a/target/linux/x86/base-files/lib/soekris.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/sh
-
-net48xx_board_name () {
- local name
- local pci=`wc -l /proc/bus/pci/devices`
-
- case "$pci" in
- *"8"*)
- name="net4826"
- ;;
- *1[0-4]*)
- name="net4801"
- ;;
- *)
- name="net4826"
- ;;
- esac
- echo $name
-}

View File

@ -0,0 +1,20 @@
From: Matthias Schiffer <mschiffer@universe-factory.net>
Date: Wed, 17 Jun 2015 00:03:39 +0200
Subject: Revert netns_ct ABI change introduced in r44874
diff --git a/target/linux/generic/patches-3.10/617-netfilter_skip_filter_compat.patch b/target/linux/generic/patches-3.10/617-netfilter_skip_filter_compat.patch
new file mode 100644
index 0000000..dce0cd0
--- /dev/null
+++ b/target/linux/generic/patches-3.10/617-netfilter_skip_filter_compat.patch
@@ -0,0 +1,10 @@
+--- a/include/net/netns/conntrack.h
++++ b/include/net/netns/conntrack.h
+@@ -80,6 +80,7 @@ struct netns_ct {
+ int sysctl_acct;
+ int sysctl_tstamp;
+ int sysctl_checksum;
++ int skip_filter;
+ unsigned int sysctl_log_invalid; /* Log invalid packets */
+ int sysctl_auto_assign_helper;
+ bool auto_assign_helper_warned;

View File

@ -0,0 +1,36 @@
From: Matthias Schiffer <mschiffer@universe-factory.net>
Date: Thu, 4 Jun 2015 21:03:24 +0200
Subject: luci-lib-json: ignore null keys to allow encoding empty objects
There is currently no way to encode an empty object {}, as empty tables are
encoded as empty lists [].
With this patch, encode() will ignore table fields with the key json.null (which
doesn't make sense anyways). This allows adding a field with key json.null to
force encoding it as an object.
Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
diff --git a/libs/json/luasrc/json.lua b/libs/json/luasrc/json.lua
index 8dbaf91..11a5608 100644
--- a/libs/json/luasrc/json.lua
+++ b/libs/json/luasrc/json.lua
@@ -205,11 +205,13 @@ function Encoder.parse_iter(self, obj)
local first = true
for key, entry in pairs(obj) do
- first = first or self:put(",")
- first = first and false
- self:parse_string(tostring(key))
- self:put(":")
- self:dispatch(entry)
+ if key ~= null then
+ first = first or self:put(",")
+ first = first and false
+ self:parse_string(tostring(key))
+ self:put(":")
+ self:dispatch(entry)
+ end
end
self:put("}")

View File

@ -83,9 +83,10 @@ $(eval $(call GluonModel,TLWDR4300,tl-wdr4300-v1,tp-link-tl-wdr4300-v1))
$(eval $(call GluonProfile,TLWA750)) $(eval $(call GluonProfile,TLWA750))
$(eval $(call GluonModel,TLWA750,tl-wa750re-v1,tp-link-tl-wa750re-v1)) $(eval $(call GluonModel,TLWA750,tl-wa750re-v1,tp-link-tl-wa750re-v1))
ifeq ($(BROKEN),1) # TL-WA830RE v1, v2
# TL-WA830RE v2
$(eval $(call GluonProfile,TLWA830)) $(eval $(call GluonProfile,TLWA830))
$(eval $(call GluonModel,TLWA830,tl-wa830re-v1,tp-link-tl-wa830re-v1))
ifeq ($(BROKEN),1)
$(eval $(call GluonModel,TLWA830,tl-wa830re-v2,tp-link-tl-wa830re-v2)) $(eval $(call GluonModel,TLWA830,tl-wa830re-v2,tp-link-tl-wa830re-v2))
endif endif