[OpenWrt-Devel] [PATCH v2 1/3] sysupgrade: let force be more forceful with multiple --force/-F options
Signed-off-by: Cody P Schafer de...@codyps.com --- package/base-files/files/sbin/sysupgrade | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package/base-files/files/sbin/sysupgrade b/package/base-files/files/sbin/sysupgrade index 56e9a92..033bd35 100755 --- a/package/base-files/files/sbin/sysupgrade +++ b/package/base-files/files/sbin/sysupgrade @@ -32,7 +32,7 @@ while [ -n $1 ]; do -r|--restore-backup) export CONF_RESTORE=$2 NEED_IMAGE=1; shift;; -l|--list-backup) export CONF_BACKUP_LIST=1; break;; -f) export CONF_IMAGE=$2; shift;; - -F|--force) export FORCE=1;; + -F|--force) export FORCE=$(($FORCE + 1));; -T|--test) export TEST=1;; -h|--help) export HELP=1; break;; -*) @@ -173,7 +173,7 @@ type platform_check_image /dev/null 2/dev/null || { for check in $sysupgrade_image_check; do ( eval $check \\$ARGV\ ) || { - if [ $FORCE -eq 1 ]; then + if [ $FORCE -gt 0 ]; then echo Image check '$check' failed but --force given - will update anyway! break else -- 1.8.5.1 ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
Re: [OpenWrt-Devel] [PATCH 0/8] Improve Belkin F7Dxxxx support
Anyone have any opinions on this? Anything need changing? Any recomendations? A related question: - I'd like to move all the trx handling logic into a common header. 1) is there anything obvious that would prevent this? 2) where should I put the header? On Thu, Dec 5, 2013 at 2:45 AM, Cody P Schafer de...@codyps.com wrote: - fixup board detection with some new boards - cleanup broadcom-diag usage - teach lzmaloader, brcm47xxpart, mtd, and brcm47xx's upgrade/platform.sh about the Belkin trx magic - build some Belkin F7D images As noted in a previous email, we need to recognize all of the various trx magic because the Belkin web interface doesn't like the 0x12345678 (QA) trx magic that works on all of these routers. Cody P Schafer (8): linux/brcm47xx : tweak Belkin F7D board detection broadcom-diag: tweak Belkin F7D, share 1 led/button layout brcm47xx/lzmaloader: add Belkin F7D support brcm47xx/mtd-partition: recognize Belkin F7D TRX headers mtd: recognize belkin trx magic brcm47xx/upgrade: add workarounds for Belkin .trx headers brcm47xx/image: build Belkin F7D images brcm47xx: add brcmsmac + bgmac profile package/kernel/broadcom-diag/src/diag.c| 36 -- package/system/mtd/src/trx.c | 29 +-- .../brcm47xx/base-files/lib/upgrade/platform.sh| 58 +++--- target/linux/brcm47xx/image/Makefile | 25 ++ .../brcm47xx/image/lzma-loader/src/decompress.c| 27 +- ...PS-BCM47XX-fix-detection-of-some-boards-2.patch | 28 +-- .../077-MIPS-BCM47XX-mtd-partition-belkin.patch| 49 ++ .../profiles/226-Broadcom-bgmac-brcsmac.mk | 20 8 files changed, 228 insertions(+), 44 deletions(-) create mode 100644 target/linux/brcm47xx/patches-3.10/077-MIPS-BCM47XX-mtd-partition-belkin.patch create mode 100644 target/linux/brcm47xx/profiles/226-Broadcom-bgmac-brcsmac.mk -- 1.8.4.2 ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
[OpenWrt-Devel] [PATCH] [packages] aircrack-ng: add missing dependency +wireless-tools
Without this patch, airodump-ng, aireplay-ng and other interesting tools fail with Can't find wireless tools, exiting. Signed-off-by: Gui Iribarren g...@altermundi.net --- Some utilities have no such dependency (i.e. packetforge-ng) but the same logic applies to libpcap, which is needed only for some tools, and is a hard dependency currently. net/aircrack-ng/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/net/aircrack-ng/Makefile b/net/aircrack-ng/Makefile index e912dfe..380a7b3 100644 --- a/net/aircrack-ng/Makefile +++ b/net/aircrack-ng/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=aircrack-ng PKG_VERSION:=1.1 -PKG_RELEASE:=3 +PKG_RELEASE:=4 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=http://download.aircrack-ng.org/ \ @@ -24,7 +24,7 @@ include $(INCLUDE_DIR)/package.mk define Package/aircrack-ng SECTION:=net CATEGORY:=Network - DEPENDS:=+libpthread +libopenssl +libpcap + DEPENDS:=+libpthread +libopenssl +libpcap +wireless-tools TITLE:=next generation of aircrack with new features URL:=http://www.aircrack-ng.org/ SUBMENU:=wireless -- 1.8.4.rc3 ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
Re: [OpenWrt-Devel] [PATCH v2 1/3] sysupgrade: let force be more forceful with multiple --force/-F options
Hi, On Sun, Dec 15, 2013 at 08:57:29AM +0100, openwrt-devel-requ...@lists.openwrt.org wrote: Date: Sat, 14 Dec 2013 23:59:28 -0800 From: Cody P Schafer de...@codyps.com Signed-off-by: Cody P Schafer de...@codyps.com --- package/base-files/files/sbin/sysupgrade | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package/base-files/files/sbin/sysupgrade b/package/base-files/files/sbin/sysupgrade index 56e9a92..033bd35 100755 --- a/package/base-files/files/sbin/sysupgrade +++ b/package/base-files/files/sbin/sysupgrade @@ -32,7 +32,7 @@ while [ -n $1 ]; do -r|--restore-backup) export CONF_RESTORE=$2 NEED_IMAGE=1; shift;; -l|--list-backup) export CONF_BACKUP_LIST=1; break;; -f) export CONF_IMAGE=$2; shift;; - -F|--force) export FORCE=1;; + -F|--force) export FORCE=$(($FORCE + 1));; -T|--test) export TEST=1;; -h|--help) export HELP=1; break;; -*) @@ -173,7 +173,7 @@ type platform_check_image /dev/null 2/dev/null || { for check in $sysupgrade_image_check; do ( eval $check \\$ARGV\ ) || { - if [ $FORCE -eq 1 ]; then + if [ $FORCE -gt 0 ]; then echo Image check '$check' failed but --force given - will update anyway! break else -- 1.8.5.1 I'm feeling a bit uneasy about changing that assignment into an increment of a variable that thereby loses its initialization (or is it already initialized elsewhere?). dash(1): -u nounset Write a message to standard error when attempting to expand a variable that is not set, and if the shell is not interactive, exit immediately. So, this code quite likely would flunk sh -u cases (nevermind that large chunks of other shell code do that as well). But perhaps direct access of FORCE is actually desired, to be able to specify a FORCE base level value from the outside. OTOH this could probably best be done via export FORCE=${FORCE:-0} Hmm, but this is in fact the way that it could be done here directly, if one cannot/does not want to have an explicite init line. I.e., something like: -F|--force) export FORCE=$((${FORCE:-0} + 1));; OTOH intermingling potential-init plus increment in one line can be considered weird at a minimum. So the best design would perhaps be -F|--force) FORCE=${FORCE:-0} export FORCE=$(($FORCE + 1)) ;; Thank you for your participation in this lovely project! Andreas Mohr -- GNU/Linux. It's not the software that's free, it's you. ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
Re: [OpenWrt-Devel] [PATCH v2 1/3] sysupgrade: let force be more forceful with multiple --force/-F options
On Sun, Dec 15, 2013 at 01:49:47AM -0800, Cody P Schafer wrote: We already initialize FORCE to 0 at the top of the 'sysupgrade' script. export HELP=0 export FORCE=0 export TEST=0 Ah ok, nevermind then :) (didn't have ready access to sources ATM) Thanks, Andreas Mohr ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
Re: [OpenWrt-Devel] [PATCH v2 1/3] sysupgrade: let force be more forceful with multiple --force/-F options
* Andreas Mohr a...@lisas.de [15.12.2013 17:09]: I'm feeling a bit uneasy about changing that assignment into an increment of a variable that thereby loses its initialization (or is it already initialized elsewhere?). yes, it gets an init at scriptstart. - bye, bastian ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
Re: [OpenWrt-Devel] [PATCH][packages]i2c-tools: fix TARGET_CPPFLAGS
Hi John, On Fri, Dec 06, 2013 at 04:37:37PM -0500, John Vogel wrote: The Makefile for i2c-tools sets TARGET_CPPFLAGS to point to the linux source headers rather that the i2c-tools header, causing build failure. This patch changes TARGET_CPPFLAGS to point to the packages include dir. This fixes tickets #13546 and #13857. Signed-off-by John Vogel jvog...@stny.rr.com Applied in r39069. Thank you! Luka ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
[OpenWrt-Devel] [PATCH] Update authsae to latest version
Only compile tested but the changes are minimal https://github.com/cozybit/authsae/compare/f5693a3...1d1a122 Signed-off-by: Etienne CHAMPETIER etienne.champet...@free.fr --- package/network/services/authsae/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package/network/services/authsae/Makefile b/package/network/services/authsae/Makefile index 13dcb7c..d5540ed 100644 --- a/package/network/services/authsae/Makefile +++ b/package/network/services/authsae/Makefile @@ -8,13 +8,13 @@ include $(TOPDIR)/rules.mk PKG_NAME:=authsae -PKG_VERSION:=2013-07-24 +PKG_VERSION:=2013-11-13 PKG_RELEASE=$(PKG_SOURCE_VERSION) PKG_SOURCE_PROTO:=git PKG_SOURCE_URL:=git://github.com/cozybit/authsae.git PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION) -PKG_SOURCE_VERSION:=f5693a3ee8dcc4e11d25acc4e75f5d154c0b302b +PKG_SOURCE_VERSION:=1d1a1226a25833267a6a56b8edc48f253481b62c PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz PKG_BUILD_PARALLEL:=1 -- 1.8.3.1 ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
[OpenWrt-Devel] [PATCH] eglibc: correct hostapd makefile
It was building before so maybe we should not change Makefile? see hostapd-20131120/hostapd/Makefile and CONFIG_ELOOP maybe Signed-off-by: Etienne CHAMPETIER etienne.champet...@free.fr --- package/network/services/hostapd/Makefile | 6 -- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/package/network/services/hostapd/Makefile b/package/network/services/hostapd/Makefile index 05a74bb..b551314 100644 --- a/package/network/services/hostapd/Makefile +++ b/package/network/services/hostapd/Makefile @@ -241,8 +241,9 @@ TARGET_CPPFLAGS := \ -D_GNU_SOURCE \ $(if $(CONFIG_WPA_MSG_MIN_PRIORITY),-DCONFIG_MSG_MIN_PRIORITY=$(CONFIG_WPA_MSG_MIN_PRIORITY)) +LIBRT += $(if $(CONFIG_USE_EGLIBC),-lrt) TARGET_CFLAGS += -ffunction-sections -fdata-sections -TARGET_LDFLAGS += -Wl,--gc-sections +TARGET_LDFLAGS += -Wl,--gc-sections $(LIBRT) ifeq ($(findstring supplicant,$(BUILD_VARIANT)),) TARGET_LDFLAGS += -lubox -lubus endif @@ -257,7 +258,8 @@ define Build/RunMake $(TARGET_CONFIGURE_OPTS) \ $(DRIVER_MAKEOPTS) \ LIBS=$(TARGET_LDFLAGS) \ - LIBS_c= \ + LIBS_c=$(LIBRT) \ + LIBS_h=$(LIBRT) \ BCHECK= \ $(2) endef -- 1.8.3.1 ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
[OpenWrt-Devel] [PATCH 1/4] [package] uboot-kirkwood: update to 2013.10
Tested on: * Cloud Engines Pogoplug E02 * RaidSonic ICY BOX IB-NAS62x0 * Iomega Iconnect Some users are avoiding to replace their bootloader, because of that add support for second stage u-boot image. Having ubifs capable bootloader is required in order to boot current OpenWrt trunk. While at it include parallel build support, use alphabetic order of the boards and introduce common OpenWrt configuration. Signed-off-by: Luka Perkov l...@openwrt.org Tested-by (on ib62x0): Luka Perkov l...@openwrt.org CC: Felix Kaechele hef...@fedoraproject.org CC: Wojciech Dubowik wojciech.dubo...@neratec.com CC: Alexander Couzens lyn...@fe80.eu CC: Daniel Engberg daniel.engb...@pyret.net CC: Imre Kaloz ka...@openwrt.org --- ib62x0 commands for running second stage bootloader: tftpboot 0x80 uboot-kirkwood-ib62x0_second_stage/openwrt-kirkwood-ib62x0_second_stage-u-boot.img bootm 0x80 ib62x0 commands for flashing second stage bootloader: tftpboot 0x80 uboot-kirkwood-ib62x0_second_stage/openwrt-kirkwood-ib62x0_second_stage-u-boot.img nand erase 0x10 0x10 ; nand write 0x80 0x10 0x${filesize} nand read 0x80 0x10 0x10 ; bootm 0x80 --- package/boot/uboot-kirkwood/Makefile | 55 +++-- ...-ib62x0-use-device-tree-and-update-config.patch | 89 ++ .../boot/uboot-kirkwood/patches/110-dockstar.patch | 134 ++--- .../boot/uboot-kirkwood/patches/120-iconnect.patch | 57 + .../boot/uboot-kirkwood/patches/130-ib62x0.patch | 31 + .../patches/200-openwrt-config.patch | 100 +++ 6 files changed, 439 insertions(+), 27 deletions(-) create mode 100644 package/boot/uboot-kirkwood/patches/0001-kirkwood-ib62x0-use-device-tree-and-update-config.patch create mode 100644 package/boot/uboot-kirkwood/patches/120-iconnect.patch create mode 100644 package/boot/uboot-kirkwood/patches/130-ib62x0.patch create mode 100644 package/boot/uboot-kirkwood/patches/200-openwrt-config.patch diff --git a/package/boot/uboot-kirkwood/Makefile b/package/boot/uboot-kirkwood/Makefile index 375d115..328da81 100644 --- a/package/boot/uboot-kirkwood/Makefile +++ b/package/boot/uboot-kirkwood/Makefile @@ -1,5 +1,5 @@ # -# Copyright (C) 2010-2012 OpenWrt.org +# Copyright (C) 2010-2013 OpenWrt.org # # This is free software, licensed under the GNU General Public License v2. # See /LICENSE for more information. @@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=u-boot -PKG_VERSION:=2012.10 +PKG_VERSION:=2013.10 PKG_RELEASE:=1 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION) @@ -16,9 +16,11 @@ PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2 PKG_SOURCE_URL:= \ http://mirror2.openwrt.org/sources \ ftp://ftp.denx.de/pub/u-boot -PKG_MD5SUM:=8655f63b1e5c4647295ac9ce44660be3 +PKG_MD5SUM:=a076a044b64371edc52f7e562b13f6b2 PKG_TARGETS:=bin +PKG_BUILD_PARALLEL:=1 + include $(INCLUDE_DIR)/package.mk define uboot/Default @@ -27,23 +29,44 @@ define uboot/Default IMAGE:= endef -define uboot/sheevaplug - TITLE:=U-Boot for the SheevaPlug +define uboot/dockstar + TITLE:=U-Boot for Seagate DockStar endef -define uboot/dockstar - TITLE:=U-Boot for the Seagate DockStar +define uboot/dockstar_second_stage + TITLE:=second stage U-Boot for Seagate DockStar +endef + +define uboot/ib62x0 + TITLE:=U-Boot for RaidSonic ICY BOX NAS6210 and NAS6220 +endef + +define uboot/ib62x0_second_stage + TITLE:=second stage U-Boot for RaidSonic ICY BOX NAS6210 and NAS6220 endef define uboot/iconnect - TITLE:=U-Boot for the Iomega iConnect Wireless + TITLE:=U-Boot for Iomega iConnect Wireless endef -define uboot/ib62x0 - TITLE:=U-Boot for the RaidSonic ICY BOX NAS6210 and NAS6220 +define uboot/iconnect_second_stage + TITLE:=second stage U-Boot for Iomega iConnect Wireless +endef + +define uboot/pogo_e02 + TITLE:=U-Boot for Cloud Engines Pogoplug E02 +endef + +define uboot/sheevaplug + TITLE:=U-Boot for SheevaPlug endef -UBOOTS:=sheevaplug dockstar iconnect ib62x0 +UBOOTS:= \ + dockstar dockstar_second_stage \ + ib62x0 ib62x0_second_stage \ + iconnect iconnect_second_stage \ + pogo_e02 \ + sheevaplug define Package/uboot/template define Package/uboot-kirkwood-$(1) @@ -69,14 +92,18 @@ UBOOT_IMAGE:=$(if $(IMAGE),$(IMAGE),openwrt-$(BOARD)-$(BUILD_VARIANT)-u-boot.bin endif define Build/Configure - $(MAKE) -C $(PKG_BUILD_DIR) \ + +$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \ $(UBOOT_CONFIG)_config endef define Build/Compile - $(MAKE) -C $(PKG_BUILD_DIR) \ + +$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) \ u-boot.kwb \ CROSS_COMPILE=$(TARGET_CROSS) + mkimage -A $(ARCH) -O linux -T kernel -C none \ + -a 0x60 -e 0x60 \ + -n 'OpenWrt Das U-Boot uImage' \ + -d $(PKG_BUILD_DIR)/u-boot.bin $(PKG_BUILD_DIR)/u-boot.img endef
[OpenWrt-Devel] [PATCH 4/4] kirkwood: update support for dockstar
The board is optimized for ubi(fs) and boots OpenWrt without changes to uboot environment if OpenWrt's uboot package is used. In order to flash the image run following commands in uboot shell: nand erase 0x20 0xfe0 ubi part root ; ubi remove rootfs ; ubi create rootfs tftpboot 0x80 openwrt-kirkwood-dockstar-rootfs.ubifs ; ubi write 0x80 rootfs ${filesize} ; reset Note that commands were not tested on real board and should be executed if uboot-kirkwood package is used as a bootloader (initial or second stage). Signed-off-by: Luka Perkov l...@openwrt.org CC: Imre Kaloz ka...@openwrt.org --- .../kirkwood/base-files/etc/uci-defaults/01_leds | 6 ++-- .../linux/kirkwood/patches-3.10/140-dockstar.patch | 32 ++ 2 files changed, 35 insertions(+), 3 deletions(-) create mode 100644 target/linux/kirkwood/patches-3.10/140-dockstar.patch diff --git a/target/linux/kirkwood/base-files/etc/uci-defaults/01_leds b/target/linux/kirkwood/base-files/etc/uci-defaults/01_leds index 5c34cd6..1600464 100644 --- a/target/linux/kirkwood/base-files/etc/uci-defaults/01_leds +++ b/target/linux/kirkwood/base-files/etc/uci-defaults/01_leds @@ -6,9 +6,9 @@ . /lib/functions/uci-defaults.sh case `cat /proc/device-tree/model` in -Seagate FreeAgent DockStar) - ucidef_set_led_netdev eth0 dockstar:orange:misc eth0 - ucidef_set_led_default health dockstar:green:health 1 +Seagate FreeAgent Dockstar) + ucidef_set_led_default health status:green:health 1 + ucidef_set_led_default fault status:orange:fault 1 ;; Cloud Engines Pogoplug E02) ucidef_set_led_default health status:green:health 1 diff --git a/target/linux/kirkwood/patches-3.10/140-dockstar.patch b/target/linux/kirkwood/patches-3.10/140-dockstar.patch new file mode 100644 index 000..8054891 --- /dev/null +++ b/target/linux/kirkwood/patches-3.10/140-dockstar.patch @@ -0,0 +1,32 @@ +--- a/arch/arm/boot/dts/kirkwood-dockstar.dts b/arch/arm/boot/dts/kirkwood-dockstar.dts +@@ -45,18 +45,22 @@ + + partition@0 { + label = u-boot; +- reg = 0x000 0x10; +- read-only; ++ reg = 0x000 0xe; ++ }; ++ ++ partition@e { ++ label = u-boot environment; ++ reg = 0xe 0x10; + }; + + partition@10 { +- label = uImage; +- reg = 0x010 0x40; ++ label = second stage u-boot; ++ reg = 0x10 0x20; + }; + +- partition@50 { +- label = data; +- reg = 0x050 0xfb0; ++ partition@20 { ++ label = root; ++ reg = 0x20 0xfe0; + }; + }; + }; -- 1.8.5.1 ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
[OpenWrt-Devel] [PATCH 1/7] swconfig: remove useless variables, return -1 on errors
spotted with cppcheck Signed-off-by: Etienne CHAMPETIER etienne.champet...@free.fr --- package/network/config/swconfig/src/cli.c | 5 ++--- package/network/config/swconfig/src/swlib.c | 6 -- package/network/config/swconfig/src/uci.c | 2 -- 3 files changed, 2 insertions(+), 11 deletions(-) diff --git a/package/network/config/swconfig/src/cli.c b/package/network/config/swconfig/src/cli.c index 2eb73be..fa3dfdf 100644 --- a/package/network/config/swconfig/src/cli.c +++ b/package/network/config/swconfig/src/cli.c @@ -178,7 +178,6 @@ swconfig_load_uci(struct switch_dev *dev, const char *name) { struct uci_context *ctx; struct uci_package *p = NULL; - struct uci_element *e; int ret = -1; ctx = uci_alloc_context(); @@ -206,7 +205,6 @@ int main(int argc, char **argv) struct switch_dev *dev; struct switch_attr *a; struct switch_val val; - int err; int i; int cmd = CMD_NONE; @@ -289,6 +287,7 @@ int main(int argc, char **argv) if(!a) { fprintf(stderr, Unknown attribute \%s\\n, ckey); + retval = -1; goto out; } } @@ -351,5 +350,5 @@ int main(int argc, char **argv) out: swlib_free_all(dev); - return 0; + return retval; } diff --git a/package/network/config/swconfig/src/swlib.c b/package/network/config/swconfig/src/swlib.c index 7de3a60..1222502 100644 --- a/package/network/config/swconfig/src/swlib.c +++ b/package/network/config/swconfig/src/swlib.c @@ -206,7 +206,6 @@ store_val(struct nl_msg *msg, void *arg) { struct genlmsghdr *gnlh = nlmsg_data(nlmsg_hdr(msg)); struct switch_val *val = arg; - struct switch_attr *attr = val-attr; if (!val) goto error; @@ -669,11 +668,7 @@ done: static int list_switch(struct nl_msg *msg, void *arg) { - struct swlib_scan_arg *sa = arg; struct genlmsghdr *gnlh = nlmsg_data(nlmsg_hdr(msg)); - struct switch_dev *dev; - const char *name; - const char *alias; if (nla_parse(tb, SWITCH_ATTR_MAX, genlmsg_attrdata(gnlh, 0), genlmsg_attrlen(gnlh, 0), NULL) 0) goto done; @@ -729,7 +724,6 @@ struct switch_dev * swlib_connect(const char *name) { struct swlib_scan_arg arg; - int err; if (!refcount) { if (swlib_priv_init() 0) diff --git a/package/network/config/swconfig/src/uci.c b/package/network/config/swconfig/src/uci.c index 893e3d1..bbeeb03 100644 --- a/package/network/config/swconfig/src/uci.c +++ b/package/network/config/swconfig/src/uci.c @@ -66,7 +66,6 @@ swlib_map_settings(struct switch_dev *dev, int type, int port_vlan, struct uci_s struct switch_attr *attr; struct uci_element *e; struct uci_option *o; - int i; uci_foreach_element(s-options, e) { o = uci_to_option(e); @@ -109,7 +108,6 @@ skip: int swlib_apply_from_uci(struct switch_dev *dev, struct uci_package *p) { struct switch_attr *attr; - struct uci_context *ctx = p-ctx; struct uci_element *e; struct uci_section *s; struct uci_option *o; -- 1.8.3.1 ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
[OpenWrt-Devel] [PATCH 0/7] Cleanup c code
Hi These patches cleanup code inside openwrt repo All errors spotted with cppcheck http://cppcheck.sourceforge.net/ It's only compile tested, and maybe some unused variable should be used and not removed Etienne CHAMPETIER (7): swconfig: remove useless variables, return -1 on errors ead: clean up ead: set_nonblock() is doing nothing (typo) fbtest: Correct pseudo resource leak in fbtest.c firmware-utils: clean up firmware-utils: remove unused functions firmware-utils: check_magic() in buffalo-lib.c always return 0 package/network/config/swconfig/src/cli.c | 5 +-- package/network/config/swconfig/src/swlib.c| 6 --- package/network/config/swconfig/src/uci.c | 2 - package/network/services/ead/src/ead-client.c | 2 +- package/network/services/ead/src/ead.c | 10 ++--- package/network/services/ead/src/tinysrp/bn_mul.c | 4 -- package/network/services/ead/src/tinysrp/clitest.c | 2 - .../network/services/ead/src/tinysrp/t_client.c| 2 - package/network/services/ead/src/tinysrp/t_conv.c | 2 +- package/network/services/ead/src/tinysrp/tphrase.c | 14 +-- package/utils/fbtest/src/fbtest.c | 5 +++ tools/firmware-utils/src/airlink.c | 48 ++ tools/firmware-utils/src/bcmalgo.c | 10 + tools/firmware-utils/src/buffalo-lib.c | 4 +- tools/firmware-utils/src/buffalo-tftp.c| 2 - tools/firmware-utils/src/dgfirmware.c | 6 +++ tools/firmware-utils/src/hcsmakeimage.c| 4 ++ tools/firmware-utils/src/imagetag.c| 8 +--- tools/firmware-utils/src/makeamitbin.c | 19 - tools/firmware-utils/src/mkcasfw.c | 11 ++--- tools/firmware-utils/src/mkchkimg.c| 3 ++ tools/firmware-utils/src/mkcsysimg.c | 17 +--- tools/firmware-utils/src/mkdir615h1.c | 3 +- tools/firmware-utils/src/mkdniimg.c| 1 - tools/firmware-utils/src/mkfwimage.c | 1 + tools/firmware-utils/src/mkfwimage2.c | 1 + tools/firmware-utils/src/mkmylofw.c| 24 --- tools/firmware-utils/src/mkplanexfw.c | 1 - tools/firmware-utils/src/mktitanimg.c | 39 ++ tools/firmware-utils/src/mktplinkfw.c | 4 -- tools/firmware-utils/src/mktplinkfw2.c | 4 -- tools/firmware-utils/src/mkzcfw.c | 5 --- tools/firmware-utils/src/mkzynfw.c | 39 ++ tools/firmware-utils/src/nand_ecc.c| 3 +- tools/firmware-utils/src/osbridge-crc.c| 1 - tools/firmware-utils/src/pc1crypt.c| 1 - tools/firmware-utils/src/spw303v.c | 1 - tools/firmware-utils/src/srec2bin.c| 3 +- tools/firmware-utils/src/xorimage.c| 1 - 39 files changed, 96 insertions(+), 222 deletions(-) -- 1.8.3.1 ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
[OpenWrt-Devel] [PATCH 2/7] ead: clean up
Remove unused variables Correct some (non important) memory leaks Remove fclose(NULL) Correct possible out of bound access spotted with cppcheck Signed-off-by: Etienne CHAMPETIER etienne.champet...@free.fr --- package/network/services/ead/src/ead.c | 10 +- package/network/services/ead/src/tinysrp/bn_mul.c | 4 package/network/services/ead/src/tinysrp/clitest.c | 2 -- package/network/services/ead/src/tinysrp/t_client.c | 2 -- package/network/services/ead/src/tinysrp/t_conv.c | 2 +- package/network/services/ead/src/tinysrp/tphrase.c | 14 ++ 6 files changed, 16 insertions(+), 18 deletions(-) diff --git a/package/network/services/ead/src/ead.c b/package/network/services/ead/src/ead.c index 3623520..d1847c1 100644 --- a/package/network/services/ead/src/ead.c +++ b/package/network/services/ead/src/ead.c @@ -120,8 +120,8 @@ set_recv_type(pcap_t *p, bool rx) #ifdef PACKET_RECV_TYPE struct sockaddr_ll sll; struct ifreq ifr; - int ifindex, mask; - int fd, ret; + int mask; + int fd; fd = pcap_get_selectable_fd(p); if (fd 0) @@ -132,7 +132,7 @@ set_recv_type(pcap_t *p, bool rx) else mask = 0; - ret = setsockopt(fd, SOL_PACKET, PACKET_RECV_TYPE, mask, sizeof(mask)); + setsockopt(fd, SOL_PACKET, PACKET_RECV_TYPE, mask, sizeof(mask)); #endif } @@ -841,7 +841,7 @@ static int check_bridge_port(const char *br, const char *port, void *arg) { struct ead_instance *in; - struct list_head *p, *tmp; + struct list_head *p; list_for_each(p, instances) { in = list_entry(p, struct ead_instance, list); @@ -873,7 +873,7 @@ check_all_interfaces(void) { #ifdef linux struct ead_instance *in; - struct list_head *p, *tmp; + struct list_head *p; br_foreach_bridge(check_bridge, NULL); diff --git a/package/network/services/ead/src/tinysrp/bn_mul.c b/package/network/services/ead/src/tinysrp/bn_mul.c index d2d9fc5..92330e5 100644 --- a/package/network/services/ead/src/tinysrp/bn_mul.c +++ b/package/network/services/ead/src/tinysrp/bn_mul.c @@ -68,10 +68,6 @@ int BN_mul(BIGNUM *r, BIGNUM *a, BIGNUM *b, BN_CTX *ctx) #if defined(BN_MUL_COMBA) || defined(BN_RECURSION) int i; #endif -#ifdef BN_RECURSION - BIGNUM *t; - int j,k; -#endif #ifdef BN_COUNT printf(BN_mul %d * %d\n,a-top,b-top); diff --git a/package/network/services/ead/src/tinysrp/clitest.c b/package/network/services/ead/src/tinysrp/clitest.c index faaa5dd..338f41f 100644 --- a/package/network/services/ead/src/tinysrp/clitest.c +++ b/package/network/services/ead/src/tinysrp/clitest.c @@ -50,8 +50,6 @@ main() int index; struct t_client * tc; struct t_preconf *tcp; - struct t_num n; - struct t_num g; struct t_num s; struct t_num B; char username[MAXUSERLEN]; diff --git a/package/network/services/ead/src/tinysrp/t_client.c b/package/network/services/ead/src/tinysrp/t_client.c index ebdd203..692215a 100644 --- a/package/network/services/ead/src/tinysrp/t_client.c +++ b/package/network/services/ead/src/tinysrp/t_client.c @@ -58,8 +58,6 @@ t_clientopen(u, n, g, s) int i, validated; struct t_preconf * tpc; - BigInteger nn, gg, n12, r; - validated = 0; if(n-len MIN_MOD_BYTES) return 0; diff --git a/package/network/services/ead/src/tinysrp/t_conv.c b/package/network/services/ead/src/tinysrp/t_conv.c index d3fe246..3be6d85 100644 --- a/package/network/services/ead/src/tinysrp/t_conv.c +++ b/package/network/services/ead/src/tinysrp/t_conv.c @@ -161,7 +161,7 @@ t_fromb64(dst, src) break; } - while(a[j] == 0 j = size) + while(j = size a[j] == 0) ++j; memcpy(dst, a + j, size - j + 1); diff --git a/package/network/services/ead/src/tinysrp/tphrase.c b/package/network/services/ead/src/tinysrp/tphrase.c index 1aede0c..0ab1e08 100644 --- a/package/network/services/ead/src/tinysrp/tphrase.c +++ b/package/network/services/ead/src/tinysrp/tphrase.c @@ -62,7 +62,6 @@ void doit(char *name) { char passphrase[128], passphrase1[128]; FILE *f; - struct t_conf *tc; struct t_confent *tcent; struct t_pw eps_passwd; @@ -152,7 +151,8 @@ t_changepw(pwname, diff) if((bakfp = fopen(bakfile2, wb)) == NULL (unlink(bakfile2) 0 || (bakfp = fopen(bakfile2, wb)) == NULL)) { fclose(passfp); -fclose(bakfp); +free(bakfile); +free(bakfile2); return -1; } @@ -169,10 +169,16 @@ t_changepw(pwname, diff) #ifdef USE_RENAME unlink(bakfile); - if(rename(pwname, bakfile) 0) + if(rename(pwname, bakfile) 0) { +free(bakfile); +free(bakfile2); return -1; - if(rename(bakfile2, pwname) 0) + } + if(rename(bakfile2, pwname) 0) { +free(bakfile); +free(bakfile2); return -1; + } #else unlink(bakfile); link(pwname, bakfile); -- 1.8.3.1 ___
[OpenWrt-Devel] [PATCH 6/7] firmware-utils: remove unused functions
spotted with cppcheck Signed-off-by: Etienne CHAMPETIER etienne.champet...@free.fr --- tools/firmware-utils/src/bcmalgo.c | 8 tools/firmware-utils/src/makeamitbin.c | 19 --- tools/firmware-utils/src/mkcsysimg.c | 11 --- tools/firmware-utils/src/mkmylofw.c| 11 --- tools/firmware-utils/src/mktitanimg.c | 30 -- tools/firmware-utils/src/mkzynfw.c | 30 -- 6 files changed, 109 deletions(-) diff --git a/tools/firmware-utils/src/bcmalgo.c b/tools/firmware-utils/src/bcmalgo.c index f02464f..d8fdd95 100644 --- a/tools/firmware-utils/src/bcmalgo.c +++ b/tools/firmware-utils/src/bcmalgo.c @@ -238,11 +238,3 @@ int dump_header ( ldr_header_t* hd ) return ret; } - -void print_copyright() -{ - printf ( Part of bcm-utils package ver. UTIL_VERSION \n ); - printf ( Copyright (C) 2009 Andrew 'Necromant' Andrianov\n -This is free software, and you are welcome to redistribute it\n -under certain conditions. See COPYING for details\n ); -} diff --git a/tools/firmware-utils/src/makeamitbin.c b/tools/firmware-utils/src/makeamitbin.c index 5c33442..770dc5b 100644 --- a/tools/firmware-utils/src/makeamitbin.c +++ b/tools/firmware-utils/src/makeamitbin.c @@ -142,25 +142,6 @@ unsigned short checksum(unsigned char *data, long size) return cs; } -void showhdr(unsigned char *hdr) -{ - int i, j; - for (j = 0; j 5; j++) - { - for (i = 0; i 16; i++) - { - printf(%02x , (unsigned int)(hdr[j * 16 + i])); - } - printf( ); - for (i = 0; i 16; i++) - { - unsigned char d = hdr[j * 16 + i]; - printf(%c, (d = ' ' d 127) ? d : '.'); - } - printf(\n); - } -} - void makehdr(unsigned char *hdr, struct hdrinfo *info, unsigned char *data, long size, int last) { diff --git a/tools/firmware-utils/src/mkcsysimg.c b/tools/firmware-utils/src/mkcsysimg.c index b7260f9..b793103 100644 --- a/tools/firmware-utils/src/mkcsysimg.c +++ b/tools/firmware-utils/src/mkcsysimg.c @@ -321,17 +321,6 @@ str2u8(char *arg, uint8_t *val) return 0; } -int -str2sig(char *arg, uint32_t *sig) -{ - if (strlen(arg) != 4) - return -1; - - *sig = arg[0] | (arg[1] 8) | (arg[2] 16) | (arg[3] 24); - - return 0; -} - int parse_arg(char *arg, char *buf, char *argv[]) diff --git a/tools/firmware-utils/src/mkmylofw.c b/tools/firmware-utils/src/mkmylofw.c index 5a47e2a..668e9f5 100644 --- a/tools/firmware-utils/src/mkmylofw.c +++ b/tools/firmware-utils/src/mkmylofw.c @@ -306,17 +306,6 @@ update_crc(uint8_t *p, uint32_t len, uint32_t *crc) } -uint32_t -get_crc(uint8_t *p, uint32_t len) -{ - uint32_t crc; - - crc = 0; - update_crc(p ,len , crc); - return crc; -} - - int str2u32(char *arg, uint32_t *val) { diff --git a/tools/firmware-utils/src/mktitanimg.c b/tools/firmware-utils/src/mktitanimg.c index 6e739d5..2c35b9a 100644 --- a/tools/firmware-utils/src/mktitanimg.c +++ b/tools/firmware-utils/src/mktitanimg.c @@ -588,28 +588,6 @@ unsigned long cs_calc_buf_sum(char *buf, int size) return crc; } -unsigned long cs_calc_buf_sum_ds(char *buf, int buf_size, char *sign, int sign_len) -{ - unsigned long crc = 0; - char *cp = buf; - unsigned long length = buf_size+sign_len; - - while(buf_size--) - crc =(crc 8) ^ crctab[((crc 24) ^ *cp++) 0xFF]; - - cp = sign; - while(sign_len--) - crc =(crc 8) ^ crctab[((crc 24) ^ *cp++) 0xFF]; - - - for(; length; length = 8) - crc =(crc 8) ^ crctab[((crc 24) ^ length) 0xFF]; - - crc = ~crc 0x; - - return crc; -} - int cs_set_sum(FILE *fp, unsigned long sum, int tagged) { unsigned long magic = CKSUM_MAGIC_NUMBER; @@ -846,14 +824,6 @@ void cmdline_print(char* argv[]) cmdline_print_args((cmdline_data.glb_args), argv); } -/* *** -* Print configuration -** */ -void cmdline_print_cfg(void) -{ - -} - static void cmdline_argadd(CMDLINE_ARGS* p_arglist, CMDLINE_ARG* p_arg) { CMDLINE_ARG*p_list; diff --git a/tools/firmware-utils/src/mkzynfw.c b/tools/firmware-utils/src/mkzynfw.c index 59dc8a7..927b205 100644 --- a/tools/firmware-utils/src/mkzynfw.c +++ b/tools/firmware-utils/src/mkzynfw.c @@ -352,18 +352,6 @@ str2u8(char *arg, uint8_t *val) } int -str2sig(char *arg, uint32_t *sig) -{ - if (strlen(arg) != 4) - return -1; - - *sig = arg[0] | (arg[1] 8) | (arg[2] 16) | (arg[3] 24); - - return 0; -} - - -int parse_arg(char *arg, char *buf, char *argv[]) { int
[OpenWrt-Devel] [PATCH 5/7] firmware-utils: clean up
Remove unused variables Remove some memory/resource leak spotted with cppcheck Signed-off-by: Etienne CHAMPETIER etienne.champet...@free.fr --- tools/firmware-utils/src/airlink.c | 48 + tools/firmware-utils/src/bcmalgo.c | 2 +- tools/firmware-utils/src/buffalo-tftp.c | 2 -- tools/firmware-utils/src/dgfirmware.c | 6 + tools/firmware-utils/src/hcsmakeimage.c | 4 +++ tools/firmware-utils/src/imagetag.c | 8 ++ tools/firmware-utils/src/mkcasfw.c | 11 +++- tools/firmware-utils/src/mkchkimg.c | 3 +++ tools/firmware-utils/src/mkcsysimg.c| 6 ++--- tools/firmware-utils/src/mkdir615h1.c | 3 +-- tools/firmware-utils/src/mkdniimg.c | 1 - tools/firmware-utils/src/mkfwimage.c| 1 + tools/firmware-utils/src/mkfwimage2.c | 1 + tools/firmware-utils/src/mkmylofw.c | 13 - tools/firmware-utils/src/mkplanexfw.c | 1 - tools/firmware-utils/src/mktitanimg.c | 9 +++ tools/firmware-utils/src/mktplinkfw.c | 4 --- tools/firmware-utils/src/mktplinkfw2.c | 4 --- tools/firmware-utils/src/mkzcfw.c | 5 tools/firmware-utils/src/mkzynfw.c | 9 +++ tools/firmware-utils/src/nand_ecc.c | 3 +-- tools/firmware-utils/src/osbridge-crc.c | 1 - tools/firmware-utils/src/pc1crypt.c | 1 - tools/firmware-utils/src/spw303v.c | 1 - tools/firmware-utils/src/srec2bin.c | 3 +-- tools/firmware-utils/src/xorimage.c | 1 - 26 files changed, 70 insertions(+), 81 deletions(-) diff --git a/tools/firmware-utils/src/airlink.c b/tools/firmware-utils/src/airlink.c index 560a58d..0700fc0 100644 --- a/tools/firmware-utils/src/airlink.c +++ b/tools/firmware-utils/src/airlink.c @@ -107,28 +107,33 @@ int generate_image(char *kname, char *fsname, char *fname, int EHDR) { int i; uint32_t lenk, lens; - uchar *bk, *bs; - int fkd, ffd, fsd; - fkd = open(kname, O_RDONLY); - ffd = creat(fname, 0644); - if ((fkd 0) || (ffd 0)) - return -1; + uchar *bk = MAP_FAILED, + *bs = MAP_FAILED; + int fkd = -1, + ffd = -1, + fsd = -1, + ret = -1; + + if ((fkd = open(kname, O_RDONLY)) 0) + goto end; + + if ((ffd = creat(fname, 0644)) 0) + goto end; if (fsname) { - fsd = open(fsname, O_RDONLY); - if (fsd 0) - return -1; + if ((fsd = open(fsname, O_RDONLY)) 0) + goto end; } lenk = lseek(fkd, 0, SEEK_END); header[5] = lenk; bk = (uchar *) mmap(NULL, lenk, PROT_READ, MAP_SHARED, fkd, 0); if (bk == MAP_FAILED) - return -1; + goto end; if (fsname) { lens = lseek(fsd, 0, SEEK_END); bs = (uchar *) mmap(NULL, lens, PROT_READ, MAP_SHARED, fsd, 0); if (bs == MAP_FAILED) - return -1; + goto end; } if (EHDR) write(ffd, header, 0x28); @@ -142,13 +147,22 @@ int generate_image(char *kname, char *fsname, char *fname, int EHDR) ((lenk - 1 + JFFS2) / JFFS2) * JFFS2); for (i = 0; i ((lenk - 1 + JFFS2) / JFFS2) * JFFS2 - lenk; i++) write(ffd, header, 1); - if (fsname) { + if (fsname) write(ffd, bs, lens); + ret = 0; +end: + if (fkd != -1) + close(fkd); + if (ffd != -1) + close(ffd); + if (fsd != -1) close(fsd); - } - close(ffd); - close(fkd); - return 0; + if (bk != MAP_FAILED) + munmap(bk,lenk); + if (bs != MAP_FAILED) + munmap(bk,lens); + + return ret; } uint32_t crc32(uchar * buf, uint32_t len) @@ -238,7 +252,7 @@ int main(int argc, char **argv) usage(argv[0]); exit(-1); } - long i, len = lseek(fd, 0, SEEK_END); + long len = lseek(fd, 0, SEEK_END); lseek(fd, 0, SEEK_SET); uchar *buf = malloc(len); read(fd, buf, len); diff --git a/tools/firmware-utils/src/bcmalgo.c b/tools/firmware-utils/src/bcmalgo.c index e7d3b11..f02464f 100644 --- a/tools/firmware-utils/src/bcmalgo.c +++ b/tools/firmware-utils/src/bcmalgo.c @@ -226,7 +226,7 @@ int dump_header ( ldr_header_t* hd ) printf ( HNW:\t\t0x%04X\n,reverse_endian16 ( hd-her_znaet_chto ) ); //Hell knows what printf ( CRC:\t\t0x%08X\n,reverse_endian32 ( hd-crc ) ); printf ( === Binary Header Dump===\n ); - int i,j; + int i; uint8_t* head = ( uint8_t* ) hd; for ( i=0;i=sizeof ( ldr_header_t );i++ ) { diff --git a/tools/firmware-utils/src/buffalo-tftp.c b/tools/firmware-utils/src/buffalo-tftp.c index 1a2551a..087f995 100644 ---
[OpenWrt-Devel] [PATCH 3/7] ead: set_nonblock() is doing nothing (typo)
spotted with cppcheck Signed-off-by: Etienne CHAMPETIER etienne.champet...@free.fr --- package/network/services/ead/src/ead-client.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/network/services/ead/src/ead-client.c b/package/network/services/ead/src/ead-client.c index 54d8b13..6d7e07d 100644 --- a/package/network/services/ead/src/ead-client.c +++ b/package/network/services/ead/src/ead-client.c @@ -67,7 +67,7 @@ static uint16_t sid = 0; static void set_nonblock(int enable) { - if (enable == !!(sockflags O_NONBLOCK)); + if (enable == !!(sockflags O_NONBLOCK)) return; sockflags ^= O_NONBLOCK; -- 1.8.3.1 ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
[OpenWrt-Devel] [PATCH 7/7] firmware-utils: check_magic() in buffalo-lib.c always return 0
spotted with cppcheck Signed-off-by: Etienne CHAMPETIER etienne.champet...@free.fr --- tools/firmware-utils/src/buffalo-lib.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/firmware-utils/src/buffalo-lib.c b/tools/firmware-utils/src/buffalo-lib.c index 29aee9f..add3a7e 100644 --- a/tools/firmware-utils/src/buffalo-lib.c +++ b/tools/firmware-utils/src/buffalo-lib.c @@ -249,10 +249,10 @@ static uint32_t get_be32(void *data) static int check_magic(void *magic) { - if (!memcmp(start, magic, ENC_MAGIC_LEN)); + if (!memcmp(start, magic, ENC_MAGIC_LEN)) return 0; - if (!memcmp(asar1, magic, ENC_MAGIC_LEN)); + if (!memcmp(asar1, magic, ENC_MAGIC_LEN)) return 0; return -1; -- 1.8.3.1 ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
[OpenWrt-Devel] tl-wr1043nd-v2
Hi, I have noticed that the trunk already supports v2 hardware of TP-Link's TL WR-1043ND router, but attitude adjustment does not. My question is which patches are the ones responsible for it and whether it is possible/reasonable to backport them? Cheers, Daniel signature.asc Description: OpenPGP digital signature ___ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel