Commit Graph

44 Commits

Author SHA1 Message Date
Rafał Miłecki 1c510fe298 base-files: validate firmware for compatibility with backup
This allows platform code to check if firmware image can be used with
preserving a backup. It may be used e.g. when installing vendor
firmwares that won't restore appended backup archive.

Suggested-by: Luis Araneda <luaraneda@gmail.com>
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2019-09-08 09:10:30 +02:00
Rafał Miłecki f522047958 base-files: use JSON for storing firmware validation info
So far firmware validation result was binary limited: it was either
successful or not. That meant various limitations, e.g.:
1) Lack of proper feedback on validation problems
2) No way of marking firmware as totally broken (impossible to install)

This change introduces JSON for storing detailed validation info. It
provides a list of performed validation tests and their results. It
allows marking firmware as non-forceable (broken image that can't be
even forced to install).
Example:
{
        "tests": {
                "fwtool_signature": true,
                "fwtool_device_match": true
        },
        "valid": true,
        "forceable": true
}

Implementation is based on *internal* check_image bash script that:
1) Uses existing validation functions
2) Provides helpers for setting extra validation info

This allows e.g. platform_check_image() to call notify_check_broken()
when needed & prevent user from bricking a device.

Right now the new JSON info is used by /sbin/sysupgrade only. It still
doesn't make use of "forceable" as that is planned for later
development.

Further plans for this feature are:
1) Expose firmware validation using some new ubus method
2) Move validation step from /sbin/sysupgrade into "sysupgrade" ubus
   method so:
   a) It's possible to safely sysupgrade using ubus only
   b) /sbin/sysupgrade can be more like just a CLI

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
2019-08-30 08:34:10 +02:00
Bjørn Mork 8a34a54b6a base-files: use OPENWRT prefix for os-release variables
Just stumbled across this LEDE legacy, without finding any real reason
to keep it.  There is a single LEDE_DEVICE_MANUFACTURER_URL dependency
in the luci feed repo which needs to be syncronized.

Signed-off-by: Bjørn Mork <bjorn@mork.no>
[re-added missing commit message]
Signed-off-by: Petr Štetiar <ynezz@true.cz>
2019-06-26 07:00:04 +02:00
Michael Heimpold d6ac8ca76c base-files: fix several bashisms
For equality test a simple = is sufficient, the == is
usually disregarded as bashism.

Signed-off-by: Michael Heimpold <mhei@heimpold.de>
2018-12-05 22:16:52 +01:00
Mathias Kresin 52a9edb1bf base-files: add menuconfig option for HOME_URL
Add a menuconfig option to set the HOME_URL exposed in
/usr/lib/os-release independent from the
LEDE_DEVICE_MANUFACTURER_URL.

Fixes: FS#1123

Signed-off-by: Mathias Kresin <dev@kresin.me>
2018-06-27 08:40:34 +02:00
Matthias Schiffer d573b1287e
base-files: remove remaining uses of %N, and drop VERSION_NICK config symbol
Fixes d23e1e1e1a "merge: properly remove %n / %N references"

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
2017-12-09 23:27:41 +01:00
Florian Eckert c31f0421ce base-files: suppress uci not found output in login.sh
Fix "uci: Entry not found" output if "ttylogin" is not set in
"etc/config/system"

Signed-off-by: Florian Eckert <fe@dev.tdt.de>
2017-08-04 23:11:19 +02:00
Matthias Schiffer b9a408c2b4
base-files: add ARCH_PACKAGES to openwrt_release and os-release
Knowing the package architecture at runtime can be useful, e.g. to
configure opkg repository URLs. The value of ARCH_PACKAGES ("%A" in
VERSION_SED) as added to openwrt_release (as DISTRIB_ARCH) and os-release
(as LEDE_ARCH).

Signed-off-by: Matthias Schiffer <mschiffer@universe-factory.net>
2017-01-16 13:29:47 +01:00
Jo-Philipp Wich 5f3c96c285 build: adjust version number handling
Move the revision info to the VERSION_CODE variable and default VERSION_NUMBER
to CURRENT for master branch builds.

Also introduce a new menuconfig option CONFIG_VERSION_CODE which allows users
to override the revision value put into VERSION_CODE and adjust the template
files used by the base-files package to accomodate for the changed semantics.

