kumquat-buildroot/docs/manual
Yann E. MORIN c32ad51cbf core/sdk: generate the SDK tarball ourselves
Currently, the wording in the manual instructs the user to generate a
tarball from "the contents of the +output/host+ directory".

This is pretty confusing, because taken literally, this would amount to
running a command like:

    tar cf my-sdk.tar -C output/host/ .

This creates a tarbomb [0], which is very bad practice, because when
extracted, it creates multiple files in the current directory.

What one really wants to do, is create a tarball of the host/ directory,
with something like:

    tar cf my-sdk.tar -C output host/

However, this is not much better, because the top-most directory would
have a very common name, host/, which is pretty easy to get conflict
with when it gets extracted.

So, we fix that mess by giving the top-most directory a recognisable
name, based on the target tuple, which we also use as the name of the
archive (suffixed with the usual +.tar.gz+.) We offer the user the
possibility to override that default by specifying the +BR2_SDK_PREFIX+
variable on the command line.

Since this is an output file, we place it in the images/ directory.

As some users expressed a very strong feeling that they do not want to
generate a tarball at all, and that doing so would badly hurt their
workflows [1], we actually prepare the SDK as was previously done, but
under the new, intermediate rule 'prepare-sdk'. The existing 'sdk' rule
obviously depend on that before generating the tarball.

We choose to make the existing rule to generate the tarball, and
introduce a new rule to just prepare the SDK, rather than keep the
existing rule as-is and introduce a new one to generate the tarball,
because it makes sense to have the simplest rule do the correct thing,
leaving advanced, power users use the longest command. If someone
already had a wrapper that called 'sdk' and expected just the host
directory to be prepared, then this is not broken; it just takes a bit
longer (gzip is pretty fast).

Update the manual accordingly.

