<feed xmlns='http://www.w3.org/2005/Atom'>
<title>buildroot/support/dependencies, branch 2018.02.1</title>
<subtitle>OpenPOWER buildroot sources</subtitle>
<id>https://git.raptorcs.com/git/buildroot/atom?h=2018.02.1</id>
<link rel='self' href='https://git.raptorcs.com/git/buildroot/atom?h=2018.02.1'/>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/'/>
<updated>2018-04-08T16:10:29+00:00</updated>
<entry>
<title>check-host-tar.sh: bump minimum tar version to 1.27 for reproducible tar files with long paths</title>
<updated>2018-04-08T16:10:29+00:00</updated>
<author>
<name>Peter Korsgaard</name>
<email>peter@korsgaard.com</email>
</author>
<published>2018-04-02T09:48:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=22bcdafc4267539a56a96c57d8eb982c90a104d6'/>
<id>urn:sha1:22bcdafc4267539a56a96c57d8eb982c90a104d6</id>
<content type='text'>
Fixes:
http://autobuild.buildroot.net/results/b18/b187e64a61918f17f69588e2355a03286bc5808e

tar 1.27 subtly changed the tar format when a GNU long link entry is added
(which is done for path elements &gt; 100 characters).  The code used to set
the permission mode of the link entry to 0:

  header = start_private_header ("././@LongLink", size, time (NULL));
  FILL (header-&gt;header.mtime, '0');
  FILL (header-&gt;header.mode, '0');
  FILL (header-&gt;header.uid, '0');
  FILL (header-&gt;header.gid, '0');
  FILL (header-&gt;header.devmajor, 0);
  FILL (header-&gt;header.devminor, 0);

This got dropped in 1.27 by commit df7b55a8f6354e3 (Fix some problems with
negative and out-of-range integers), so the settings from
start_private_header() are used directly - Which are:

  TIME_TO_CHARS (t &lt; 0 ? 0 : min (t, MAX_OCTAL_VAL (header-&gt;header.mtime)),
		 header-&gt;header.mtime);
  MODE_TO_CHARS (S_IFREG|S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH, header-&gt;header.mode);
  UID_TO_CHARS (0, header-&gt;header.uid);
  GID_TO_CHARS (0, header-&gt;header.gid);

The end result is that tar &gt;= 1.27 sets mode to 644.

The consequence of this is that we create different tar files when long path
names are encountered (which often happens when a package downloads a
specific sha1 from a git repo) depending on the host tar version used,
causing hash mismatches.

As a workaround, bump our minimum tar version to 1.27.  It would be nicer to
only do this if we have packages from bzr/git/hg enabled, but that is an
exercise for later.

Signed-off-by: Peter Korsgaard &lt;peter@korsgaard.com&gt;
Acked-by: "Yann E. MORIN" &lt;yann.morin.1998@free.fr&gt;
Signed-off-by: Peter Korsgaard &lt;peter@korsgaard.com&gt;
(cherry picked from commit cdac332d20d2d1326dee0111e188fa214549122b)
Signed-off-by: Peter Korsgaard &lt;peter@korsgaard.com&gt;
</content>
</entry>
<entry>
<title>core: drop no-longer used C.UTF-8 locale option</title>
<updated>2018-03-04T10:59:16+00:00</updated>
<author>
<name>Yann E. MORIN</name>
<email>yann.morin.1998@free.fr</email>
</author>
<published>2018-03-04T10:29:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=b1aa2148b0365776a17af3d8e22edd3622d475e4'/>
<id>urn:sha1:b1aa2148b0365776a17af3d8e22edd3622d475e4</id>
<content type='text'>
Its use has been globbed into the more generic
BR2_NEEDS_HOST_UTF8_LOCALE option now.

Signed-off-by: "Yann E. MORIN" &lt;yann.morin.1998@free.fr&gt;
Cc: Thomas Petazzoni &lt;thomas.petazzoni@bootlin.com&gt;
Cc: Peter Korsgaard &lt;peter@korsgaard.com&gt;
Cc: Julius Kriukas &lt;julius@kriukas.lt&gt;
Cc: Christian Stewart &lt;kidovate@gmail.com&gt;
Signed-off-by: Peter Korsgaard &lt;peter@korsgaard.com&gt;
</content>
</entry>
<entry>
<title>support/dependencies: unbreak check for UTF-8 locale</title>
<updated>2018-03-04T10:46:48+00:00</updated>
<author>
<name>Yann E. MORIN</name>
<email>yann.morin.1998@free.fr</email>
</author>
<published>2018-03-04T10:29:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=9f8c7766e43d3a4e655d8073450e5e60abcdddd7'/>
<id>urn:sha1:9f8c7766e43d3a4e655d8073450e5e60abcdddd7</id>
<content type='text'>
Although the UTF-8 locales in mainstream distributions all are suffixed
with just 'utf8', the nomenclature is a bit ambiguous with the way they
are to be specified with the various LC_* variables, suffixed there with
'UTF-8'.

