Compare commits

...

15 Commits

Author SHA1 Message Date
Peter Korsgaard
15ace1a845 Update for 2013.02
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-02-28 22:48:28 +01:00
Stephan Hoffmann
6dc0596274 Manual: add empty line after header in .mk files
Signed-off-by: Stephan Hoffmann <sho@relinux.de>
Acked-by: Samuel Martin <s.martin49@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-02-28 22:37:58 +01:00
Samuel Martin
9bdf69b49d working-with: board support
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-02-28 22:37:49 +01:00
Samuel Martin
0ccfbb5db9 manual: misc. post-{build, image} scripts fixes
* update post-build scripts mechanism that now support several scripts
* fix formatting

Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-02-28 22:37:44 +01:00
Samuel Martin
7a26f2f663 manual: minor fix in patch-policy.txt
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-02-28 22:37:12 +01:00
Samuel Martin
5b02e6cad8 manual: fix cross-refs
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-02-28 22:02:53 +01:00
Peter Korsgaard
0e0e42176d libgtk2: warn that directfb backend is deprecated
And will go away in the future, as discussed here:

http://lists.busybox.net/pipermail/buildroot/2013-February/067977.html

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-02-28 13:20:47 +01:00
Peter Korsgaard
e4ee2811e3 busybox: 1.21.0 platform fix-on-fix
The unxz hunk was missing.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-02-27 19:23:58 +01:00
Peter Korsgaard
44efedbec4 busybox: add 1.21.0 xz fix
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-02-27 18:55:02 +01:00
Peter Korsgaard
d8024d2d87 busybox: 1.21.1 fix for move_to_unaligned16()
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-02-27 15:57:37 +01:00
Gustavo Zacarias
bd08eeaffa libupnp: requires threads
Fixes:
http://autobuild.buildroot.net/results/ac5a18a6241d36a751cce1867c4da63047eafbaa/

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-02-27 11:56:46 +01:00
Peter Korsgaard
9403f92867 quota: needs mmu
Fixes http://autobuild.buildroot.net/results/85e3c73d1c0b5c6843d65a487203b20f62bf3075

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-02-27 09:22:59 +01:00
gilles.talis@gmail.com
ba5ba0a279 flashbench: force gnu99 dialect on sh2a
Fixes:
http://autobuild.buildroot.org/results/33880036054c39cb04dad71bc8c0a9eece16fac6

CodeSourcery toolchains for sh2a only provide LLONG_MAX when
used with the gnu99 dialect.

Signed-off-by: Gilles Talis <gilles.talis@gmail.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-02-27 08:45:44 +01:00
Peter Korsgaard
c264e38fce collectd: don't build with -Werror
Fixes http://autobuild.buildroot.net/results/09659472f504a364590727a05ac900108ed027b4

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-02-27 00:01:36 +01:00
Peter Korsgaard
a84432044e mii-diag: fix race condition
The mii-diag buildsystem doesn't correctly encode the needed
dependencies, so the install step can race against the mii-diag-udeb
(through all) to either cause mii-diag to be built for the host or
not be available when 'install' is executed.

Work around it by explicitly calling the needed steps and not building
the (unused) udeb version at all.

Fixes http://autobuild.buildroot.net/results/4825d267025c74c522077f84330b47f1110315fa

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2013-02-26 23:47:19 +01:00
22 changed files with 269 additions and 107 deletions

View File

@@ -1,3 +1,10 @@
2013.02, Released February 28th, 2013:
Misc manual updates.
Updated/fixed packages: busybox, collectd, flashbench,
libgtk2, libupnp, mii-diag, quota
2013.02-rc3, Released February 26th, 2013
Minor fixes.

View File

@@ -24,7 +24,7 @@
#--------------------------------------------------------------
# Set and export the version string
export BR2_VERSION:=2013.02-rc3
export BR2_VERSION:=2013.02
# Check for minimal make version (note: this check will break at make 10.x)
MIN_MAKE_VERSION=3.81

View File

