aboutsummaryrefslogtreecommitdiff
path: root/docs/manual
diff options
context:
space:
mode:
Diffstat (limited to 'docs/manual')
-rw-r--r--docs/manual/adding-packages-cmake.txt9
-rw-r--r--docs/manual/adding-packages-generic.txt39
-rw-r--r--docs/manual/adding-packages-qmake.txt4
-rw-r--r--docs/manual/common-usage.txt23
-rw-r--r--docs/manual/customize-outside-br.txt39
-rw-r--r--docs/manual/using-buildroot-toolchain.txt14
6 files changed, 122 insertions, 6 deletions
diff --git a/docs/manual/adding-packages-cmake.txt b/docs/manual/adding-packages-cmake.txt
index 6ccf3902f8..73f0943024 100644
--- a/docs/manual/adding-packages-cmake.txt
+++ b/docs/manual/adding-packages-cmake.txt
@@ -126,14 +126,19 @@ typical packages will therefore only use a few of them.
in the build step. These are passed after the +make+ command. By
default, empty.
+* +LIBFOO_INSTALL_OPTS+ contains the make options used to
+ install the package to the host directory. By default, the value
+ is +install+, which is correct for most CMake packages. It is still
+ possible to override it.
+
* +LIBFOO_INSTALL_STAGING_OPTS+ contains the make options used to
install the package to the staging directory. By default, the value
- is +DESTDIR=$(STAGING_DIR) install+, which is correct for most
+ is +DESTDIR=$(STAGING_DIR) install/fast+, which is correct for most
CMake packages. It is still possible to override it.
* +LIBFOO_INSTALL_TARGET_OPTS+ contains the make options used to
install the package to the target directory. By default, the value
- is +DESTDIR=$(TARGET_DIR) install+. The default value is correct
+ is +DESTDIR=$(TARGET_DIR) install/fast+. The default value is correct
for most CMake packages, but it is still possible to override it if
needed.
diff --git a/docs/manual/adding-packages-generic.txt b/docs/manual/adding-packages-generic.txt
index b8bfcb4aff..75af18b70c 100644
--- a/docs/manual/adding-packages-generic.txt
+++ b/docs/manual/adding-packages-generic.txt
@@ -502,6 +502,45 @@ LIBFOO_IGNORE_CVES += CVE-2020-12345
LIBFOO_IGNORE_CVES += CVE-2020-54321
----------------------
+* +LIBFOO_CPE_ID_*+ variables is a set of variables that allows the
+ package to define its https://nvd.nist.gov/products/cpe[CPE
+ identifier]. The available variables are:
++
+--
+** +LIBFOO_CPE_ID_PREFIX+, specifies the prefix of the CPE identifier,
+ i.e the first three fields. When not defined, the default value is
+ +cpe:2.3:a+.
+
+** +LIBFOO_CPE_ID_VENDOR+, specifies the vendor part of the CPE
+ identifier. When not defined, the default value is
+ +<pkgname>_project+.
+
+** +LIBFOO_CPE_ID_PRODUCT+, specifies the product part of the CPE
+ identifier. When not defined, the default value is +<pkgname>+.
+
+** +LIBFOO_CPE_ID_VERSION+, specifies the version part of the CPE
+ identifier. When not defined the default value is
+ +$(LIBFOO_VERSION)+.
+
+** +LIBFOO_CPE_ID_UPDATE+ specifies the _update_ part of the CPE
+ identifier. When not defined the default value is +*+.
+--
++
+If any of those variables is defined, then the generic package
+infrastructure assumes the package provides valid CPE information. In
+this case, +LIBFOO_CPE_ID_VALID = YES+ will be set, and the generic
+package infrastructure will define +LIBFOO_CPE_ID+.
++
+Alternatively, a package can also explicitly set +LIBFOO_CPE_ID_VALID
+= YES+ if the default values for +LIBFOO_CPE_ID_PREFIX+,
++LIBFOO_CPE_ID_VENDOR+, +LIBFOO_CPE_ID_PRODUCT+,
++LIBFOO_CPE_ID_VERSION+, +LIBFOO_CPE_ID_UPDATE+ are all correct for
+this package and don't need to be explicitly overridden.
++
+For a host package, if its +LIBFOO_CPE_ID_*+ variables are not
+defined, it inherits the value of those variables from the
+corresponding target package.
+
The recommended way to define these variables is to use the following
syntax:
diff --git a/docs/manual/adding-packages-qmake.txt b/docs/manual/adding-packages-qmake.txt
index e1621e914e..c7e6ff354a 100644
--- a/docs/manual/adding-packages-qmake.txt
+++ b/docs/manual/adding-packages-qmake.txt
@@ -79,3 +79,7 @@ also be defined.
* +LIBFOO_INSTALL_TARGET_OPTS+, to specify additional targets to pass
to the +make+ command during the target installation step. By default,
+install+.
+
+* +LIBFOO_SYNC_HEADERS+, to run syncqt.pl before qmake. Some packages
+ need this to have a properly populated include directory before
+ running the build.
diff --git a/docs/manual/common-usage.txt b/docs/manual/common-usage.txt
index 7cfda10365..9ba87a8339 100644
--- a/docs/manual/common-usage.txt
+++ b/docs/manual/common-usage.txt
@@ -157,6 +157,29 @@ your filesystem, those parts may not be all-zeroes when read back). You
should only use sparse files when handling files on the build machine, not
when transferring them to an actual device that will be used on the target.
+=== Details about packages
+
+[[package-details]]
+
+Buildroot can produce a JSON blurb that describes the set of enabled
+packages in the current configuration, together with their
+dependencies, licenses and other metadata. This JSON blurb is produced
+by using the +show-info+ make target:
+
+------------------------
+make show-info
+------------------------
+
+Buildroot can also produce details about packages as HTML and JSON
+output using the +pkg-stats+ make target. Amongst other things, these
+details include whether known CVEs (security vulnerabilities) affect
+the packages in your current configuration. It also shows if there is
+a newer upstream version for those packages.
+
+------------------------
+make pkg-stats
+------------------------
+
=== Graphing the dependencies between packages
[[graph-depends]]
diff --git a/docs/manual/customize-outside-br.txt b/docs/manual/customize-outside-br.txt
index 5f7d623aea..348f2b089c 100644
--- a/docs/manual/customize-outside-br.txt
+++ b/docs/manual/customize-outside-br.txt
@@ -191,9 +191,9 @@ tree.
For some packages, Buildroot provides a choice between two (or more)
implementations of API-compatible such packages. For example, there is
-a choice to choose either libjpeg ot jpeg-turbo, and another choice
-between openssl or libressl. Finally, there is a choice to select one
-of the known, pre-configured toolchains.
+a choice to choose either libjpeg ot jpeg-turbo; there is one between
+openssl or libressl; there is one to select one of the known,
+pre-configured toolchains...
It is possible for a br2-external to extend those choices, by providing
a set of files that define those alternatives:
@@ -201,7 +201,10 @@ a set of files that define those alternatives:
* +provides/toolchains.in+ defines the pre-configured toolchains, which
will then be listed in the toolchain selection;
* +provides/jpeg.in+ defines the alternative libjpeg implementations;
-* +provides/openssl.in+ defines the alternative openssl implementations.
+* +provides/openssl.in+ defines the alternative openssl implementations;
+* +provides/skeleton.in+ defines the alternative skeleton implementations;
+* +provides/init.in+ defines the alternative init system implementations, this
+ can be used to select a default skeleton for your init.
===== Free-form content
@@ -301,6 +304,34 @@ illustration, of course):
| |$(eval $(autotools-package))
| `----
|
+ |- provides/init.in
+ | |config BR2_INIT_MINE
+ | | bool "my custom init"
+ | | select BR2_PACKAGE_MY_INIT
+ | | select BR2_PACKAGE_SKELETON_INIT_MINE if BR2_ROOTFS_SKELETON_DEFAULT
+ | `----
+ |
+ |- provides/skeleton.in
+ | |config BR2_ROOTFS_SKELETON_MINE
+ | | bool "my custom skeleton"
+ | | select BR2_PACKAGE_SKELETON_MINE
+ | `----
+ |- package/skeleton-mine/Config.in
+ | |config BR2_PACKAGE_SKELETON_MINE
+ | | bool
+ | | select BR2_PACKAGE_HAS_SKELETON
+ | |
+ | |config BR2_PACKAGE_PROVIDES_SKELETON
+ | | default "skeleton-mine" if BR2_PACKAGE_SKELETON_MINE
+ | `----
+ |- package/skeleton-mine/skeleton-mine.mk
+ | |SKELETON_MINE_ADD_TOOLCHAIN_DEPENDENCY = NO
+ | |SKELETON_MINE_ADD_SKELETON_DEPENDENCY = NO
+ | |SKELETON_MINE_PROVIDES = skeleton
+ | |SKELETON_MINE_INSTALL_STAGING = YES
+ | |$(eval $(generic-package))
+ | `----
+ |
|- provides/toolchains.in
| |config BR2_TOOLCHAIN_EXTERNAL_MINE
| | bool "my custom toolchain"
diff --git a/docs/manual/using-buildroot-toolchain.txt b/docs/manual/using-buildroot-toolchain.txt
index 0c0c35fced..09408ef05a 100644
--- a/docs/manual/using-buildroot-toolchain.txt
+++ b/docs/manual/using-buildroot-toolchain.txt
@@ -32,3 +32,17 @@ the tarball (e.g. because you will just be moving the +host+ directory,
or will be generating the tarball on your own), Buildroot also allows
you to just prepare the SDK with +make prepare-sdk+ without actually
generating a tarball.
+
+For your convenience, by selecting the option
++BR2_PACKAGE_HOST_ENVIRONMENT_SETUP+, you can get a
++environment-setup+ script installed in +output/host/+ and therefore
+in your SDK. This script can be sourced with
++. your/sdk/path/environment-setup+ to export a number of environment
+variables that will help cross-compile your projects using the
+Buildroot SDK: the +PATH+ will contain the SDK binaries, standard
+_autotools_ variables will be defined with the appropriate values, and
++CONFIGURE_FLAGS+ will contain basic +./configure+ options to
+cross-compile _autotools_ projects. It also provides some useful
+commands. Note however that once this script is sourced, the
+environment is setup only for cross-compilation, and no longer for
+native compilation.