Also, POSIX, ISO, and IEC do not enforce any specific suffix in LC_*
variables:
    http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html#tag_08_02

    """
    If the locale value has the form:
        language[_territory][.codeset]

    it refers to an implementation-provided locale, where settings of
    language, territory, and codeset are implementation-defined.
    """

To avoid any confusion, use a regexp that is a bit more lax when
matching locales.

Also, quote the regexp, so that the '?' and '$' are not interpreted by
the shell.

Signed-off-by: "Yann E. MORIN" &lt;yann.morin.1998@free.fr&gt;
Cc: Peter Korsgaard &lt;peter@korsgaard.com&gt;
Cc: Thomas Petazzoni &lt;thomas.petazzoni@bootlin.com&gt;
Signed-off-by: Peter Korsgaard &lt;peter@korsgaard.com&gt;
</content>
</entry>
<entry>
<title>support/dependencies/dependencies.sh: check for Python argparse module</title>
<updated>2018-03-03T16:18:18+00:00</updated>
<author>
<name>Thomas Petazzoni</name>
<email>thomas.petazzoni@bootlin.com</email>
</author>
<published>2018-03-03T14:36:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=8cde7e6af9193545819c05369b87c8a61b2a61fb'/>
<id>urn:sha1:8cde7e6af9193545819c05369b87c8a61b2a61fb</id>
<content type='text'>
The script support/scripts/check-uniq-files uses the argparse Python
module. In most recent Python versions (starting with 2.7), the
argparse module is part of the standard library, and we already check
for the availability of Python in
support/dependencies/dependencies.sh.

However, when running on an ancient distribution with Python 2.6, the
argparse module is not part of the Python standard library, but
available as an external module. Without this module, the build fails,
because check-uniq-files, which is used in target-finalize, fails to
run.

To avoid this failure, this commit adds a check in
support/dependencies/dependencies.sh to verify that the argparse
module is available.

Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@bootlin.com&gt;
Acked-by: "Yann E. MORIN" &lt;yann.morin.1998@free.fr&gt;
Signed-off-by: Peter Korsgaard &lt;peter@korsgaard.com&gt;
</content>
</entry>
<entry>
<title>systemd: switch to C.UTF-8 locale when building</title>
<updated>2018-03-02T21:44:34+00:00</updated>
<author>
<name>Julius Kriukas</name>
<email>julius@kriukas.lt</email>
</author>
<published>2018-02-22T23:00:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=41569717c34a2334c8682985d8457447b9b5093a'/>
<id>urn:sha1:41569717c34a2334c8682985d8457447b9b5093a</id>
<content type='text'>
When BR2_REPRODUCIBLE is enabled or host uses non UTF-8 capable locale
building systemd fails with an error:

[1/1080] Generating systemd.bg.catalog with a meson_exe.py custom command.
FAILED: catalog/systemd.bg.catalog
/buildroot/output/host/bin/python3 /buildroot/output/host/bin/meson --internal exe /buildroot/output/build/systemd-236/build/meson-private/meson_exe_sed_232a0623cc7ce2cd67ec72ed784b76307102ed76.dat
Warning: You are using 'ANSI_X3.4-1968' which is not a Unicode-compatible locale.
You might see errors if you use UTF-8 strings as filenames, as strings, or as file contents.
Please switch to a UTF-8 locale for your platform.
...
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 1079: ordinal not in range(128)
package/pkg-generic.mk:247: recipe for target '/buildroot/output/build/systemd-236/.stamp_built' failed
make: *** [/buildroot/output/build/systemd-236/.stamp_built] Error 1

This patch changes default host system locale from C to C.UTF-8 when
building systemd package to fix this issue. It also introduces
BR2_NEEDS_HOST_C_UTF8_LOCALE flag that checks if this locale is available on
the host system. If locale is not available error message is show and build
process is stopped.

Signed-off-by: Julius Kriukas &lt;julius@kriukas.lt&gt;
[Thomas: use C.UTF-8 instead of en_US.UTF-8.]
Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@bootlin.com&gt;
</content>
</entry>
<entry>
<title>check-host-tar.sh: blacklist tar 1.30+</title>
<updated>2018-02-27T16:02:26+00:00</updated>
<author>
<name>Peter Korsgaard</name>
<email>peter@korsgaard.com</email>
</author>
<published>2018-02-27T08:55:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=b8fa273d500b44153e9939f0a100e97db2ff63ed'/>
<id>urn:sha1:b8fa273d500b44153e9939f0a100e97db2ff63ed</id>
<content type='text'>
Tar 1.30 changed the --numeric-owner output for filenames &gt; 100 characters,
leading to hash mismatches for the tar archives we create ourselves from
git.  This is really a fix for a bug in earlier tar versions regarding
deterministic output, so it is unlikely to be reverted in later versions.