While we're at it, also adjust the various URLs to match the current web site.

After this commit, the relevent files will look like the examples given below:

    # cat /etc/openwrt_version
    r2398+1

    # cat /etc/openwrt_release
    DISTRIB_ID='LEDE'
    DISTRIB_RELEASE='CURRENT'
    DISTRIB_REVISION='r2398+1'
    DISTRIB_CODENAME='reboot'
    DISTRIB_TARGET='x86/64'
    DISTRIB_DESCRIPTION='LEDE Reboot CURRENT r2398+1'
    DISTRIB_TAINTS='no-all override'

    # cat /usr/lib/os-release
    NAME="LEDE"
    VERSION="CURRENT, Reboot"
    ID="lede"
    ID_LIKE="lede openwrt"
    PRETTY_NAME="LEDE Reboot CURRENT"
    VERSION_ID="current"
    HOME_URL="http://lede-project.org/"
    BUG_URL="http://bugs.lede-project.org/"
    SUPPORT_URL="http://forum.lede-project.org/"
    BUILD_ID="r2398+1"
    LEDE_BOARD="x86/64"
    LEDE_TAINTS="no-all override"
    LEDE_DEVICE_MANUFACTURER="LEDE"
    LEDE_DEVICE_MANUFACTURER_URL="http://lede-project.org/"
    LEDE_DEVICE_PRODUCT="Generic"
    LEDE_DEVICE_REVISION="v0"
    LEDE_RELEASE="LEDE Reboot CURRENT r2398+1"

On a release branch, those files would look like:

    # cat /etc/openwrt_version
    r2399

    # cat /etc/openwrt_release
    DISTRIB_ID='LEDE'
    DISTRIB_RELEASE='16.12-CURRENT'
    DISTRIB_REVISION='r2399'
    DISTRIB_CODENAME='test_release'
    DISTRIB_TARGET='x86/64'
    DISTRIB_DESCRIPTION='LEDE Test Release 16.12-CURRENT r2399'
    DISTRIB_TAINTS='no-all override'

    # cat /usr/lib/os-release
    NAME="LEDE"
    VERSION="16.12-CURRENT, Test Release"
    ID="lede"
    ID_LIKE="lede openwrt"
    PRETTY_NAME="LEDE Test Release 16.12-CURRENT"
    VERSION_ID="16.12-current"
    HOME_URL="http://lede-project.org/"
    BUG_URL="http://bugs.lede-project.org/"
    SUPPORT_URL="http://forum.lede-project.org/"
    BUILD_ID="r2399"
    LEDE_BOARD="x86/64"
    LEDE_TAINTS="no-all override"
    LEDE_DEVICE_MANUFACTURER="LEDE"
    LEDE_DEVICE_MANUFACTURER_URL="http://lede-project.org/"
    LEDE_DEVICE_PRODUCT="Generic"
    LEDE_DEVICE_REVISION="v0"
    LEDE_RELEASE="LEDE Test Release 16.12-CURRENT r2399"

On a release tag, those files would look like:

    # cat /etc/openwrt_version
    r2500

    # cat /etc/openwrt_release
    DISTRIB_ID='LEDE'
    DISTRIB_RELEASE='17.02.1'
    DISTRIB_REVISION='r2500'
    DISTRIB_CODENAME='mighty_unicorn'
    DISTRIB_TARGET='x86/64'
    DISTRIB_DESCRIPTION='LEDE Mighty Unicorn 17.02.1 r2500'
    DISTRIB_TAINTS='no-all override'

    # cat /usr/lib/os-release
    NAME="LEDE"
    VERSION="17.02.1, Mighty Unicorn"
    ID="lede"
    ID_LIKE="lede openwrt"
    PRETTY_NAME="LEDE Mighty Unicorn 17.02.1"
    VERSION_ID="17.02.1"
    HOME_URL="http://lede-project.org/"
    BUG_URL="http://bugs.lede-project.org/"
    SUPPORT_URL="http://forum.lede-project.org/"
    BUILD_ID="r2500"
    LEDE_BOARD="x86/64"
    LEDE_TAINTS="no-all override"
    LEDE_DEVICE_MANUFACTURER="LEDE"
    LEDE_DEVICE_MANUFACTURER_URL="http://lede-project.org/"
    LEDE_DEVICE_PRODUCT="Generic"
    LEDE_DEVICE_REVISION="v0"
    LEDE_RELEASE="LEDE Mighty Unicorn 17.02.1 r2500"

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
Acked-by: Felix Fietkau <nbd@nbd.name>
2016-12-02 16:02:02 +01:00
Daniel Dickinson f954f4337b base-files: Add standard os-release file
/etc/os-release is the standard distribution release information
file, therefore add it (and image configuration options for
fields not previously present in LEDE).  Once it is deemed
reasonable the non-standard openwrt_release, openwrt_version,
and device_info files could be removed (that is with this patch
we consider them deprecated in favour of the standard file).