@@ -6,13 +6,13 @@
<p>
The latest stable release is <b>2012.11.1</b>, which can be downloaded
The latest stable release is <b>2013.02</b>, which can be downloaded
here:<p>
<a href="/downloads/buildroot-2012.11.1.tar.gz">buildroot-2012.11.1.tar.gz</a>
<a href="/downloads/buildroot-2013.02.tar.gz">buildroot-2013.02.tar.gz</a>
or
<a href="/downloads/buildroot-2012.11.1.tar.bz2">buildroot-2012.11.1.tar.bz2</a>.
<a href="/downloads/buildroot-2013.02.tar.bz2">buildroot-2013.02.tar.bz2</a>.
<!--
<p>
The latest release candidate is <b>2013.02-rc3</b>, which can be
downloaded here:<p>
@@ -21,7 +21,7 @@ downloaded here:<p>
or
<a href="/downloads/buildroot-2013.02-rc3.tar.bz2">buildroot-2013.02-rc3.tar.bz2</a>.
<p>
-->
This and earlier releases can always be downloaded from
<a href="/downloads/">http://buildroot.net/downloads/</a>.

View File

@@ -18,24 +18,25 @@ package, with an example :
03: # libfoo
04: #
05: #############################################################
06: LIBFOO_VERSION = 1.0
07: LIBFOO_SOURCE = libfoo-$(LIBFOO_VERSION).tar.gz
08: LIBFOO_SITE = http://www.foosoftware.org/download
09: LIBFOO_INSTALL_STAGING = YES
10: LIBFOO_INSTALL_TARGET = NO
11: LIBFOO_CONF_OPT = --disable-shared
12: LIBFOO_DEPENDENCIES = libglib2 host-pkgconf
13:
14: $(eval $(autotools-package))
06:
07: LIBFOO_VERSION = 1.0
08: LIBFOO_SOURCE = libfoo-$(LIBFOO_VERSION).tar.gz
09: LIBFOO_SITE = http://www.foosoftware.org/download
10: LIBFOO_INSTALL_STAGING = YES
11: LIBFOO_INSTALL_TARGET = NO
12: LIBFOO_CONF_OPT = --disable-shared
13: LIBFOO_DEPENDENCIES = libglib2 host-pkgconf
14:
15: $(eval $(autotools-package))
------------------------
On line 6, we declare the version of the package.
On line 7, we declare the version of the package.
On line 7 and 8, we declare the name of the tarball and the location
On line 8 and 9, we declare the name of the tarball and the location
of the tarball on the Web. Buildroot will automatically download the
tarball from this location.
On line 9, we tell Buildroot to install the package to the staging
On line 10, we tell Buildroot to install the package to the staging
directory. The staging directory, located in +output/staging/+
is the directory where all the packages are installed, including their
development files, etc. By default, packages are not installed to the
@@ -45,7 +46,7 @@ other libraries or applications depending on them. Also by default, when
staging installation is enabled, packages are installed in this location
using the +make install+ command.
On line 10, we tell Buildroot to not install the package to the
On line 11, we tell Buildroot to not install the package to the
target directory. This directory contains what will become the root
filesystem running on the target. For purely static libraries, it is
not necessary to install them in the target directory because they will
@@ -53,14 +54,14 @@ not be used at runtime. By default, target installation is enabled; setting
this variable to NO is almost never needed. Also by default, packages are
installed in this location using the +make install+ command.
On line 11, we tell Buildroot to pass a custom configure option, that
On line 12, we tell Buildroot to pass a custom configure option, that
will be passed to the +./configure+ script before configuring
and building the package.
On line 12, we declare our dependencies, so that they are built
On line 13, we declare our dependencies, so that they are built
before the build process of our package starts.
Finally, on line line 14, we invoke the +autotools-package+
Finally, on line line 15, we invoke the +autotools-package+
macro that generates all the Makefile rules that actually allows the
package to be built.

View File

