Go to file
John Crispin 590b855c26 scripts/feeds: handle missing/broken feeds better
pts/feeds update -a" can fail rather silently for feeds using git, as
the script does not pause when updating a feed fails. Instead it prints the
error message and calmly continues to the next feed. It is very easy to
overlook update errors with the feeds updated first, as their text scrolls
rapidly away from the screen.

This behaviour has not been a big problem with svn feeds, as svn update stops
with a conflict message and interactively forces the user to resolve or
postpone the conflict. In any case the svn error is noticed by the user.

Majority of the feeds use now git, so this silent failure can affect users
doing private builds in an increasing amount.

Below is an example of update failing and script continuing:

perus@v1404:/Openwrt/barrier$ ./scripts/feeds update -a
Updating feed 'packages' from
'https://github.com/openwrt/packages.git;for-14.07' ...
remote: Counting objects: 17, done.
remote: Compressing objects: 100% (15/15), done.
remote: Total 17 (delta 10), reused 8 (delta 1)
Unpacking objects: 100% (17/17), done.
 From https://github.com/openwrt/packages
62031da..dc26009  for-14.07  -> origin/for-14.07
Updating 62031da..dc26009
error: Your local changes to the following files would be overwritten by merge:
utils/collectd/Makefile
Please, commit your changes or stash them before you can merge.
Aborting
failed.
Updating feed 'luci' from 'http://git.openwrt.org/project/luci.git;luci-0.12' ...
Already up-to-date.
Create index file './feeds/luci.index'
Updating feed 'routing' from
'https://github.com/openwrt-routing/packages.git;for-14.07' ...
...

The script prints "failed.", but does not break the updating process. The
"update_feed" function returns an error code 1, but that value is not checked
in the "update" function, which continues to the next feed.
Return 1 as error:
​https://dev.openwrt.org/browser/trunk/scripts/feeds#L547
Call to update_feed without any error monitoring:
​https://dev.openwrt.org/browser/trunk/scripts/feeds#L585

The included patch makes the feeds script to stop updating after failing to
update a feed.

The script continues to the refresh_config step despite a possible failure in
updating, so the stopping action just prevents the other feeds from updating
and makes the error more clearly visible.

Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>

SVN-Revision: 42891
2014-10-13 19:41:27 +00:00
config Kconfig: Fix missing help text in DEVEL config menu 2014-09-13 20:27:52 +00:00
docs docs: update remaining references to functions.sh 2012-12-20 15:29:33 +00:00
include image.mk: remove legacy target rules 2014-10-12 15:01:08 +00:00
package fstools: update to latest git HEAD 2014-10-13 19:41:16 +00:00
scripts scripts/feeds: handle missing/broken feeds better 2014-10-13 19:41:27 +00:00
target brcm47xx: image: create initramfs TRX nodictionary images 2014-10-13 05:53:33 +00:00
toolchain gcc: remove version 4.8.0 2014-10-05 18:40:43 +00:00
tools tools/mtd-utils: fix a segfault in parsing the device table 2014-10-12 15:00:15 +00:00
.gitattributes add .gitattributes to prevent the git autocrlf option from messing with CRLF/LF in files 2012-05-08 13:30:49 +00:00
.gitignore add git-src to .gitignore 2014-01-12 12:06:39 +00:00
BSDmakefile
Config.in move menuconfig options into separate files 2013-11-22 14:30:40 +00:00
feeds.conf.default feeds: switch LuCI to Github repo 2014-10-09 21:27:26 +00:00
LICENSE
Makefile build: remove duplicate variable definitions 2014-03-21 15:54:11 +00:00
README Add 'subversion' build dependency to README 2014-08-31 12:06:32 +00:00
rules.mk build: override hardcoded paths to bison and m4 to make the SDK more relocatable 2014-08-26 12:15:50 +00:00

This is the buildsystem for the OpenWrt Linux distribution.

Please use "make menuconfig" to configure your appreciated
configuration for the toolchain and firmware.

You need to have installed gcc, binutils, bzip2, flex, python, perl, make,
find, grep, diff, unzip, gawk, getopt, subversion, libz-dev and libc headers.

Run "./scripts/feeds update -a" to get all the latest package definitions
defined in feeds.conf / feeds.conf.default respectively
and "./scripts/feeds install -a" to install symlinks of all of them into
package/feeds/.

Use "make menuconfig" to configure your image.

Simply running "make" will build your firmware.
It will download all sources, build the cross-compile toolchain, 
the kernel and all choosen applications.

You can use "scripts/flashing/flash.sh" for remotely updating your embedded
system via tftp.

The OpenWrt system is documented in docs/. You will need a LaTeX distribution
and the tex4ht package to build the documentation. Type "make -C docs/" to build it.

To build your own firmware you need to have access to a Linux, BSD or MacOSX system
(case-sensitive filesystem required). Cygwin will not be supported because of
the lack of case sensitiveness in the file system.


Sunshine!
	Your OpenWrt Project
	http://openwrt.org