[0] https://en.wikipedia.org/wiki/Tar_(computing)#Tarbomb
[1] http://lists.busybox.net/pipermail/buildroot/2018-June/thread.html#223377
    and some messages in the ensuing thread...

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Wolfgang Grandegger <wg@grandegger.com>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: Arnout Vandecappelle <arnout@mind.be>
Cc: Stefan Becker <chemobejk@gmail.com>
Cc: Trent Piepho <tpiepho@impinj.com>
Signed-off-by: &quot;Yann E. MORIN&quot; &lt;<a href="mailto:yann.morin.1998@free.fr" target="_blank">yann.morin.1998@free.fr</a>&gt;<br>
Reviewed-by: Stefan Becker <chemobejk@gmail.com>
Signed-off-by: &quot;Yann E. MORIN&quot; &lt;<a href="mailto:yann.morin.1998@free.fr" target="_blank">yann.morin.1998@free.fr</a>&gt;<br>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2018-08-14 16:03:48 +02:00
..
adding-board-support.txt
adding-packages-asciidoc.txt docs/manual: document the br2-external NAME 2016-10-16 13:01:02 +02:00
adding-packages-autotools.txt
adding-packages-cargo.txt docs/manual: use SPDX short identifier for license 2018-04-05 21:06:45 +02:00
adding-packages-cmake.txt
adding-packages-conclusion.txt
adding-packages-directory.txt toolchain: merge toolchain-common.in to Config.in 2018-04-01 08:45:54 +02:00
adding-packages-generic.txt docs/manual: using a branch name as FOO_VERSION does not work 2018-05-11 23:03:21 +02:00
adding-packages-gettext.txt docs/manual: update gettext details 2017-07-05 01:37:38 +02:00
adding-packages-golang.txt package/pkg-golang: use 'build' instead of 'install' 2018-04-01 16:36:28 +02:00
adding-packages-hooks.txt manual: patches are not applied for SITE_METHOD = local 2017-07-09 17:25:48 +02:00
adding-packages-kconfig.txt docs/manual: update pkg-kconfig doc about <pkg>_KCONFIG_DOTCONFIG 2016-09-17 14:46:04 +02:00
adding-packages-kernel-module.txt docs/manual: refer to SPDX License List 2017-04-01 15:11:18 +02:00
adding-packages-linux-kernel-spec-infra.txt package/linux-tools: change method for including linux-tool sub-makefiles 2017-07-19 21:16:38 +02:00
adding-packages-luarocks.txt luarocks-package: lowercase the upstream name for LuaRocks 2017-03-05 22:01:39 +01:00
adding-packages-meson.txt docs/manual: document pkg-meson infra 2018-05-30 21:59:05 +02:00
adding-packages-perl.txt docs/manual: fix scancpan path 2018-06-15 10:04:45 +02:00
adding-packages-python.txt manual: update old references to support/scripts 2017-07-01 19:43:46 +02:00
adding-packages-rebar.txt
adding-packages-tips.txt docs/manual: add check-package to "Tips and tricks" 2018-04-02 00:42:59 +02:00
adding-packages-virtual.txt manual: get rid of the lists of packages 2016-09-19 19:32:59 +02:00
adding-packages-waf.txt doc/manual: document the new waf-package infra variables 2016-12-11 18:03:59 +01:00
adding-packages.txt docs/manual: add check-package to "Tips and tricks" 2018-04-02 00:42:59 +02:00
advanced.txt
appendix.txt docs/manual: add appendix about migration from older versions 2017-09-06 22:13:17 +02:00
beyond-buildroot.txt docs/manual/beyond-buildroot: additional minor fixes 2015-07-10 19:17:02 +02:00
ccache-support.txt ccache: support changing the output directory 2015-10-04 18:22:21 +02:00
common-usage.txt support/scripts/graph-depends: use colors instead of colours 2018-04-01 20:01:38 +02:00
configure-other-components.txt docs/manual: add U-Boot configuration 2015-07-19 14:47:11 +02:00
configure.txt docs/manual: drop mention of removed external toolchains 2017-06-20 22:12:54 +02:00
contribute.txt docs/manual: add check-package to "Tips and tricks" 2018-04-02 00:42:59 +02:00
customize-configuration.txt docs/manual: add U-Boot configuration 2015-07-19 14:47:11 +02:00
customize-device-permission-tables.txt
customize-directory-structure.txt docs/manual: document the br2-external NAME 2016-10-16 13:01:02 +02:00
customize-outside-br.txt docs/manual: fix BR2_EXTERNAL path typo 2017-10-15 15:47:59 +02:00
customize-packages.txt docs/manual: document the br2-external NAME 2016-10-16 13:01:02 +02:00
customize-patches.txt
customize-post-image.txt
customize-quick-guide.txt docs/manual: add U-Boot configuration 2015-07-19 14:47:11 +02:00
customize-rootfs.txt docs/manual: document BR2_ROOTFS_POST_FAKEROOT_SCRIPT 2016-07-04 15:22:57 +02:00
customize-users-tables.txt
customize.txt
debugging-buildroot.txt docs/manual: add list of instrumentation steps 2015-05-05 22:47:32 +02:00
developers.txt Manual: DEVELOPERS file integrity check 2017-11-08 13:20:02 +01:00
download-infra.txt
download-location.txt docs/manual: centralize recommendations about BR2_DL_DIR 2017-02-07 14:55:02 +01:00
eclipse-integration.txt
faq-troubleshooting.txt manual: remove references to host/usr paths 2017-07-05 16:06:28 +02:00
getting.txt docs/manual: misc improvements to Vagrant usage documentation 2016-02-08 13:33:43 +01:00
how-buildroot-works.txt
introduction.txt
known-issues.txt docs: known issues no longer valid 2017-07-01 12:56:21 +02:00
legal-notice.txt docs/manual: refer to SPDX License List 2017-04-01 15:11:18 +02:00
make-tips.txt core: enhance printvars 2017-03-29 21:55:14 +02:00
makedev-syntax.txt makedevs: add capability support 2016-06-30 12:13:38 +02:00
makeusers-syntax.txt scripts/mkusers: allow users with no password value set 2015-06-09 23:13:41 +02:00
manual.mk manual: get rid of the lists of packages 2016-09-19 19:32:59 +02:00
manual.txt docs/manual: always point to the correct license file 2018-06-10 16:33:44 +02:00
migrating.txt docs/manual: add appendix about $(HOST_DIR)/usr 2017-09-06 22:13:40 +02:00
package-make-target.txt
patch-policy.txt docs: clarify <packagename>_PATCH behaviour 2017-09-24 14:43:37 +02:00
prerequisite.txt docs/manual: update host gcc minimum required version 2018-08-05 14:13:41 +02:00
quickstart.txt
rebuilding-packages.txt
resources.txt docs: use lists.buildroot.org to refer to the mailman archives 2015-09-14 14:50:40 +02:00
using-buildroot-debugger.txt manual: remove references to host/usr paths 2017-07-05 16:06:28 +02:00
using-buildroot-development.txt Allow adding per-package override rsync exclusions 2018-04-01 17:05:35 +02:00
using-buildroot-toolchain.txt core/sdk: generate the SDK tarball ourselves 2018-08-14 16:03:48 +02:00
writing-rules.txt tools: rename to 'utils' 2017-07-01 18:07:00 +02:00