@@ -18,24 +18,25 @@ with an example :
03: # libfoo
04: #
05: #############################################################
06: LIBFOO_VERSION = 1.0
07: LIBFOO_SOURCE = libfoo-$(LIBFOO_VERSION).tar.gz
08: LIBFOO_SITE = http://www.foosoftware.org/download
09: LIBFOO_INSTALL_STAGING = YES
10: LIBFOO_INSTALL_TARGET = NO
11: LIBFOO_CONF_OPT = -DBUILD_DEMOS=ON
12: LIBFOO_DEPENDENCIES = libglib2 host-pkgconf
13:
14: $(eval $(cmake-package))
06:
07: LIBFOO_VERSION = 1.0
08: LIBFOO_SOURCE = libfoo-$(LIBFOO_VERSION).tar.gz
09: LIBFOO_SITE = http://www.foosoftware.org/download
10: LIBFOO_INSTALL_STAGING = YES
11: LIBFOO_INSTALL_TARGET = NO
12: LIBFOO_CONF_OPT = -DBUILD_DEMOS=ON
13: LIBFOO_DEPENDENCIES = libglib2 host-pkgconf
14:
15: $(eval $(cmake-package))
------------------------
On line 6, we declare the version of the package.
On line 7, we declare the version of the package.
On line 7 and 8, we declare the name of the tarball and the location
On line 8 and 9, we declare the name of the tarball and the location
of the tarball on the Web. Buildroot will automatically download the
tarball from this location.
On line 9, we tell Buildroot to install the package to the staging
On line 10, we tell Buildroot to install the package to the staging
directory. The staging directory, located in +output/staging/+
is the directory where all the packages are installed, including their
development files, etc. By default, packages are not installed to the
@@ -45,7 +46,7 @@ other libraries or applications depending on them. Also by default, when
staging installation is enabled, packages are installed in this location
using the +make install+ command.
On line 10, we tell Buildroot to not install the package to the
On line 11, we tell Buildroot to not install the package to the
target directory. This directory contains what will become the root
filesystem running on the target. For purely static libraries, it is
not necessary to install them in the target directory because they will
@@ -53,13 +54,13 @@ not be used at runtime. By default, target installation is enabled; setting
this variable to NO is almost never needed. Also by default, packages are
installed in this location using the +make install+ command.
On line 11, we tell Buildroot to pass custom options to CMake when it is
On line 12, we tell Buildroot to pass custom options to CMake when it is
configuring the package.
On line 12, we declare our dependencies, so that they are built
On line 13, we declare our dependencies, so that they are built
before the build process of our package starts.
Finally, on line line 14, we invoke the +cmake-package+
Finally, on line line 15, we invoke the +cmake-package+
macro that generates all the Makefile rules that actually allows the
package to be built.

View File

