Go to file
Tony Ambardar 484117b478 base-files: fix postinstall uci-defaults removal
Commit 7f694582 introduced a bug where default_postinst() often fails to
remove a uci-defaults script after application, leaving it to run again
after a reboot.
(Note: commit 7f694582 also introduced FS#1021, now fixed by 73c745f6)

The subtle problem arises from the shell logical chain:
[ -f "$i" ] && . "$i" && rm -f "$i"

Most uci-defaults scripts contain a terminal 'exit 0' statement which,
when sourced, results in the logic chain exiting before executing 'rm -f'.
This was observed while testing upgrades of 'luci-app-sqm'.

The solution is to wrap the shell sourcing in a subshell relative to the
command 'rm -f':
( [ -f "$i" ] && . "$i" ) && rm -f "$i"

Revert to using 'grep' to prefilter the list of entries from the control
file, which yields the full path of uci-defaults scripts. This allows
keeping the existence check, directory change and script sourcing inside
the subshell, with the script removal correctly outside.

This approach avoids adding a second subshell only around the "." (source)
command. The change also preserves the fix FS#1021, since the full path is
used to source the script, which is POSIX-portable irrespective of PATH
variable or reference to the CWD.

Run Tested on: LEDE 17.01.4 running ar71xx, while tracing installation of
package luci-app-sqm with its associated /etc/uci-defaults/luci-sqm file.

Signed-off-by: Tony Ambardar <itugrok@yahoo.com>
(backported from 4097ab6a97)
2019-01-22 07:22:59 +01:00
.github Add Issue submission template (redirect to bugs.lede-project.org) 2016-09-01 09:01:04 -04:00
config config: make CONFIG_ALL_* select other CONIFG_ALL_* options 2017-12-13 16:29:22 +01:00
include kernel: bump 4.4 to 4.4.167 2018-12-18 15:14:39 +01:00
package base-files: fix postinstall uci-defaults removal 2019-01-22 07:22:59 +01:00
scripts scripts: bundle-libraries: fix logic flaw 2018-08-30 13:11:42 +02:00
target cns3xxx: use actual size reads for PCIe 2019-01-15 15:51:19 +01:00
toolchain gcc: gcc 6.3.0 fix comparison between pointer and integer 2018-04-27 08:54:15 +02:00
tools tools/e2fsprogs: update to 1.44.1 2018-08-21 20:42:54 +02: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 gitignore: add /overlay 2017-01-15 18:16:29 +01:00
BSDmakefile add missing copyright header 2007-02-26 01:05:09 +00:00
Config.in branding: add LEDE branding 2016-03-24 22:40:13 +01:00
LICENSE finally move buildroot-ng to trunk 2016-03-20 17:29:15 +01:00
Makefile Makefile: ensure that BIN_DIR exists for diffconfig 2017-01-08 18:50:00 +01:00
README README: Update project README 2016-05-12 03:29:36 +02:00
feeds.conf.default LEDE v17.01.6: revert to branch defaults 2018-09-02 15:16:13 +02:00
rules.mk rules.mk: fix syntax error 2018-11-29 12:35:16 +01:00

README

This is the buildsystem for the LEDE Linux distribution.

Please use "make menuconfig" to choose your preferred
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.

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 LEDE Community
	http://www.lede-project.org