summaryrefslogtreecommitdiffstats
path: root/package/swupdate
Commit message (Collapse)AuthorAgeFilesLines
* package/swupdate: fix build issue with some toolchainsJörg Krause2015-11-022-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add patch from upstream to fix build issue with some toolchains. For some toolchains used in Buildroot (x86_64 and mips64) partial linking using 'ld' directly doesn't work well, as the 'ld' default emulation may not necessarily be the correct one. Note, that the default emulation depends upon how the linker was configured at build time. The leads to different kind of build errors, like: * /usr/bin/i686-pc-linux-gnu-ld: Relocatable linking with relocations from format elf64-x86-64 (core/swupdate.o) to format elf32-i386 (core/built-in.o) is not supported. * /usr/bin/mips-linux-gnu-ld: handlers/raw_handler.o: endianness incompatible with that of the selected emulation * /usr/bin/mips64el-linux-ld: core/swupdate.o: ABI is incompatible with that of the selected Linking with gcc will pass all the appropriate linker flags to the linker. '-nostdlib' has to be added to ldflags-y to link properly without pulling in GCC libs during partial linking. Note, for Kbuild ldflags-y is prefered over the deprecated EXTRA_LDFLAGS. Build config for x86_64: BR2_x86_64=y BR2_x86_corei7=y BR2_TOOLCHAIN_EXTERNAL=y BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_X86_201209=y Runtime test: $ output/build/swupdate-2015.07/swupdate -v Swupdate v2015.07.0 Licensed under GPLv2. See source distribution for detailed copyright notices. Registered handlers: rawfile raw Note, that a previous patch [1] had to be reverted [2] because ld does not take gcc's constructor functions into account and so none of the handlers have been registered at runtime. Fixes: http://autobuild.buildroot.net/results/de9/de920298075d32f3de83a0cfb7417846eb833425/ http://autobuild.buildroot.net/results/975/975915aa33005806e78260bae385cd4b3e359ca8/ http://autobuild.buildroot.net/results/c54/c54e7a2ea353d95d41a1e966de0dffa7b6ac432e/ http://autobuild.buildroot.net/results/019/0198596ebfed05ab86552b628da2274d55bf42ae/ and many more. [1] https://patchwork.ozlabs.org/patch/532542/ [2] https://patchwork.ozlabs.org/patch/535408/ Cc: Bjørn Forsman <bjorn.forsman@gmail.com> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Yann E. MORIN <yann.morin.1998@free.fr> Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* Revert "package/swupdate: add patch to fix build issue with some toolchains"Bjørn Forsman2015-10-262-2/+0
| | | | | | | | | | | | | | | | This patch caused an unfortunate regression that prevents any handlers from being registered (runtime issue). This means swupdate cannot perform any update. Upstream has reverted it. See discussion: https://groups.google.com/d/msg/swupdate/oVIhJmYPT8A/eq3uZvYVDQAJ This reverts commit a8cc6eeec5a665db5689083312beef14a9afbafa. Signed-off-by: Bjørn Forsman <bjorn.forsman@gmail.com> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Acked-by: Jörg Krause <joerg.krause@embedded.rocks> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* package/swupdate: add patch to fix link error for CONFIG_UBOOT and missing libzJörg Krause2015-10-192-1/+4
| | | | | | | | | | | | | | | | | CONFIG_UBOOT needs libz [1]. So CONFIG_UBOUT mustn't be available when HAVE_ZLIB=n. Add patch from upstream to fix a link error for CONFIG_UBOOT and missing libz. Note, that this link error does not affect the default config provided by Buildroot. [1] https://github.com/sbabic/swupdate/commit/cf495e23ad117f4cae9c429e80714fe9c18f2d6a [Thomas: use a single <pkg>_PATCH variable.] Reported-by: Romain Naour <romain.naour@openwide.fr> Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* package/swupdate: add patch to fix build issue with some toolchainsJörg Krause2015-10-192-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some toolchains used in Buildroot (x86-64 and mips64) have a problem to compile a set of object files into one object file as it is done for the `builtin-target` declared in swupdate's Kbuild Makefile.build. This target collects all object files from every subdirectory declared in `objs-dir` and compiles them into a single object file named `build-in.o` using the linker ld. For the addressed toolchains the default emulation of ld is not the correct one leading to different kind of relocation errors: /usr/bin/i686-pc-linux-gnu-ld: Relocatable linking with relocations from format elf64-x86-64 (core/swupdate.o) to format elf32-i386 (core/built-in.o) is not supported. or /usr/bin/mips-linux-gnu-ld: handlers/raw_handler.o: endianness incompatible with that of the selected emulation or /usr/bin/mips64el-linux-ld: core/swupdate.o: ABI is incompatible with that of the selected As there is no need to have single object file `built-in.o` to be compiled for the subdirectories core and handlers we can easily allow swupdate to be built with these toolchains by compiling the source files from core and handlers with the `lib-target` target by assigning them to the `libs-y` variable as it is done for all other subdirectories. The `lib-target` compiles a set of object files into one archive file. With this target we avoid using the ld linker and use the ar archiver instead. Add a patch from upstream to fix a whole bunch of autobuild errors. Fixes: http://autobuild.buildroot.net/results/de9/de920298075d32f3de83a0cfb7417846eb833425/ http://autobuild.buildroot.net/results/975/975915aa33005806e78260bae385cd4b3e359ca8/ http://autobuild.buildroot.net/results/c54/c54e7a2ea353d95d41a1e966de0dffa7b6ac432e/ http://autobuild.buildroot.net/results/019/0198596ebfed05ab86552b628da2274d55bf42ae/ and many more. Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* package/swupdate: add hash fileJörg Krause2015-10-191-0/+2
| | | | | Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* swupdate: fix description typoBaruch Siach2015-10-091-1/+1
| | | | | Signed-off-by: Baruch Siach <baruch@tkos.co.il> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
* swupdate: provide sensible error message if no config file is specifiedPeter Korsgaard2015-10-031-0/+8
| | | | | | Similar to how we do it for the other kconfig packages. Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* package/swupdate: new packageJörg Krause2015-10-033-0/+223
swupdate provides a reliable way to update the software on an embedded system. Note that swupdates has a reworked Kbuild/Kconfig system. It has now support for the 'option' and 'env' symbols as well for the 'savedefconfig' target. This makes dependency handling much easier. We're now able to pass which dependencies are available through the environment, as suggested by Arnout Vandecappelle [1]. In previous version of this patch we had a configuration setting where all package dependencies except Lua were selected by default. This has changed with v7 as we are now able to pass dependencies to the swupdate build system through the environment. For useful operation swupdate requires a parser which depends by default on libconfig, but can be replaced by a json-c or Lua parser. To provide a reasonable firmware update system we enable the embedded webserver based on mongoose (also see notes about mongoose below), a parser as stated above and a handler for raw NAND or NOR flash. The user can modify this configuration by selecting the appropriate dependencies before running `make swupdate-menuconfig`. The help text contains information about which packages may be of interest for the user. The embedded web server requires a website for proper operation. We install the included website by default, however the user may choose to install a custom website on the post-build scripts. Note, swupdate includes some old versions of mongoose and lsqlite3: - mongoose is version 3.8 from year 2013 - lsqlite3 is version 0.8 from year 2011 Currently, swupdate does not provide a way to replace these with external packages. This patch is based on a WIP version submitted by Romain Naour, commented by Arnout Vandecappelle [2]. [1] http://lists.busybox.net/pipermail/buildroot/2015-March/122981.html [2] https://patchwork.ozlabs.org/patch/401270/ Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks> Cc: Romain Naour <romain.naour@openwide.fr> Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Cc: Arnout Vandecappelle <arnout@mind.be> Cc: Yann E. MORIN <yann.morin.1998@free.fr> Tested-by: Mike Williams <mike@mikebwilliams.com> Reviewed-by: Romain Naour <romain.naour@openwide.fr> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
OpenPOWER on IntegriCloud