For more details, see:
http://lists.busybox.net/pipermail/buildroot/2018-January/211222.html

To work around this issue, blacklist tar 1.30+ similar to how we do it for
pre-1.17 versions so Buildroot falls back to building host-tar.

Signed-off-by: Peter Korsgaard &lt;peter@korsgaard.com&gt;
</content>
</entry>
<entry>
<title>dependencies.mk: check for valid host-tar before other host dependencies</title>
<updated>2018-02-27T16:01:47+00:00</updated>
<author>
<name>Peter Korsgaard</name>
<email>peter@korsgaard.com</email>
</author>
<published>2018-02-27T08:55:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=7c09cb82b75f30eba7a9daaae5e77a604f6e49c1'/>
<id>urn:sha1:7c09cb82b75f30eba7a9daaae5e77a604f6e49c1</id>
<content type='text'>
host-{cmake,lzip,xz} needs host-tar to extract their source code tarball, so
we need to ensure that host-tar gets added to DEPENDENCIES_HOST_PREREQ
before these in case they are both needed, otherwise the tools will fail to
extract.

With the upcoming change to blacklist modern tar versions this situation is
likely to trigger more often.

The real solution to this issue is the &lt;foo&gt;_EXTRACT_DEPENDENCIES rework,
but that series is a bit too intrusive to add this close to 2018.02, so
therefore this hack.

Signed-off-by: Peter Korsgaard &lt;peter@korsgaard.com&gt;
Reviewed-by: Matt Weber &lt;matthew.weber@rockwellcollins.com&gt;
Signed-off-by: Peter Korsgaard &lt;peter@korsgaard.com&gt;
</content>
</entry>
<entry>
<title>support/dependencies: add check for c++ multilib</title>
<updated>2018-02-06T16:21:09+00:00</updated>
<author>
<name>Gaël PORTAY</name>
<email>gael.portay@savoirfairelinux.com</email>
</author>
<published>2018-02-05T21:57:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=27d22296927d7e4ec0965f2bdaa272b1e8ea15e7'/>
<id>urn:sha1:27d22296927d7e4ec0965f2bdaa272b1e8ea15e7</id>
<content type='text'>
Some packages build C++ 32bits host-tools and need the g++-multilib to
be installed on the build machine. As example, qt5webengine builds a C++
host-tool when target is 32bits.

Add the check for g++-multilib to the dependencies script; and update
the Dockerfile to install g++-multilib package.

Signed-off-by: Gaël PORTAY &lt;gael.portay@savoirfairelinux.com&gt;
Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@bootlin.com&gt;
</content>
</entry>
<entry>
<title>dependencies: correct dependencies for top-level parallel build</title>
<updated>2018-01-08T22:37:59+00:00</updated>
<author>
<name>Arnout Vandecappelle (Essensium/Mind)</name>
<email>arnout@mind.be</email>
</author>
<published>2017-10-22T14:17:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=390780d5626f5d8613dab22928ae90051d169ab1'/>
<id>urn:sha1:390780d5626f5d8613dab22928ae90051d169ab1</id>
<content type='text'>
Commit 4932c8a7cc94277b3d53cecd935f725b91cfa9fe introduced the
core-dependencies target to make sure that the dependencies.sh script
runs before we attempt to compile any host tool, so that the absence of
a compiler is properly detected. However, this relied on the
left-to-right evaluation of dependencies. This will no longer be true
when we enable top-level parallel build.

Fix this by letting DEPENDENCIES_HOST_PREREQ depend on
core-dependencies.

Note that it is not possible to remove the
dependencies &lt;- core-dependencies. Indeed, it is possible that
DEPENDENCIES_HOST_PREREQ is completely empty, and in that case we still
need to check core-dependencies.

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) &lt;arnout@mind.be&gt;
Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
</content>
</entry>
<entry>
<title>core-dependencies: remove unneeded HOSTCC</title>
<updated>2018-01-08T22:37:54+00:00</updated>
<author>
<name>Arnout Vandecappelle (Essensium/Mind)</name>
<email>arnout@mind.be</email>
</author>
<published>2017-10-22T14:17:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/buildroot/commit/?id=42decc07ce3efe5ec4b5d70016daca3e712451ef'/>
<id>urn:sha1:42decc07ce3efe5ec4b5d70016daca3e712451ef</id>
<content type='text'>
dependencies.sh uses HOSTCC_NOCCACHE directly, and this variable is
exported from the top-level Makefile, so there is no need to pass
HOSTCC to it. HOSTCC is not used at all in dependencies.sh.

Thus, we also no longer need to apply the HOSTCC override for
core-dependencies. The core-depencies rule doesn't use HOSTCC or
HOSTCXX.

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) &lt;arnout@mind.be&gt;
Signed-off-by: Thomas Petazzoni &lt;thomas.petazzoni@free-electrons.com&gt;
</content>
</entry>
</feed>