Signed-off-by: Daniel Dickinson <lede@daniel.thecshore.com>
2016-06-24 13:52:53 +02:00
John Crispin dc92917409 image / basefiles: make console password configurable
Signed-off-by: Daniel Dickinson <openwrt@daniel.thecshore.com>
Signed-off-by: John Crispin <john@phrozen.org>
2016-04-18 21:53:07 +02:00
Felix Fietkau c2b5767572 base-files: move network related scripts to a separate package to make the transition to netifd easier
SVN-Revision: 28495
2011-10-20 15:01:06 +00:00
Felix Fietkau 803e9ceb90 base-files: /usr/lib/common.awk is only used by /bin/ipcalc.sh, move the code there
SVN-Revision: 25495
2011-02-13 01:44:57 +00:00
Jo-Philipp Wich 4e34fc521c base-files: derive lease_acquired dhcp state var from /proc/uptime
SVN-Revision: 25452
2011-02-10 20:05:05 +00:00
Jo-Philipp Wich 3bd7985a0b base-files: the busybox update to v1.15.3 completely broke udhcpc route option handling, repair default.script to work with the new format (#6435)
SVN-Revision: 24778
2010-12-22 07:07:15 +00:00
Jo-Philipp Wich d0ab35c115 base-file: add metric option for static and dhcp protos, this simplifies the management of multiple default routes
SVN-Revision: 24020
2010-11-17 19:11:50 +00:00
Jo-Philipp Wich 0fda5f7507 base-files: utilize uci_get_state to read the previous dhcp router address in udhcpc default script. The setup_switch() procedure provided by swconfig calls config_load() during network restart and thus confuses udhcpc's uci state keeping resulting in a missing default route on each second network restart. Bypass the cached state vars and query uci directly to make the script immune against unwanted runtime changes.
SVN-Revision: 23211
2010-10-04 00:07:07 +00:00
Jo-Philipp Wich 84b7b812f3 base-files: cached state vars after scan_interfaces might be out of sync when binding dhcp leases, this could lead to an unconfigured wan interface in certain circumstances. Replace config_get calls with uci_get_state
SVN-Revision: 23091
2010-09-19 15:04:08 +00:00
Jo-Philipp Wich 261d41a906 base-files: - use add_dns() and remove_dns() for when changing resolv.conf.auto for static or dhcp interfaces - force 0644 permissions when creating resolv.conf.auto, fixes dnsmasq permissions denied problem with pppd interfaces - revert dns servers in /sbin/ifdown - bump package revision
SVN-Revision: 21638
2010-05-30 18:23:43 +00:00
Jo-Philipp Wich ea06a67eac base-files: use uci_get() wrapper (#7312)
SVN-Revision: 21490
2010-05-17 19:34:08 +00:00
Jo-Philipp Wich 250b52f673 base-files: revert dhcp state information on ifdown and restore pre-r19530 behaviour in udhcp default.script
SVN-Revision: 19597
2010-02-12 02:06:57 +00:00
Jo-Philipp Wich 520ea8e5f9 base-files: fix udhcpc address acquisition on network restart (patch by Scott Dudley)
SVN-Revision: 19530
2010-02-05 07:57:07 +00:00
Felix Fietkau e69a6f1b82 base-files: remove obsolete stuff from common.awk
SVN-Revision: 18109
2009-10-20 21:45:57 +00:00
Felix Fietkau 91d40a14af Revert "fix nonhotpluggable networks not being brought up. Closes #2781" (r17527) until we've solved the race conditions it creates
SVN-Revision: 17544
2009-09-09 00:16:55 +00:00
Travis Kemen 27915ac778 fix nonhotpluggable networks not being brought up. Closes #2781
SVN-Revision: 17527
2009-09-06 17:02:14 +00:00
Vasilis Tsiligiannis e5b097425d udhcpc: Pass all events to udhcpc.user
Petitboot and maybe other apps need to know when
the dhcp lease is lost.  Move the udhcpc.user call
to send it all udhcpc events.

Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>

SVN-Revision: 16815
2009-07-12 15:38:04 +00:00
Felix Fietkau 7a576b004e allow udhcpc to work properly for interfaces that are not configured through uci
SVN-Revision: 16664
2009-07-03 22:12:40 +00:00
Felix Fietkau d196e4087e udhcpc: add cidr routes support (patch from #5299)
SVN-Revision: 16433
2009-06-13 14:42:47 +00:00
Jo-Philipp Wich 2ee67f7272 base-files: fixup resolv.conf check in udhcpc script
SVN-Revision: 15903
2009-05-17 17:56:26 +00:00
Jo-Philipp Wich 33c38fba27 base-files: - restore device, ifname and aliases state in dhcp script - make sure that resolv.conf.tmp is written once at least for statically configured dns
SVN-Revision: 15753
2009-05-10 15:53:02 +00:00
Jo-Philipp Wich ca609a2431 base-files: replace udhcpc script with an improved version
SVN-Revision: 15635
2009-05-06 12:51:12 +00:00
Felix Fietkau 6a50bf433a udhcpc: run dhcp hotplug events after dns has been set
SVN-Revision: 15095
2009-04-04 07:07:25 +00:00
Jo-Philipp Wich 2d672ef2f5 base-files: allow option dns to override dhcp assigned dns servers
SVN-Revision: 14562
2009-02-19 05:27:36 +00:00
Felix Fietkau 35b92f0c99 don't emit ifup hotplug events on dhcp renew - use a new iface hotplug type 'update' instead; fixes #3906
SVN-Revision: 12671
2008-09-23 17:29:22 +00:00
Felix Fietkau 0cf1a58282 Here comes the new UCI. Enjoy :)
SVN-Revision: 10367
2008-02-03 06:48:15 +00:00
Felix Fietkau f7ff1d6d0f fix a few issues with dynamically assigned interfaces
SVN-Revision: 8765
2007-09-12 17:02:34 +00:00
Felix Fietkau 1b4380b8ed avoid a race condition that might lead to dnsmasq reading an empty resolv.conf (#2007)
SVN-Revision: 7952
2007-07-12 21:59:38 +00:00
Felix Fietkau 4f16e9cc3e keep track of the network interface states (stored in uci format in /var/state/network, overlay over /etc/config/network)
SVN-Revision: 7643
2007-06-16 00:01:33 +00:00
Mike Baker 924cd1ffc9 fix typo
SVN-Revision: 7244
2007-05-15 06:14:35 +00:00
Mike Baker 3e112cbedb cleaner version of the udhcp script
SVN-Revision: 7222
2007-05-14 08:37:57 +00:00
Florian Fainelli 3e9c0379ba Do not suppress routes if the router received on renew is the same (#138)
SVN-Revision: 7215
2007-05-13 21:58:08 +00:00
Felix Fietkau a44c286fdb nuke mdev and replace it with hotplug2 :)
SVN-Revision: 6512
2007-03-04 20:31:53 +00:00
Felix Fietkau 656412d1a3 Forward port whiterussian resolv.conf changes /etc/resolv.conf links to /tmp/resolv.conf /tmp/resolv.conf links to /tmp/resolv.conf.auto by default (which is where the ISPs nameserver is in) When dnsmasq starts, it replaces /tmp/resolv.conf with a file pointing to 127.0.0.1
SVN-Revision: 6043
2007-01-08 21:33:53 +00:00
Felix Fietkau 59a06c71cb rename default/ to files/
SVN-Revision: 5622
2006-11-22 23:30:57 +00:00