@@ -20,42 +20,43 @@ system is based on hand-written Makefiles or shell scripts.
03: # libfoo
04: #
05: #############################################################
06: LIBFOO_VERSION = 1.0
07: LIBFOO_SOURCE = libfoo-$(LIBFOO_VERSION).tar.gz
08: LIBFOO_SITE = http://www.foosoftware.org/download
09: LIBFOO_LICENSE = GPLv3+
10: LIBFOO_LICENSE_FILES = COPYING
11: LIBFOO_INSTALL_STAGING = YES
12: LIBFOO_CONFIG_SCRIPTS = libfoo-config
13: LIBFOO_DEPENDENCIES = host-libaaa libbbb
14:
15: define LIBFOO_BUILD_CMDS
16: $(MAKE) CC="$(TARGET_CC)" LD="$(TARGET_LD)" -C $(@D) all
17: endef
18:
19: define LIBFOO_INSTALL_STAGING_CMDS
20: $(INSTALL) -D -m 0755 $(@D)/libfoo.a $(STAGING_DIR)/usr/lib/libfoo.a
21: $(INSTALL) -D -m 0644 $(@D)/foo.h $(STAGING_DIR)/usr/include/foo.h
22: $(INSTALL) -D -m 0755 $(@D)/libfoo.so* $(STAGING_DIR)/usr/lib
23: endef
24:
25: define LIBFOO_INSTALL_TARGET_CMDS
26: $(INSTALL) -D -m 0755 $(@D)/libfoo.so* $(TARGET_DIR)/usr/lib
27: $(INSTALL) -d -m 0755 $(TARGET_DIR)/etc/foo.d
28: endef
29:
30: define LIBFOO_DEVICES
31: /dev/foo c 666 0 0 42 0 - - -
32: endef
33:
34: define LIBFOO_PERMISSIONS
35: /bin/foo f 4755 0 0 - - - - -
36: endef
37:
38: $(eval $(generic-package))
06:
07: LIBFOO_VERSION = 1.0
08: LIBFOO_SOURCE = libfoo-$(LIBFOO_VERSION).tar.gz
09: LIBFOO_SITE = http://www.foosoftware.org/download
10: LIBFOO_LICENSE = GPLv3+
11: LIBFOO_LICENSE_FILES = COPYING
12: LIBFOO_INSTALL_STAGING = YES
13: LIBFOO_CONFIG_SCRIPTS = libfoo-config
14: LIBFOO_DEPENDENCIES = host-libaaa libbbb
15:
16: define LIBFOO_BUILD_CMDS
17: $(MAKE) CC="$(TARGET_CC)" LD="$(TARGET_LD)" -C $(@D) all
18: endef
19:
20: define LIBFOO_INSTALL_STAGING_CMDS
21: $(INSTALL) -D -m 0755 $(@D)/libfoo.a $(STAGING_DIR)/usr/lib/libfoo.a
22: $(INSTALL) -D -m 0644 $(@D)/foo.h $(STAGING_DIR)/usr/include/foo.h
23: $(INSTALL) -D -m 0755 $(@D)/libfoo.so* $(STAGING_DIR)/usr/lib
24: endef
25:
26: define LIBFOO_INSTALL_TARGET_CMDS
27: $(INSTALL) -D -m 0755 $(@D)/libfoo.so* $(TARGET_DIR)/usr/lib
28: $(INSTALL) -d -m 0755 $(TARGET_DIR)/etc/foo.d
29: endef
30:
31: define LIBFOO_DEVICES
32: /dev/foo c 666 0 0 42 0 - - -
33: endef
34:
35: define LIBFOO_PERMISSIONS
36: /bin/foo f 4755 0 0 - - - - -
37: endef
38:
39: $(eval $(generic-package))
--------------------------------
The Makefile begins on line 6 to 10 with metadata information: the
The Makefile begins on line 7 to 11 with metadata information: the
version of the package (+LIBFOO_VERSION+), the name of the
tarball containing the package (+LIBFOO_SOURCE+) the
Internet location at which the tarball can be downloaded from
@@ -65,13 +66,13 @@ the same prefix, +LIBFOO_+ in this case. This prefix is always the
uppercased version of the package name (see below to understand where
the package name is defined).
On line 11, we specify that this package wants to install something to
On line 12, we specify that this package wants to install something to
the staging space. This is often needed for libraries, since they must
install header files and other development files in the staging space.
This will ensure that the commands listed in the
+LIBFOO_INSTALL_STAGING_CMDS+ variable will be executed.
On line 12, we specify that there is some fixing to be done to some
On line 13, we specify that there is some fixing to be done to some
of the 'libfoo-config' files that were installed during
+LIBFOO_INSTALL_STAGING_CMDS+ phase.
These *-config files are executable shell script files that are
@@ -113,14 +114,14 @@ IMAGEMAGICK_CONFIG_SCRIPTS = \
Magick-config Magick++-config \
MagickCore-config MagickWand-config Wand-config
On line 13, we specify the list of dependencies this package relies
On line 14, we specify the list of dependencies this package relies
on. These dependencies are listed in terms of lower-case package names,
which can be packages for the target (without the +host-+
prefix) or packages for the host (with the +host-+) prefix).
Buildroot will ensure that all these packages are built and installed
'before' the current package starts its configuration.
The rest of the Makefile, lines 14..27, defines what should be done
The rest of the Makefile, lines 16..29, defines what should be done
at the different steps of the package configuration, compilation and
installation.
+LIBFOO_BUILD_CMDS+ tells what steps should be performed to
@@ -133,13 +134,13 @@ All these steps rely on the +$(@D)+ variable, which
contains the directory where the source code of the package has been
extracted.
On line 29..31, we define a device-node file used by this package
On line 31..33, we define a device-node file used by this package
(+LIBFOO_DEVICES+).
On line 33..35, we define the permissions to set to specific files
On line 35..37, we define the permissions to set to specific files
installed by this package (+LIBFOO_PERMISSIONS+).
Finally, on line 37, we call the +generic-package+ function, which
Finally, on line 39, we call the +generic-package+ function, which
generates, according to the variables defined previously, all the
Makefile code necessary to make your package working.

View File

@@ -64,6 +64,7 @@ Type+ option in the +Toolchain+ menu. Once one solution has been
chosen, a number of configuration options appear, they are detailed in
the following sections.
[[internal-toolchain-backend]]
Internal toolchain backend
^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -138,6 +139,7 @@ Drawbacks of this backend:
using the _External toolchain backend_.
* Limited to the _uClibc_ C library.
[[external-toolchain-backend]]
External toolchain backend
^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -240,6 +242,7 @@ Drawbacks of this backend:
fix from the toolchain vendor, unless you build your external
toolchain by yourself using Crosstool-NG.
[[crosstool-ng-toolchain-backend]]
Crosstool-NG toolchain backend
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

View File

@@ -25,18 +25,18 @@ there are a few ways to customize the resulting target filesystem.
directories, +.empty+ files and files ending with +~+ are excluded.
_Among these first 3 methods, this one should be preferred_.
* In the Buildroot configuration, you can specify the path to a
*post-build script*, that gets called 'after' Buildroot builds all the
selected software, but 'before' the rootfs packages are
assembled. The +BR2_ROOTFS_POST_BUILD_SCRIPT+ will allow you to
specify the location of your post-build script. This option can be
* In the Buildroot configuration, you can specify the paths to one or
more *post-build scripts*. These scripts are called in the given order,
'after' Buildroot builds all the selected software, but 'before' the
rootfs images are assembled. The +BR2_ROOTFS_POST_BUILD_SCRIPT+ allows
you to specify the location of your post-build scripts. This option can be
found in the +System configuration+ menu. The destination root
filesystem folder is given as the first argument to this script,
and this script can then be used to remove or modify any file in your
filesystem folder is given as the first argument to these scripts,
and these scripts can then be used to remove or modify any file in your
target filesystem. You should, however, use this feature with care.
Whenever you find that a certain package generates wrong or unneeded
files, you should fix that package rather than work around it with a
post-build cleanup script.
files, you should fix that package rather than work around it with some
post-build cleanup scripts.
You may also use these variables in your post-build script:
- +BUILDROOT_CONFIG+: the path to the Buildroot .config file
- +HOST_DIR+, +STAGING_DIR+, +TARGET_DIR+: see
@@ -55,23 +55,25 @@ there are a few ways to customize the resulting target filesystem.
installation. Note that this method is *not recommended*, as it
duplicates the entire skeleton, which prevents from taking advantage
of the fixes or improvements brought to the default Buildroot
skeleton. The recommended method is to use the _post-build script_
skeleton. The recommended method is to use the _post-build scripts_
mechanism described in the previous item.
Note also that if you want to perform some specific actions *after*
all filesystem images have been created (for example to automatically
Note also that you can use the *post-image scripts*
if you want to perform some specific actions 'after' all
filesystem images have been created (for example to automatically
extract your root filesystem tarball in a location exported by your
NFS server, or to create a special firmware image that bundles your
root filesystem and kernel image, or any other custom action), you can
specify a space-separated list of scripts in the
+BR2_ROOTFS_POST_IMAGE_SCRIPT+ configuration option.
+BR2_ROOTFS_POST_IMAGE_SCRIPT+ configuration option. This option can be
found in the +System configuration+ menu as well.
Each of those scripts will be called with the path to the +images+
output directory as first and unique argument, and will be executed
with the main Buildroot source directory as the current
directory. Those scripts will be executed as the user that executes
Buildroot, which should normally not be the root user. Therefore, any
action requiring root permissions in one of these post-image script
action requiring root permissions in one of these _post-image scripts_
will require special handling (usage of fakeroot or sudo), which is
left to the script developer.

View File

@@ -13,10 +13,13 @@ consists of the buildroot configuration, the configuration files for
packages that you use (kernel, busybox, uClibc, ...), and your rootfs
modifications.
[[customize-store-basics]]
Basics for storing the configuration
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[[customize-store-basics]]
[[customize-store-buildroot-config]]
Buildroot configuration
^^^^^^^^^^^^^^^^^^^^^^^
@@ -35,6 +38,7 @@ Alternatively, you can copy the file to any other place and rebuild with
+make defconfig BR2_DEFCONFIG=<path-to-defconfig-file>+.
[[customize-store-package-config]]
Other package configuration
^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -71,6 +75,7 @@ configuration files easier.
resp. +BR2_TARGET_AT91BOOTSTRAP3_CUSTOM_CONFIG_FILE+.
[[customize-store-board-support]]
Creating your own board support
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

View File

@@ -15,7 +15,7 @@ There is no way of tuning an external toolchain since Buildroot does not
generate it.
It also requires to set the Buildroot settings according to the toolchain ones
(see xref:external-toolchain[]).
(see xref:external-toolchain-backend[]).
Using the internal Buildroot toolchain backend
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

View File

@@ -34,12 +34,18 @@ Most patches are provided within Buildroot, in the package
directory; these typically aim to fix cross-compilation, libc support,
or other such issues.
These patch files should be named +<packagename>-<description>.patch+.
These patch files should be named +<packagename>-<number>-<description>.patch+.
A +series+ file, as used by +quilt+, may also be added in the
package directory. In that case, the +series+ file defines the patch
application order.
.Notes
- The patch files coming with Buildroot should not contain any package version
reference in their filename.
- The field +<number>+ in the patch file name refers to the 'apply order'.
How patches are applied
~~~~~~~~~~~~~~~~~~~~~~~
@@ -56,8 +62,12 @@ How patches are applied
* If a +series+ file exists in the package directory, then patches are
applied according to the +series+ file;
+
* Otherwise, patch files matching `<packagename>-*.patch` are applied
following the +ls+ command order.
* Otherwise, patch files matching +<packagename>-*.patch+
are applied in alphabetical order.
So, to ensure they are applied in the right order, it is hightly
recommended to named the patch files like this:
+<packagename>-<number>-<description>.patch+, where +<number>+
refers to the 'apply order'.
. Run the +<packagename>_POST_PATCH_HOOKS+ commands if defined.

View File

@@ -25,4 +25,5 @@ interested in hacking it to add:
* new packages: refer to the xref:adding-packages[Developer guide]
* new board support: refer to the xref:board-support[Developer guide]
* new board support: refer to the
xref:customize-store-board-support[Developer guide].

View File

@@ -5,6 +5,15 @@
<p>
<ul>
<li><b>28 February 2013 -- 2013.02 released</b>
<p>The stable 2013.02 release is out - Thanks to everyone
contributing and testing the release candidates. See the
<a href="http://git.buildroot.net/buildroot/plain/CHANGES?id=2013.02">CHANGES</a>
file for more details
and go to the <a href="/downloads/">downloads page</a> to pick up the
<a href="/downloads/buildroot-2013.02.tar.bz2">2013.02 release</a>.</p>
<li><b>26 February 2013 -- 2013.02-rc3 released</b>
<p>Another week, another release candidate with more cleanups and

View File

@@ -0,0 +1,24 @@
--- busybox-1.21.0/archival/libarchive/decompress_unxz.c
+++ busybox-1.21.0-platform/archival/libarchive/decompress_unxz.c
@@ -30,8 +30,8 @@ static uint32_t xz_crc32(const uint8_t *
/* We use arch-optimized unaligned accessors */
#define get_unaligned_le32(buf) ({ uint32_t v; move_from_unaligned32(v, buf); SWAP_LE32(v); })
#define get_unaligned_be32(buf) ({ uint32_t v; move_from_unaligned32(v, buf); SWAP_BE32(v); })
-#define put_unaligned_le32(val, buf) move_to_unaligned16(buf, SWAP_LE32(val))
-#define put_unaligned_be32(val, buf) move_to_unaligned16(buf, SWAP_BE32(val))
+#define put_unaligned_le32(val, buf) move_to_unaligned32(buf, SWAP_LE32(val))
+#define put_unaligned_be32(val, buf) move_to_unaligned32(buf, SWAP_BE32(val))
#include "unxz/xz_dec_bcj.c"
#include "unxz/xz_dec_lzma2.c"
--- busybox-1.21.0/include/platform.h
+++ busybox-1.21.0-platform/include/platform.h
@@ -228,7 +228,7 @@ typedef uint32_t bb__aliased_uint32_t FI
# define move_from_unaligned32(v, u32p) (memcpy(&(v), (u32p), 4))
# define move_to_unaligned16(u16p, v) do { \
uint16_t __t = (v); \
- memcpy((u16p), &__t, 4); \
+ memcpy((u16p), &__t, 2); \
} while (0)
# define move_to_unaligned32(u32p, v) do { \
uint32_t __t = (v); \

View File

@@ -0,0 +1,84 @@
--- busybox-1.21.0/archival/libarchive/decompress_unxz.c
+++ busybox-1.21.0-xz/archival/libarchive/decompress_unxz.c
@@ -40,6 +40,7 @@ static uint32_t xz_crc32(const uint8_t *
IF_DESKTOP(long long) int FAST_FUNC
unpack_xz_stream(transformer_aux_data_t *aux, int src_fd, int dst_fd)
{
+ enum xz_ret xz_result;
struct xz_buf iobuf;
struct xz_dec *state;
unsigned char *membuf;
@@ -63,9 +64,8 @@ unpack_xz_stream(transformer_aux_data_t
/* Limit memory usage to about 64 MiB. */
state = xz_dec_init(XZ_DYNALLOC, 64*1024*1024);
+ xz_result = X_OK;
while (1) {
- enum xz_ret r;
-
if (iobuf.in_pos == iobuf.in_size) {
int rd = safe_read(src_fd, membuf, BUFSIZ);
if (rd < 0) {
@@ -73,28 +73,57 @@ unpack_xz_stream(transformer_aux_data_t
total = -1;
break;
}
+ if (rd == 0 && xz_result == XZ_STREAM_END)
+ break;
iobuf.in_size = rd;
iobuf.in_pos = 0;
}
+ if (xz_result == XZ_STREAM_END) {
+ /*
+ * Try to start decoding next concatenated stream.
+ * Stream padding must always be a multiple of four
+ * bytes to preserve four-byte alignment. To keep the
+ * code slightly smaller, we aren't as strict here as
+ * the .xz spec requires. We just skip all zero-bytes
+ * without checking the alignment and thus can accept
+ * files that aren't valid, e.g. the XZ utils test
+ * files bad-0pad-empty.xz and bad-0catpad-empty.xz.
+ */
+ do {
+ if (membuf[iobuf.in_pos] != 0) {
+ xz_dec_reset(state);
+ goto do_run;
+ }
+ iobuf.in_pos++;
+ } while (iobuf.in_pos < iobuf.in_size);
+ }
+ do_run:
// bb_error_msg(">in pos:%d size:%d out pos:%d size:%d",
// iobuf.in_pos, iobuf.in_size, iobuf.out_pos, iobuf.out_size);
- r = xz_dec_run(state, &iobuf);
+ xz_result = xz_dec_run(state, &iobuf);
// bb_error_msg("<in pos:%d size:%d out pos:%d size:%d r:%d",
-// iobuf.in_pos, iobuf.in_size, iobuf.out_pos, iobuf.out_size, r);
+// iobuf.in_pos, iobuf.in_size, iobuf.out_pos, iobuf.out_size, xz_result);
if (iobuf.out_pos) {
xwrite(dst_fd, iobuf.out, iobuf.out_pos);
IF_DESKTOP(total += iobuf.out_pos;)
iobuf.out_pos = 0;
}
- if (r == XZ_STREAM_END) {
- break;
+ if (xz_result == XZ_STREAM_END) {
+ /*
+ * Can just "break;" here, if not for concatenated
+ * .xz streams.
+ * Checking for padding may require buffer
+ * replenishment. Can't do it here.
+ */
+ continue;
}
- if (r != XZ_OK && r != XZ_UNSUPPORTED_CHECK) {
+ if (xz_result != XZ_OK && xz_result != XZ_UNSUPPORTED_CHECK) {
bb_error_msg("corrupted data");
total = -1;
break;
}
}
+
xz_dec_end(state);
free(membuf);

View File

@@ -122,6 +122,14 @@ ifeq ($(BR2_PACKAGE_LIBGCRYPT),y)
COLLECTD_CONF_OPT += --with-libgcrypt=$(STAGING_DIR)/usr
endif
# released software should not break on minor warnings
define COLLECTD_DROP_WERROR
$(SED) 's/-Werror//' \
$(@D)/src/Makefile.in $(@D)/src/libcollectdclient/Makefile.in
endef
COLLECTD_POST_PATCH_HOOKS += COLLECTD_DROP_WERROR
define COLLECTD_INSTALL_TARGET_CMDS
$(MAKE) DESTDIR=$(TARGET_DIR) -C $(@D) install
rm -f $(TARGET_DIR)/usr/bin/collectd-nagios

View File

@@ -11,8 +11,8 @@ FLASHBENCH_LICENSE_FILES = COPYING
FLASHBENCH_CFLAGS = $(TARGET_CFLAGS)
ifeq ($(BR2_microblaze),y)
# microblaze toolchain only provides LLONG_MAX when used with gnu99 dialect
ifeq ($(BR2_microblaze)$(BR2_sh2a),y)
# microblaze and sh2a toolchains only provide LLONG_MAX when used with gnu99 dialect
FLASHBENCH_CFLAGS += -std=gnu99
endif

View File

@@ -29,3 +29,6 @@ config BR2_PACKAGE_LIBGTK2_DEMO
comment "libgtk2 requires a toolchain with WCHAR and C++ support"
depends on !BR2_USE_WCHAR || !BR2_INSTALL_LIBSTDCPP
comment "WARNING: Libgtk2 directfb backend is deprecated"
depends on BR2_PACKAGE_LIBGTK2 && !BR2_PACKAGE_XORG7

View File

@@ -1,6 +1,7 @@
config BR2_PACKAGE_LIBUPNP
bool "libupnp"
depends on BR2_LARGEFILE
depends on BR2_TOOLCHAIN_HAS_THREADS
help
The portable SDK for UPnP(tm) Devices (libupnp) provides developers
with an API and open source code for building control points,
@@ -9,5 +10,5 @@ config BR2_PACKAGE_LIBUPNP
http://pupnp.sourceforge.net/
comment "libupnp requires a toolchain with LARGEFILE support"
depends on !BR2_LARGEFILE
comment "libupnp requires a toolchain with LARGEFILE and thread support"
depends on !(BR2_LARGEFILE && BR2_TOOLCHAIN_HAS_THREADS)

View File

@@ -21,11 +21,11 @@ endef
MII_DIAG_POST_PATCH_HOOKS = MII_DIAG_DEBIAN_PATCHES
define MII_DIAG_BUILD_CMDS
$(MAKE) $(MII_DIAG_MAKE_OPT) -C $(@D)
$(MAKE) $(MII_DIAG_MAKE_OPT) -C $(@D) mii-diag
endef
define MII_DIAG_INSTALL_TARGET_CMDS
$(MAKE) DESTDIR=$(TARGET_DIR) -C $(@D) install
$(MAKE) DESTDIR=$(TARGET_DIR) -C $(@D) install-mii-diag
endef
define MII_DIAG_UNINSTALL_TARGET_CMDS

View File

@@ -2,6 +2,7 @@ config BR2_PACKAGE_QUOTA
bool "quota"
depends on BR2_LARGEFILE
depends on BR2_USE_WCHAR
depends on BR2_USE_MMU # fork()
select BR2_PACKAGE_UTIL_LINUX
select BR2_PACKAGE_UTIL_LINUX_MOUNT
select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE

View File

@@ -1,6 +1,7 @@
config BR2_PACKAGE_USHARE
bool "ushare"
depends on BR2_LARGEFILE
depends on BR2_TOOLCHAIN_HAS_THREADS # libupnp
select BR2_PACKAGE_LIBUPNP
select BR2_PACKAGE_GETTEXT if BR2_NEEDS_GETTEXT_IF_LOCALE
help
@@ -10,5 +11,5 @@ config BR2_PACKAGE_USHARE
http://ushare.geexbox.org/
comment "ushare requires a toolchain with LARGEFILE support"
depends on !BR2_LARGEFILE
comment "ushare requires a toolchain with LARGEFILE and thread support"
depends on !(BR2_LARGEFILE && BR2_TOOLCHAIN_HAS_THREADS)