buildroot.git
6 years agoNew board: SolidRun ClearFog Base
Jan Kundrát [Mon, 4 Sep 2017 20:30:08 +0000 (22:30 +0200)]
New board: SolidRun ClearFog Base

My goal was to rely on upstreamed features as much as possible, which
means that some bits are only half-baked for now:

- Due to the DTS restructuring in upstream kernel, we require 4.11+. The
latest LTS or CIP kernels do not know about the -Base model.

- Linux has no generic support for SFP cages (yet). It seems that this
has hit the net-next tree in August 2017, but there's been no release
(it's probably targettting 4.14). Also, the merge only included the
required infrastructure; the mvneta driver conversion is not included.
Patches which finalize this exist in Russel King's tree and also in
random vendor trees.

- There's no access to the SPI flash in these versions of
uboot/linux/dts.

Signed-off-by: Jan Kundrát <jan.kundrat@cesnet.cz>
[Arnout:
 - rename to solidrun_clearfog_defconfig;
 - specify kernel headers version (default is now 4.15);
 - remove ext2 fs size override, the 4 extra MB are not needed;
 - U-Boot needs dtc and openssl;
 - add comments to defconfig;
 - update .gitlab-ci.yml;
 - mention in readme.txt that SFP support is missing;
 - add Jan to DEVELOPERS.
]
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
6 years agoopenblas: bump version to v0.2.20
Peter Korsgaard [Sun, 1 Apr 2018 08:46:42 +0000 (10:46 +0200)]
openblas: bump version to v0.2.20

Drop 0001-Complete-support-for-MIPS-n32-ABI.patch as it is now upstream and rebase
0002-Makefile.arm-remove-march-flags.patch.

Also add a hash for the license file.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
6 years agoopenblas: drop SSE_GENERIC target
Peter Korsgaard [Sun, 1 Apr 2018 08:46:41 +0000 (10:46 +0200)]
openblas: drop SSE_GENERIC target

Fixes #10856

The SSE_GENERIC target fails to build with a "sgemm_kernel.o: No such file
or directory" error. Several upstream bug reports exist for this:

https://github.com/xianyi/OpenBLAS/issues/502
https://github.com/xianyi/OpenBLAS/issues/685

In both cases, upstream suggests using a different target definition
instead.  E.G.  from issue 685:

You may use NORTHWOOD on x86: make TARGET=NORTHWOOD that uses SSE2
instructions.  It's very hard to find non-SSE2 x86 CPUs today.  For x86-64
use the PRESCOTT target

So drop the SSE_GENERIC target.  The only x86_64 variant we support not
covered by a more specific openblas target is the default variant, nocona
and jaguar.

Nocona was a Xeon variant of the P4 "Prescott" architecture, so use the
PRESCOTT openblas target:

https://en.wikipedia.org/wiki/Xeon#Nocona_and_Irwindale

Jaguar is from the Bobcat family, so use the BOBCAT openblas target:

https://en.wikipedia.org/wiki/List_of_AMD_microprocessors#Bobcat_core_architecture_(APU)

[Peter: add Jaguar as pointed out by Arnout]
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
6 years agoopencv3: fix Python module build for Python 3.x
Sasha Shyrokov [Tue, 6 Mar 2018 15:58:10 +0000 (10:58 -0500)]
opencv3: fix Python module build for Python 3.x

When the OpenCV3 Python support is enabled with Python 3.x, it builds
properly, and the resulting .so file is built for the target
architecture, but its name is wrong:

  output/target/usr/lib/python3.6/site-packages/cv2.cpython-36m-x86_64-linux-gnu.so

This prevents Python 3.x from importing the module:

>>> import cv2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'cv2'

In order to fix this, we simply need to pass PKG_PYTHON_DISTUTILS_ENV
in the environment. The Python module then gets named:

  output/target/usr/lib/python3.6/site-packages/cv2.cpython-36m-arm-linux-gnueabi.so

And can be imported properly:

>>> import cv2
>>>

This solution was suggested by Arnout Vandecappelle in
https://stackoverflow.com/questions/49059035/buildroot-opencv3-python-package-builds-for-the-wrong-target.

With Python 2.x, the module is named just cv2.so so this problem isn't
visible. However, for consistency, we also pass
PKG_PYTHON_DISTUTILS_ENV when building against Python 2.x, by putting
the OPENCV3_CONF_ENV assignment inside the
BR2_PACKAGE_OPENCV3_LIB_PYTHON condition, but outside the
BR2_PACKAGE_PYTHON3/BR2_PACKAGE_PYTHON condition.

Signed-off-by: Sasha Shyrokov <alexander-shyrokov@idexx.com>
[Thomas: extend the commit log, apply the solution to Python 2.x.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years ago.gitlab-ci.yml: extend check-package test to Config.* files
Ricardo Martincoski [Sun, 1 Apr 2018 05:08:50 +0000 (02:08 -0300)]
.gitlab-ci.yml: extend check-package test to Config.* files

Now that all issues in Config.in files have been fixed, let's try to
make sure we don't introduce new ones by checking regularly these files
issues in Gitlab CI.

Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Cc: Arnout Vandecappelle <arnout@mind.be>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agoutils/checkpackagelib: exclude four files from Config.in indentation check
Thomas Petazzoni [Sun, 1 Apr 2018 05:08:49 +0000 (02:08 -0300)]
utils/checkpackagelib: exclude four files from Config.in indentation check

package/Config.in, package/Config.in.host, package/x11r7/Config.in and
package/kodi/Config.in do not comply with the normal Config.in
indentation rules. However, this violation of the rule is legitimate, so
let's skip them in check-package for this specific indentation check.

This removes the last 2197 remaining warnings on Config.in files.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
[Ricardo: rebase patch to use relative paths passed by the main script,
          fix flake8 warnings, add package/Config.* to the list]
Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Cc: Yann E. MORIN <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agoscanpypi: generate help text compliant to check-package
Ricardo Martincoski [Sun, 1 Apr 2018 05:08:48 +0000 (02:08 -0300)]
scanpypi: generate help text compliant to check-package

Each line must fit in <tab><2 spaces><62 chars>.
The default width for textwrap.wrap() is 70, so explicit set it to 62.

Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Cc: Yegor Yefremov <yegorslists@googlemail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agopackage/*/Config.in: re-wrap help text
Ricardo Martincoski [Sun, 1 Apr 2018 05:08:47 +0000 (02:08 -0300)]
package/*/Config.in: re-wrap help text

... to follow the convention <tab><2 spaces><62 chars>.

Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agopackage/*/Config.in: fix attributes order
Ricardo Martincoski [Sun, 1 Apr 2018 05:08:37 +0000 (02:08 -0300)]
package/*/Config.in: fix attributes order

... to follow the convention: type, default, depends on, select, help.

Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agocheck-package: enable for Config.in* in base dir
Ricardo Martincoski [Sun, 1 Apr 2018 05:08:30 +0000 (02:08 -0300)]
check-package: enable for Config.in* in base dir

These files can benefit from this script to prevent common mistakes when
submitting patches.

Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: Arnout Vandecappelle <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agoConfig.in*: re-wrap help text
Ricardo Martincoski [Sun, 1 Apr 2018 05:08:39 +0000 (02:08 -0300)]
Config.in*: re-wrap help text

... to follow the convention <tab><2 spaces><62 chars>.

Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agoConfig.in*: fix attributes order
Ricardo Martincoski [Sun, 1 Apr 2018 05:08:33 +0000 (02:08 -0300)]
Config.in*: fix attributes order

... to follow the convention: type, default, depends on, select, help.

Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agoqemu/Config.in.host: fix overindented depends on
Ricardo Martincoski [Sun, 1 Apr 2018 05:08:46 +0000 (02:08 -0300)]
qemu/Config.in.host: fix overindented depends on

Do the same as used in all other Config.in files and use only one tab.

Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Cc: Adam Duskett <aduskett@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agocheck-package: enable for toolchain/
Ricardo Martincoski [Sun, 1 Apr 2018 05:08:29 +0000 (02:08 -0300)]
check-package: enable for toolchain/

The toolchain directory can benefit from this script to prevent common
mistakes when submitting patches.

In order to accomplish this:
Do not ignore anymore files from the toolchain/ directory.
Ignore this symbol:
 - BR_LIBC: defined by the buildroot toolchain, used by gcc-final.mk.

Ignore toolchain/toolchain-external/pkg-toolchain-external.mk as it
declares a package infra and not a package itself.
Ignore toolchain/helpers.mk as it contains only helper functions.

Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Cc: Arnout Vandecappelle <arnout@mind.be>
Cc: Romain Naour <romain.naour@gmail.com>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agotoolchain/*/Config.in: re-wrap help text
Ricardo Martincoski [Sun, 1 Apr 2018 05:08:45 +0000 (02:08 -0300)]
toolchain/*/Config.in: re-wrap help text

... to follow the convention <tab><2 spaces><62 chars>.

Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: Arnout Vandecappelle <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agotoolchain/*/Config.in: fix attributes order
Ricardo Martincoski [Sun, 1 Apr 2018 05:08:38 +0000 (02:08 -0300)]
toolchain/*/Config.in: fix attributes order

... to follow the convention: type, default, depends on, select, help.

Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agocheck-package: enable for linux/
Ricardo Martincoski [Sun, 1 Apr 2018 05:08:25 +0000 (02:08 -0300)]
check-package: enable for linux/

This directory can benefit from this script to prevent common mistakes
when submitting patches.

In order to accomplish this:
Do not ignore anymore files from the linux/ directory.
Ignore missing LINUX_EXT_ prefix as the variables for linux extensions
do not use it.
Ignore this symbol:
 - LINUX_EXTENSIONS: defined by each linux extension, used by
   linux/linux.mk.

Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agolinux/Config.*: re-wrap help text
Ricardo Martincoski [Sun, 1 Apr 2018 05:08:43 +0000 (02:08 -0300)]
linux/Config.*: re-wrap help text

... to follow the convention <tab><2 spaces><62 chars>.

Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agocheck-package: enable for fs/
Ricardo Martincoski [Sun, 1 Apr 2018 05:08:21 +0000 (02:08 -0300)]
check-package: enable for fs/

The filesystem types can benefit from this script to prevent common
mistakes when submitting patches.

In order to accomplish this:
Do not ignore anymore files from the fs/ directory.
Ignore fs/common.mk as it declares a package infra and not a package itself.
Register the ROOTFS_ as a valid prefix for variables.
Ignore these symbols:
 - PACKAGES_PERMISSIONS_TABLE: defined either by packages through
   pkg-generic or by filesystem types, used by fs/common.mk;
 - SUMTOOL: defined by package mtd, used by filesystem jffs2;
 - TARGETS_ROOTFS: defined by filesystem types, used in the main
   Makefile.

Keep using loose checks that warn about common mistakes while keep the
code simple.
As a consequence the check functions do not differentiate between
packages and filesystems so the symbol PACKAGE_UBI would not generate a
warning for the ubi filesystem neither the symbol ROOTFS_MTD would
generate a warning for the mtd package. But those kind of mistakes are
not common and are obvious in the code review, unlike typos i.e.
ROOTFS_UBl or PACKAGE_MID that would be hard to see in the code review.

Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: Yann E. MORIN <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agofs/*/Config.in: re-wrap help text
Ricardo Martincoski [Sun, 1 Apr 2018 05:08:42 +0000 (02:08 -0300)]
fs/*/Config.in: re-wrap help text

... to follow the convention <tab><2 spaces><62 chars>.

Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agofs/*/Config.in: fix attributes order
Ricardo Martincoski [Sun, 1 Apr 2018 05:08:36 +0000 (02:08 -0300)]
fs/*/Config.in: fix attributes order

... to follow the convention: type, default, depends on, select, help.

Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agocheck-package: enable for boot/
Ricardo Martincoski [Sun, 1 Apr 2018 05:08:17 +0000 (02:08 -0300)]
check-package: enable for boot/

This directory can benefit from this script to prevent common mistakes
when submitting patches.

In order to accomplish this:
Do not ignore anymore files from the boot/ directory.
Ignore boot/barebox/barebox.mk as it declares a package infra and not a
package itself.

Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years ago*/Config.in*: remove consecutive empty lines
Ricardo Martincoski [Sun, 1 Apr 2018 05:08:32 +0000 (02:08 -0300)]
*/Config.in*: remove consecutive empty lines

Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agotoolchain/toolchain.mk: fix code style
Ricardo Martincoski [Sun, 1 Apr 2018 05:08:28 +0000 (02:08 -0300)]
toolchain/toolchain.mk: fix code style

Rearrange the header of the .mk file so it becomes similar to a header
from a package. It doesn't fit in one line, so split the details to a
comment below the header.

GCONV_LIBS is only used inside this file, so rename it to start with
TOOLCHAIN_, following the namespace convention already used by packages.

Rename the hook COPY_GCONV_LIBS to TOOLCHAIN_GLIBC_COPY_GCONV_LIBS
following the convention used for hooks in packages.

Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Cc: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agotoolchain/wrapper: fix code style
Ricardo Martincoski [Sun, 1 Apr 2018 05:08:27 +0000 (02:08 -0300)]
toolchain/wrapper: fix code style

The header of the .mk file fits in one line, so rearrange it to be
similar to a header from a package.

Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Cc: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agotoolchain: merge toolchain-common.in to Config.in
Ricardo Martincoski [Sun, 1 Apr 2018 05:08:26 +0000 (02:08 -0300)]
toolchain: merge toolchain-common.in to Config.in

toolchain-common.in is a Config.in file with an uncommon name.
It is just included by toolchain/Config.in, and toolchain/Config.in is
not that long, so instead of renaming the file, merge it to
toolchain/Config.in.

Move the raw contents from the file to the exact location it is
currently included in order to not change the order in the menu.

Update the references in the manual as well.

Suggested-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Cc: Arnout Vandecappelle <arnout@mind.be>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agolinux/linux.mk: use namespace for internal variables
Ricardo Martincoski [Sun, 1 Apr 2018 05:08:24 +0000 (02:08 -0300)]
linux/linux.mk: use namespace for internal variables

These three symbols:
KERNEL_ARCH_PATH
KERNEL_DTBS
KERNEL_DTS_NAME
are defined and used only inside this file, so use the LINUX_ namespace
for them instead of KERNEL_.

Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agolinux/linux*.mk: fix code style
Ricardo Martincoski [Sun, 1 Apr 2018 05:08:23 +0000 (02:08 -0300)]
linux/linux*.mk: fix code style

Use only one space before backslash.
Remove consecutive empty line.
Indent with tabs.

Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agolinux/linux-ext-*.mk: fit file header into one line
Ricardo Martincoski [Sun, 1 Apr 2018 05:08:22 +0000 (02:08 -0300)]
linux/linux-ext-*.mk: fit file header into one line

Make it follow the package coding style by removing redundant info.

Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Cc: Christian Stewart <christian@paral.in>
Cc: David Lechner <david@lechnology.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agofs/*/*.mk: fix code style
Ricardo Martincoski [Sun, 1 Apr 2018 05:08:20 +0000 (02:08 -0300)]
fs/*/*.mk: fix code style

The header of the initramfs.mk file fits in one line, so rearrange it.
Remove consecutive empty line.

Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agofs/ubi: use namespace for internal variable
Ricardo Martincoski [Sun, 1 Apr 2018 05:08:19 +0000 (02:08 -0300)]
fs/ubi: use namespace for internal variable

UBINIZE_CONFIG_FILE_PATH is only used inside this file, so rename it to
start with UBI_, following the namespace convention already used by
common packages.

Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agoboot/*/Config.in: re-wrap help text
Ricardo Martincoski [Sun, 1 Apr 2018 05:08:41 +0000 (02:08 -0300)]
boot/*/Config.in: re-wrap help text

... to follow the convention <tab><2 spaces><62 chars>.

Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agoboot/*/Config.in: fix attributes order
Ricardo Martincoski [Sun, 1 Apr 2018 05:08:35 +0000 (02:08 -0300)]
boot/*/Config.in: fix attributes order

... to follow the convention: type, default, depends on, select, help.

Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agocheck-package: enable for arch/ and system/
Ricardo Martincoski [Sun, 1 Apr 2018 05:08:15 +0000 (02:08 -0300)]
check-package: enable for arch/ and system/

These directories can benefit from this script to prevent common
mistakes when submitting patches.

In order to accomplish this:
Do not ignore anymore files from these directories.

Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Cc: Yann E. MORIN <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agosystem/Config.in: re-wrap help text
Ricardo Martincoski [Sun, 1 Apr 2018 05:08:44 +0000 (02:08 -0300)]
system/Config.in: re-wrap help text

... to follow the convention <tab><2 spaces><62 chars>.

Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agoarch/Config.in*: re-wrap help text
Ricardo Martincoski [Sun, 1 Apr 2018 05:08:40 +0000 (02:08 -0300)]
arch/Config.in*: re-wrap help text

... to follow the convention <tab><2 spaces><62 chars>.

Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agoarch/Config.in*: fix attributes order
Ricardo Martincoski [Sun, 1 Apr 2018 05:08:34 +0000 (02:08 -0300)]
arch/Config.in*: fix attributes order

... to follow the convention: type, default, depends on, select, help.

Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agocheck-package: prepare to extend to other directories
Ricardo Martincoski [Sun, 1 Apr 2018 05:08:14 +0000 (02:08 -0300)]
check-package: prepare to extend to other directories

Currently the script only checks files inside the package/ directory.
Upcoming patches will enable it for other directories.

In order to reliably test for file names, i.e. the Config.in in the base
directory, normalize the path of files to check to a relative path to
the base directory.

Rename the variable that holds the compiled regexp to better represent
its content and rearrange how it is declared to make easy to later add
new directories to check. As a consequence the files that declare
package infra types would not be ignored anymore, so create a new
variable to list the files intree to be ignored during the check. The
same variable will be used by upcoming patches to ignore other files.
Ignore pkg-*.mk and doc-asciidoc.mk since they are package infra files.

In order to not produce weird results when used for files outside the
tree (i.e. in a private br2-external) add an explicit command line
option (-b) that bypasses any checks that would make a file be ignored
by the path that contains it.
When in this out-of-tree mode, the user is responsible for providing a
list of files to check that do not contain files the script does not
understand, e.g. package infra files.

As a result of this patch, besides the known use:
$ ./utils/check-package package/new-package/*
someone with the utils/ directory in the path can now also run:
$ cd package/new-package/
$ check-package *
or
$ check-package -b /path/to/br2-ext-tree/package/staging-package/*

Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agofs/yaffs2: fix code style
Ricardo Martincoski [Sun, 1 Apr 2018 05:08:18 +0000 (02:08 -0300)]
fs/yaffs2: fix code style

Rename the .mk to follow the convention. The variables inside it already
use the correct name.

Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agoboot/*/*.mk: fix code style
Ricardo Martincoski [Sun, 1 Apr 2018 05:08:16 +0000 (02:08 -0300)]
boot/*/*.mk: fix code style

Use only one space before backslash.
Indent with tabs.

Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agoutils/scanpypi: don't hardcode python2
Peter Korsgaard [Fri, 30 Mar 2018 21:48:07 +0000 (23:48 +0200)]
utils/scanpypi: don't hardcode python2

Commit 3a0c20c5309b (scanpypi: add support for Python3) adapted the script
to work with python 3.x, but the shebang still said python2 making it
unlikely to work on systems without python 2.x.

Change it to just 'python' instead.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Reviewed-by: Yegor Yefremov <yegorslists@googlemail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agonetcat: force-remove nc link before install
Arnout Vandecappelle (Essensium/Mind) [Sat, 31 Mar 2018 22:28:21 +0000 (00:28 +0200)]
netcat: force-remove nc link before install

The nc -> netcat symlink is not created if nc exists already, e.g.
from busybox.

For netcat itself this is not needed, it is always installed.

Cc: Carlos Santos <casantos@datacom.ind.br>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
6 years agonetcat: add forced dependence on BusyBox
Carlos Santos [Thu, 12 Oct 2017 15:14:18 +0000 (12:14 -0300)]
netcat: add forced dependence on BusyBox

It may be necessary if packages become built in parallel, leading to a
race condition on the creation of the "nc" link.

Of course this still leaves a race conditon if other netcat competitors
but we must assume thet the user is a grown-up person who knows what is
doing.

Signed-off-by: Carlos Santos <casantos@datacom.ind.br>
[Arnout: Don't force-remove the existing nc, not needed according to
         Romain.]
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
6 years agopackage/kodi: remove imx support
Bernd Kuhls [Sun, 4 Mar 2018 15:06:06 +0000 (16:06 +0100)]
package/kodi: remove imx support

https://git.buildroot.net/buildroot/commit/?id=266208972192f1e0869f89d7be941de6294a810a
broke imx support in Kodi because previously the G2D libraries were
part of the imx-gpu-viv package:

CMake Error at /usr/share/cmake-3.7/Modules/FindPackageHandleStandardArgs.cmake:138 (message):
  Could NOT find IMX (missing: G2D_LIBRARY)

Adjusting the Kodi package to use the imx-gpu-g2d as well still does
not provide a working build:

/home/buildroot/br4/output/build/kodi-17.6-Krypton/xbmc/linux/imx/IMX.cpp: In member function 'void CIMX::Deinitialize()':
/home/buildroot/br4/output/build/kodi-17.6-Krypton/xbmc/linux/imx/IMX.cpp:79:21: error: 'DCIC_IOC_STOP_VSYNC' was not declared in this scope
     ioctl(m_fddcic, DCIC_IOC_STOP_VSYNC, 0);
                     ^~~~~~~~~~~~~~~~~~~
/home/buildroot/br4/output/build/kodi-17.6-Krypton/xbmc/linux/imx/IMX.cpp: In member function 'bool CIMX::UpdateDCIC()':
/home/buildroot/br4/output/build/kodi-17.6-Krypton/xbmc/linux/imx/IMX.cpp:109:19: error: 'DCIC_IOC_STOP_VSYNC' was not declared in this scope
   ioctl(m_fddcic, DCIC_IOC_STOP_VSYNC, 0);
                   ^~~~~~~~~~~~~~~~~~~
/home/buildroot/br4/output/build/kodi-17.6-Krypton/xbmc/linux/imx/IMX.cpp:115:21: error: 'DCIC_IOC_START_VSYNC' was not declared in this scope
     ioctl(m_fddcic, DCIC_IOC_START_VSYNC, 0);
                     ^~~~~~~~~~~~~~~~~~~~
/home/buildroot/br4/output/build/kodi-17.6-Krypton/xbmc/linux/imx/IMX.cpp: In member function 'virtual void CIMX::Process()':
/home/buildroot/br4/output/build/kodi-17.6-Krypton/xbmc/linux/imx/IMX.cpp:125:19: error: 'DCIC_IOC_START_VSYNC' was not declared in this scope
   ioctl(m_fddcic, DCIC_IOC_START_VSYNC, 0);
                   ^~~~~~~~~~~~~~~~~~~~
/home/buildroot/br4/output/build/kodi-17.6-Krypton/xbmc/linux/imx/IMX.cpp:131:19: error: 'DCIC_IOC_STOP_VSYNC' was not declared in this scope
   ioctl(m_fddcic, DCIC_IOC_STOP_VSYNC, 0);
                   ^~~~~~~~~~~~~~~~~~~

Although it might be possible to fix these bugs with something like

#define DCIC_IOC_CONFIG_DCIC    _IO('D', 12)
#define DCIC_IOC_START_VSYNC    _IO('D', 15)
#define DCIC_IOC_STOP_VSYNC     _IO('D', 16)

as done in
https://raw.githubusercontent.com/LibreELEC/LibreELEC.tv/libreelec-7.0/projects/imx6/patches/kodi/imx6-jarvis.patch

we would still try to ride a dead horse. The upcoming Kodi version
18.0-Leia will remove imx support completely, see upstream PR 12990.

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Reviewed-by: Gary Bisson <gary.bisson@boundarydevices.com>
[Thomas: keep an explicit -DENABLE_IMX=OFF in CONF_OPTS.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agopackage/freescale-imx: Remove imx6s from has_vpu list
Bernd Kuhls [Sun, 4 Mar 2018 15:06:05 +0000 (16:06 +0100)]
package/freescale-imx: Remove imx6s from has_vpu list

According to imx-vpu-5.4.37/Makefile, line 6:

INCLUDE_LIST:= IMX27ADS IMX51 IMX53 IMX6Q

imx6s is not supported by the imx-vpu package. Its install target,
guarded by

ifeq ($(PLATFORM), $(findstring $(PLATFORM), $(INCLUDE_LIST)))

does nothing, causing a build error later on in the imx-vpuwrap package

checking for vpu_lib.h... no
configure: error: lib_vpu is required, consider installing imx-lib

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Reviewed-by: Gary Bisson <gary.bisson@boundarydevices.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agocheck-package: Flag usage of '\t \\$'.
Nicolas Cavallari [Wed, 7 Mar 2018 09:48:12 +0000 (10:48 +0100)]
check-package: Flag usage of '\t \\$'.

check-package would flag tabs before a backslash ('\t\\'),
two spaces before a backslash ('  \\') but would not flag a tab before space
before backslash ('\t \\'), allowing someone to bypass the check.

Signed-off-by: Nicolas Cavallari <nicolas.cavallari@green-communications.fr>
Reviewed-by: Ricardo Martincoski <ricardo.martincoski@datacom.ind.br>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agoconfigs/s6lx9_microboard_defconfig: purge custom dts boolean
Rafal Susz [Tue, 13 Mar 2018 18:00:06 +0000 (19:00 +0100)]
configs/s6lx9_microboard_defconfig: purge custom dts boolean

Since custom dts files are unconditionally handled *KERNEL_USE_CUSTOM_DTS
is no longer available/needed.

Signed-off-by: Rafal Susz <rafal.susz@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
6 years agopackage/linux: fix custom dts files handling
Rafal Susz [Tue, 13 Mar 2018 18:00:05 +0000 (19:00 +0100)]
package/linux: fix custom dts files handling

Custom dts files are still conditionally copied based on non existing
boolean. So it is currently not possible to use custom dts file(s) at all.

List of dts files is now iterated and files are copied into dedicated kernel arch dir.

Signed-off-by: Rafal Susz <rafal.susz@gmail.com>
Tested-by: Jan Kundrát <jan.kundrat@cesnet.cz>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
6 years agopackage/xterm: Avoid freetype2 path poisoning using imake
Valentin Korenblit [Tue, 27 Mar 2018 07:44:34 +0000 (09:44 +0200)]
package/xterm: Avoid freetype2 path poisoning using imake

When imake is installed on the host, it tries to include
freetype headers from host, so we must override ac_cv_path_IMAKE
to avoid this.

Extract from config.log:

configure:14803: checking if we should use imake to help
configure:14820: result: yes
configure:14829: checking for xmkmf
configure:14846: found /usr/bin/xmkmf
configure:14857: result: /usr/bin/xmkmf
configure:14920: testing Using /usr/bin/xmkmf  ...
configure:15015: testing IMAKE_CFLAGS  -I. -I/usr/include/freetype2

Signed-off-by: Valentin Korenblit <valentin.korenblit@smile.fr>
[Thomas: pass ac_cv_path_IMAKE="" as suggested by Romain Naour.]
Reviewed-by: Romain Naour <romain.naour@smile.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agomeson: fix error when restorecon unavailable
Fabrice Fontaine [Tue, 13 Mar 2018 21:18:25 +0000 (22:18 +0100)]
meson: fix error when restorecon unavailable

host-meson is used by some packages such as libmpdclient.
If selinuxenabled is installed on host but restorecon is unavailable
(for an "unknwown" reason), install will crash.

Fixes:
 - http://autobuild.buildroot.net/results/d5dcdfdfab3503fdc387f99e68267972a38c417d

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agopackage/libbsd: enable for non-glibc toolchains
Jörg Krause [Wed, 14 Mar 2018 19:43:56 +0000 (20:43 +0100)]
package/libbsd: enable for non-glibc toolchains

libbsd builds now almost fine with a musl or uClibc toolchain, except
for one issue introduced in the latest version bump. Upstream commit
22fbd62368c39de8ac5e249d1502d5ac0ffdef30 [1] uses the glibc-only macro
`__GLIBC_PREREQ`. The issue is fixed by the attached patch from upstream,
which fixes the use of `__GLIBC_PREREQ` on non-glibc toolchains.

Backported from:
https://cgit.freedesktop.org/libbsd/patch/?id=1f8a3f7bccfc84b195218ad0086ebd57049c3490

netcat-openbsd is the only package selecting libbsd. However, building
it still needs a glibc toolchain, as it uses `b64_ntop` which is not
available in musl or uClibc.

Build has been successfully tested with:
 * armv7-eabihf--glibc--bleeding-edge-2017.11-1
 * armv7-eabihf--musl--bleeding-edge-2018.02-1
 * armv7-eabihf--uclibc--bleeding-edge-2018.02-1

[1] https://cgit.freedesktop.org/libbsd/commit/?id=22fbd62368c39de8ac5e249d1502d5ac0ffdef30

Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years ago.gitlab-ci.yml: check flake8
Ricardo Martincoski [Tue, 13 Mar 2018 03:09:44 +0000 (00:09 -0300)]
.gitlab-ci.yml: check flake8

Add a test to check Python code style in the whole buildroot tree.

Search files by type in order to help flake8 to find the Python scripts
without .py extension. But don't rely only in the output of 'file' as it
uses heuristics and sometimes it is wrong (specially identifying Python
files as C++ source for the 'file' version currently in the Docker
image).

Include in the output:
 - the list of Python files processed;
 - statistics for each kind of warning;
 - the total number of warnings;
 - the number of Python files processed.

Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Cc: Arnout Vandecappelle <arnout@mind.be>
Cc: Yann E. MORIN <yann.morin.1998@free.fr>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years ago.gitlab-ci.yml: use image with flake8
Ricardo Martincoski [Fri, 30 Mar 2018 23:10:55 +0000 (20:10 -0300)]
.gitlab-ci.yml: use image with flake8

Bump the docker image to the latest tag to have flake8 pre-installed.

Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com>
Cc: Arnout Vandecappelle <arnout@mind.be>
Cc: Peter Korsgaard <peter@korsgaard.com>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: Yann E. MORIN <yann.morin.1998@free.fr>
Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agowine: depend on shared libraries
André Hentschel [Thu, 15 Mar 2018 19:45:54 +0000 (20:45 +0100)]
wine: depend on shared libraries

Even if --enable-static --disable-shared is passed, wine tries to
build a shared library, causing a build failure in a BR2_STATIC_LIBS=y
configuration:

/home/test/buildroot/output/host/i686-buildroot-linux-uclibc/sysroot/usr/lib/libc.a(__uClibc_main.os): In function `__uClibc_fini':
__uClibc_main.c:(.text.__uClibc_fini+0x10): undefined reference to `__fini_array_start'
/home/test/buildroot/output/host/lib/gcc/i686-buildroot-linux-uclibc/6.4.0/../../../../i686-buildroot-linux-uclibc/bin/ld: /home/test/buildroot/output/host/i686-buildroot-linux-uclibc/sysroot/usr/lib/libc.a(__uClibc_main.os): relocation R_386_GOTOFF again
st undefined hidden symbol `__fini_array_start' can not be used when making a shared object
/home/test/buildroot/output/host/lib/gcc/i686-buildroot-linux-uclibc/6.4.0/../../../../i686-buildroot-linux-uclibc/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
make[2]: *** [libwine.so.1.0] Error 1
make[2]: Leaving directory `/home/test/buildroot/output/build/wine-3.0/libs/wine'
make[1]: *** [libs/wine] Error 2

Since using wine in a static linking environment is fairly unlikely,
we simply mark the wine package unavailable on static-only
configurations.

Since we need to add a Config.in comment, we also introduced a
BR2_PACKAGE_WINE_ARCH_SUPPORTS hidden boolean, to share the
architecture dependencies definition between the wine config option
and the comment.

Signed-off-by: André Hentschel <nerv@dawncrow.de>
[Thomas:
 - add a comment in the Config.in file about the dependency
 - add BR2_PACKAGE_WINE_ARCH_SUPPORTS
 - extend the commit log]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agoinfra/pkg-kconfig: do not update-(def)config to a directory
Yann E. MORIN [Fri, 1 Dec 2017 15:09:46 +0000 (16:09 +0100)]
infra/pkg-kconfig: do not update-(def)config to a directory

Currently, if the user specifies the path to an existing directory as
the path to the custom (def)config file (FOO_KCONFIG_FILE), then we
happily create a file in there, either 'defconfig' or '.config' (or
whatever the .config is named for that package), depending on whether
we're saving a defconfig or a full config.

So, we could save the file, but then the Buildroot defconfig file that
contains that path would no longer be reusable as-is, because we
interpret that path as a path to a file.

Furthermore, if the directory-portion of FOO_KCONFIG_FILE does not
exist yet, the update would fail, because cp does not create missing
directory components.

So we fix that by adding an explicit test for the directory-ness of the
target file, and then an explicit mkdir to create missing directory
components.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agoinfra/pkg-config: hide away non-critical commands
Yann E. MORIN [Fri, 1 Dec 2017 15:09:45 +0000 (16:09 +0100)]
infra/pkg-config: hide away non-critical commands

When updating back the (def)config file, the touch command is not very
useful by default, so hide it away.

We do not hide away the cp command, as that could confuse the user under
some circunmstances. For example, when the toolchain does not yet exist,
the uClibc buildsystem will complain multiple times about gcc not being
found, like so:

    make[2]: /home/ymorin/dev/buildroot/O/host/bin/i686-buildroot-linux-uclibc-gcc: Command not found

(Note that we can not suppress those warnings, as they are on stderr,
and we still want to see stderr in case of real errors).

So, if we were to hide the cp command, the user could be left confused,
even though we were sucessful in updating back the (def)config file.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agoinfra/pkg-kconfig: commonalise update-(def)config code
Yann E. MORIN [Fri, 1 Dec 2017 15:09:44 +0000 (16:09 +0100)]
infra/pkg-kconfig: commonalise update-(def)config code

Except for the nice human-friendly reminder of the command that the user
was just running, and the name of the file to copy from, those two rules
are exactly the same.

Make that a common macro that is shared, so that it's easier to add more
checks, and to simplify maintenance.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agoMakefile: Ensure BASE_TARGET_DIR exists, not TARGET_DIR
Peter Korsgaard [Sat, 31 Mar 2018 19:03:57 +0000 (21:03 +0200)]
Makefile: Ensure BASE_TARGET_DIR exists, not TARGET_DIR

This was present in Yann's original patch, but got dropped when I rebased
commit 7e9870ce32 (core: introduce intermediate BASE_TARGET_DIR variable) to
fix the Makefile conflicts.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
6 years agolua: always use host-lua for host-luainterpreter
Peter Korsgaard [Sat, 21 Oct 2017 20:54:57 +0000 (22:54 +0200)]
lua: always use host-lua for host-luainterpreter

Similar to how we do for openssl.

host-luainterpreter is only used by the luarocks infrastructure, and there
is afaik no specific reason why the host lua variant must match the target one.

Luajit only supports a limited number of architectures, so building it for
the host limits the architectures Buildroot can be used on (E.G. powerpc64
autobuilders).

To fix this, always use host-lua.  Slightly rework lua.mk to ensure
host-lua-5.1 is used when luajit is selected, and drop the logic for using
host-luajit.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agoktap: bump version for linux-4.8 support
Peter Korsgaard [Sat, 31 Mar 2018 10:27:11 +0000 (12:27 +0200)]
ktap: bump version for linux-4.8 support

Fixes #10776

The upstream git repo contains a number of fixes for building against newer
kernel versions, so bump the version.

git shortlog eb66d40310c93dc82bc8eac889744c1ed1f01f7b..
Alain Kalker (2):
      uprobe: Print the symbol, not the matching pattern
      uprobe: Blacklist uretprobes on _start

Aleksa Sarai (2):
      runtime: update GFP_WAIT to GFP_RECLAIM
      userspace: fix up argument parsing NULL dereference

Alexey Makhalov (1):
      Fix building for v4.8 kernel

Azat Khuzhin (12):
      Use get_unused_fd_flags(0) instead of get_unused_fd()
      Support trace_seq::seq
      Ignore separate debug files (*.dwo)
      Use trace_seq_has_overflowed()
      makefile: split vim plugins installing into separate target
      makefile: use DESTDIR for install (allow to change install dir)
      makefile: install: create dirs
      makefile: use ldflags for linking ktap
      makefile: add CPPFLAGS to KTAPC_CFLAGS, to allow change default flags
      ignore: exclude /debian
      Support compilation for 4.2 (ftrace_events cleanup)
      runtime: fix building on 4.3

Jovi Zhangwei (11):
      Merge pull request #84 from azat/linux-3.19-fixes-v3
      Merge pull request #85 from azat/debian-preparations-v2
      Merge pull request #88 from NanXiao/master
      Merge pull request #89 from NanXiao/patch-1
      Merge pull request #91 from NanXiao/patch-1
      Merge pull request #90 from azat/linux-4.2-compilation-fixes
      Merge pull request #99 from cyphar/fix-null-deref
      Merge pull request #98 from cyphar/fix-gfp-reclaim
      Merge pull request #97 from azat/fix-building-4.3-__GFP_RECLAIM
      Merge pull request #103 from ackalker/blacklist
      Merge pull request #104 from YustasSwamp/master

Nan Xiao (3):
      Update tutorial.md
      Update Makefile
      Fix memory leak issue in main function.

WEI ZHANG (1):
      ktap: Change the copyright to Huawei Technologies

While we are at it, also add a hash for the license file.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
6 years agoDEVELOPERS: add myself for a number of unmaintained boards
Peter Korsgaard [Sat, 31 Mar 2018 07:22:51 +0000 (09:22 +0200)]
DEVELOPERS: add myself for a number of unmaintained boards

These boards I own and currently have no entries in DEVELOPERS, so add them.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
6 years agofs: remove intermediate artefacts
Yann E. MORIN [Sat, 31 Mar 2018 09:06:01 +0000 (11:06 +0200)]
fs: remove intermediate artefacts

Each of the intermediate, per-rootfs target directories, as well as the
intermediate tarball, can take quite some place, and is mostly a
duplication of what's already in target/. The only delta, if any, would
be the tweaks made by the filesystem image generations, but those tweaks
are most probably only meaningful when seen as root.

We normally do not remove intermediate files, but those can be quite
large, and are not directly usable by, nor accessible to the user.
So, get rid of them once the filesystem has been generated.

This does not need to be done in fakeroot.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: Arnout Vandecappelle <arnout@mind.be>
Tested-by: Matt Weber <matthew.weber@rockwellcollins.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
6 years agofs: get rid of package-provided post-fs hooks
Yann E. MORIN [Sat, 31 Mar 2018 09:06:00 +0000 (11:06 +0200)]
fs: get rid of package-provided post-fs hooks

Now that the pre-fs ones are run on a transient copy of target/, the
post-fs hooks are no longer needed because we no longer need to restore
the target/ directory as it is only a internal copy.

Remove support for the post-fs hooks, and update the sole package using
them.

We do not add a legacy check because this was mostly a purely-internal
detail that was never really exposed nor documented.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: Arnout Vandecappelle <arnout@mind.be>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
6 years agofs: run packages' filesystem hooks in a copy of target/
Yann E. MORIN [Sat, 31 Mar 2018 09:05:59 +0000 (11:05 +0200)]
fs: run packages' filesystem hooks in a copy of target/

Currently, some packages may register hooks to be run just before and
just after the generic tarball image is generated, because they need to
prepare the filesystem for read-only or read-write operation.

However, this means that, if any of the hooks or the image generation
fails, the target directory is left in a dangling, inconsistent state.

We fix that by doing a copy of target/, run the hooks on that copy,
generate the generic tarball image out of that, and get rid of the copy.

This way, we can guarantee consistency of the target directory, and we
can even ditch support for post-fs hooks (those that restore target/).

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: Arnout Vandecappelle <arnout@mind.be>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
6 years agofs: use a common tarball as base for the other filesystems
Yann E. MORIN [Sat, 31 Mar 2018 09:05:58 +0000 (11:05 +0200)]
fs: use a common tarball as base for the other filesystems

Currently, some filesystems may want to tweak the content of the target
directory, create special device nodes etc... This all means that:

  - the content of the target directory for a specific filesystems may
    depend on whether another filesystem is enabled or not; for example,
    cpio will create a /init script or symlink and a /dev/console node;

  - the filesystems can not be built in parallel, because they may change
    the content of the target directory while another is being assembled.

Furthermore, the same fakeroot script is executed over-and-over-again
for each filesystem, to create the device nodes, the users and their
homes and files, and setting permissions...

We introduce an intermediate tarball, for which we do the full fakeroot
shebang.

That tarball then serves as the base for the other filesystems, with a
very simple fakeroot script that untars the common tarball, and calls
the actual filesystem image generator on that.

Note that we use a very simple tar command to generate the intermediate
tarball, because we are not concerned with reproducibility of the
archive itself (only of the archived files).

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: Arnout Vandecappelle <arnout@mind.be>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
6 years agofs: introduce a macro for reproducible command
Yann E. MORIN [Sat, 31 Mar 2018 09:05:57 +0000 (11:05 +0200)]
fs: introduce a macro for reproducible command

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: Arnout Vandecappelle <arnout@mind.be>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
6 years agofs: new intermediate rootfs-common to gather common dependencies
Yann E. MORIN [Sat, 31 Mar 2018 09:05:56 +0000 (11:05 +0200)]
fs: new intermediate rootfs-common to gather common dependencies

Before we can create an intermediate tarball for all filesystems, we
nedd to move the common dependencies needed to generate that
intermediate tarball, rather than leave those dependencies to each
filesystem.

So, we introduce rootfs-common, which gathers all those common
dependencies.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: Arnout Vandecappelle <arnout@mind.be>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
6 years agofs: introduce per-rootfs TARGET_DIR variable
Yann E. MORIN [Sat, 31 Mar 2018 09:05:55 +0000 (11:05 +0200)]
fs: introduce per-rootfs TARGET_DIR variable

... which for now still points to the base target directory, but this is
a step forward.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: Arnout Vandecappelle <arnout@mind.be>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
6 years agofs: split per-rootfs dependency line
Yann E. MORIN [Sat, 31 Mar 2018 09:05:54 +0000 (11:05 +0200)]
fs: split per-rootfs dependency line

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: Arnout Vandecappelle <arnout@mind.be>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
6 years agofs: use a per-rootfs fakeroot script
Yann E. MORIN [Sat, 31 Mar 2018 09:05:53 +0000 (11:05 +0200)]
fs: use a per-rootfs fakeroot script

... and locate that script in a per-rootfs directory.

Just like for ROOTFS, this variable will leak down the dependency tree to
target-finalize and packages - But it doesn't matter as it isn't used
outside fs/.

[Peter: extend commit message]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: Arnout Vandecappelle <arnout@mind.be>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
6 years agofs: define per-rootfs directory
Yann E. MORIN [Sat, 31 Mar 2018 09:05:52 +0000 (11:05 +0200)]
fs: define per-rootfs directory

This will serve in future commits to store pre-rootfs files, like
fakeroot script...

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: Arnout Vandecappelle <arnout@mind.be>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
6 years agofs: set per-rootfs variable name
Yann E. MORIN [Sat, 31 Mar 2018 09:05:51 +0000 (11:05 +0200)]
fs: set per-rootfs variable name

Like we do for packages with the PKG variable, set ROOTFS to contain the
upper-case name of the rootfs currently being generated.

This will be useful in later patches, when we need more per-rootfs
variables, like a per-rootfs TARGET_DIR for example.

In Makefiles, per-rule variables trickle down the dependency chain, to
all dependencies of that rule, so we have to stop ROOTFS as soon as
we're not in a rootfs. This means we have to stop it at target-finalize
(which is a dependency of all filesystems), and for each package
individually, since some packages (host or target) can be direct
dependencies of filesystems as well.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: Arnout Vandecappelle <arnout@mind.be>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
6 years agocore: introduce intermediate BASE_TARGET_DIR variable
Yann E. MORIN [Sat, 31 Mar 2018 09:05:50 +0000 (11:05 +0200)]
core: introduce intermediate BASE_TARGET_DIR variable

This new BASE_TARGET_DIR variable is set in stone to point to the real
location where packages will be installed. Its name is modelled after
its definition: it is located in $(BASE_DIR), and it is named 'target/',
hence BASE_TARGET_DIR.

The already-existing TARGET_DIR variable now simply points to the same
location, except that it is recursively expanded, so that we can later
change it depending on the context.

All locations that really need to reference the existing target/
directory, are changed to use BASE_TARGET_DIR; surprinsigly enough, they
all seem to be located in the main Makefile. :-) The rest is left with
using good-old TARGET_DIR.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: Arnout Vandecappelle <arnout@mind.be>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
6 years agofs/iso9660: rename internal variable
Yann E. MORIN [Sat, 31 Mar 2018 09:05:49 +0000 (11:05 +0200)]
fs/iso9660: rename internal variable

We're soon to introduce a generic variable with that name, i.e.
$(FS_NAME)_TARGET_DIR, so our internal, temporary variable would
clash with it.

Just rename it.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: Arnout Vandecappelle <arnout@mind.be>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
6 years agofs/cpio: don't extend packages' permissions table
Yann E. MORIN [Sat, 31 Mar 2018 09:05:48 +0000 (11:05 +0200)]
fs/cpio: don't extend packages' permissions table

Currently, when we build a cpio filesystem without static devices, we
shoehorn the /dev/console node as if it were specified by a package.

This means that this device is added for all filesystems as well, not
just the cpio. But if we disable cpio, that device is not created for
other filesystems.

This is not very clean, and may break expectations.

Instead, use an explicit mknod as part of the _CMD, as we know it's
going to run under fakeroot.

This is still visible to all filesystems built after cpio, and not to
those built before it, though.

[Peter: ensure /dev exists, simplify comment]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: Arnout Vandecappelle <arnout@mind.be>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
6 years agofs: run filesystem hooks under fakeroot
Yann E. MORIN [Sat, 31 Mar 2018 09:05:47 +0000 (11:05 +0200)]
fs: run filesystem hooks under fakeroot

Currently, the pre-gen hooks of the various filesystems are run before
we enter the fakeroot.

However, this precludes those hooks from doing actions that require
root, like creating a pseudo-device or the likes.

So, move those pre-gen hooks under fakeroot.

This has currently no side-effect, as they are still called before
everything else in the fakeroot script, even the system-wide chown call.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: Arnout Vandecappelle <arnout@mind.be>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
6 years agopackage/dovecot: add optional support for libsodium
Bernd Kuhls [Sat, 31 Mar 2018 16:34:58 +0000 (18:34 +0200)]
package/dovecot: add optional support for libsodium

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agolinux-headers: bump 4.{4, 9, 14, 15}.x series
Fabio Estevam [Sat, 31 Mar 2018 18:34:58 +0000 (15:34 -0300)]
linux-headers: bump 4.{4, 9, 14, 15}.x series

Signed-off-by: Fabio Estevam <festevam@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agolinux: bump default to version 4.15.15
Fabio Estevam [Sat, 31 Mar 2018 18:34:57 +0000 (15:34 -0300)]
linux: bump default to version 4.15.15

Signed-off-by: Fabio Estevam <festevam@gmail.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agopackage/docker-engine: convert to golang infrastructure
Angelo Compagnucci [Wed, 7 Mar 2018 22:19:38 +0000 (23:19 +0100)]
package/docker-engine: convert to golang infrastructure

Signed-off-by: Angelo Compagnucci <angelo@amarulasolutions.com>
[Thomas:
 - adapt to the changes in the golang-package infrastructure
 - keep the logic to support BR2_PACKAGE_DOCKER_ENGINE_STATIC_CLIENT]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agopackage/apache: add optional support for lua
Bernd Kuhls [Fri, 30 Mar 2018 16:50:36 +0000 (18:50 +0200)]
package/apache: add optional support for lua

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agopackage/docker-proxy: convert to golang infrastructure
Thomas Petazzoni [Sat, 31 Mar 2018 13:27:36 +0000 (15:27 +0200)]
package/docker-proxy: convert to golang infrastructure

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
[Arnout: remove automatically added host-go dependency]
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
6 years agopackage/docker-containerd: convert to golang infrastructure
Angelo Compagnucci [Sat, 31 Mar 2018 13:27:34 +0000 (15:27 +0200)]
package/docker-containerd: convert to golang infrastructure

Signed-off-by: Angelo Compagnucci <angelo@amarulasolutions.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
6 years agopackage/runc: convert to golang infrastructure
Angelo Compagnucci [Sat, 31 Mar 2018 13:27:33 +0000 (15:27 +0200)]
package/runc: convert to golang infrastructure

Signed-off-by: Angelo Compagnucci <angelo@amarulasolutions.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
6 years agopackage/flannel: convert to golang infrastructure
Angelo Compagnucci [Sat, 31 Mar 2018 13:27:32 +0000 (15:27 +0200)]
package/flannel: convert to golang infrastructure

Signed-off-by: Angelo Compagnucci <angelo@amarulasolutions.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
6 years agodocs/manual: add documentation for the golang infrastructure
Angelo Compagnucci [Sat, 31 Mar 2018 13:27:31 +0000 (15:27 +0200)]
docs/manual: add documentation for the golang infrastructure

This patch adds the documentation for the golang infrastructure.

Signed-off-by: Angelo Compagnucci <angelo@amarulasolutions.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
6 years agopackage/pkg-golang: new package infrastructure
Angelo Compagnucci [Sat, 31 Mar 2018 13:27:30 +0000 (15:27 +0200)]
package/pkg-golang: new package infrastructure

This patch adds a new infrastructure for golang based packages.

Signed-off-by: Angelo Compagnucci <angelo@amarulasolutions.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
[Arnout:
 - Rewrap comments to 80 columns.
 - Create a global definition of GO_TARGET_ENV.
 - <PKG>_GO_ENV is appended to the default env instead of replacing it.
 - Add a note to inner-golang-package that only target is supported.
]
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
6 years agodocker-containerd: remove symlink to $(RUNC_SRCDIR)
Thomas Petazzoni [Sat, 31 Mar 2018 13:27:29 +0000 (15:27 +0200)]
docker-containerd: remove symlink to $(RUNC_SRCDIR)

The DOCKER_CONTAINERD_CONFIGURE_CMDS creates a symlink to runc's
source directory, but it does not build depend on runc, which means
that the runc package may not have been extracted/built before
docker-containerd.

Therefore, when doing a build with "make docker-containerd", this
symbolic link is broken, but it doesn't prevent docker-containerd from
building.

Therefore, this symlink is not necessary and can be dropped.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
6 years agoMakefile: create symlink to non-default HOST_DIR
Arnout Vandecappelle (Essensium/Mind) [Fri, 4 Aug 2017 16:31:30 +0000 (18:31 +0200)]
Makefile: create symlink to non-default HOST_DIR

If BR2_HOST_DIR is not the default, it can be difficult to find the
host directory (i.e., HOST_DIR always has to be passed explicitly in
addition to the output directory). For example, the Eclipse plugin
assumes that HOST_DIR=BASE_DIR/host.

Create a symlink from $(BASE_DIR)/host to $(HOST_DIR) if it is not the
default. Also remove it in the clean target.

When BR2_HOST_DIR is the default, HOST_DIR_SYMLINK will be empty so
there will be no additional dependency to dirs and nothing to remove
in clean.

Fixes https://bugs.busybox.net/show_bug.cgi?id=10151

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agoMakefile: move mkdir rule to after HOST_DIR is defined
Arnout Vandecappelle (Essensium/Mind) [Fri, 4 Aug 2017 16:31:29 +0000 (18:31 +0200)]
Makefile: move mkdir rule to after HOST_DIR is defined

HOST_DIR is defined twice: once to its default value before .config is
included, and once more to BR2_HOST_DIR after .config is included.
However, the rule that defines the mkdir for HOST_DIR comes between
these two, so it will always use the default definition. Therefore,
if a non-default BR2_HOST_DIR is used, there will be no rule to create
that directory, while the dirs target depends on it.

This happens to work at the moment, because in the dirs target,
$(STAGING_DIR) comes before $(HOST_DIR), so $(HOST_DIR) will be created
implicitly. However, this will fail in top-level parallel builds where
both will be created in parallel.

Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agopython-libusb1: new package
Jaap Crezee [Mon, 4 Sep 2017 15:19:54 +0000 (17:19 +0200)]
python-libusb1: new package

License info from PyPI is wrong: it is LGPL-2.1+, not GPL-2.0. The
package includes a COPYING file with GPL-2.0, but since it is really
LGPL-2.1+ only the COPYING.LESSER file is relevant.

Signed-off-by: Jaap Crezee <jaap@jcz.nl>
[Arnout: regenerate with scanpypi, fix legal info]
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
6 years agoutils/genrandconfig: use --no-check-certificate in wget by default
Thomas Petazzoni [Sat, 2 Sep 2017 21:29:38 +0000 (23:29 +0200)]
utils/genrandconfig: use --no-check-certificate in wget by default

A number of autobuilder failures are due to the fact that autobuilder
instances use old distributions, with old SSL certificates, and
therefore wget aborts with an error "The certificate of `xyz.org' is
not trusted.".

In order to avoid such failures that are not very interesting in the
context of the autobuilders, we pass --no-check-certificate to
wget. The integrity of the downloaded files is anyway verified by the
hashes, and this is only meant to be used in the context of
testing/CI, not in production.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
6 years agonodejs: security bump to version 8.11.1
Peter Korsgaard [Sat, 31 Mar 2018 06:11:55 +0000 (08:11 +0200)]
nodejs: security bump to version 8.11.1

Fixes the following security issues:

- Fix for inspector DNS rebinding vulnerability (CVE-2018-7160): A malicious
  website could use a DNS rebinding attack to trick a web browser to bypass
  same-origin-policy checks and allow HTTP connections to localhost or to
  hosts on the local network, potentially to an open inspector port as a
  debugger, therefore gaining full code execution access.  The inspector now
  only allows connections that have a browser Host value of localhost or
  localhost6.

- Fix for 'path' module regular expression denial of service
  (CVE-2018-7158): A regular expression used for parsing POSIX paths could
  be used to cause a denial of service if an attacker were able to have a
  specially crafted path string passed through one of the impacted 'path'
  module functions.

- Reject spaces in HTTP Content-Length header values (CVE-2018-7159): The
  Node.js HTTP parser allowed for spaces inside Content-Length header
  values.  Such values now lead to rejected connections in the same way as
  non-numeric values.

While we are at it, also add a hash for the license file.

Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
6 years agopackage/zsh: remove busybox show others dependency
Romain Naour [Sat, 31 Mar 2018 10:55:30 +0000 (12:55 +0200)]
package/zsh: remove busybox show others dependency

Back in 2013, zsh was added to Buildroot [1] with the dependency on
BR2_PACKAGE_BUSYBOX_SHOW_OTHERS. This dependency was keept with the
refactoring [2].
But Busybox doesn't provide a zsh shell in the firt place.
This dependency can be removed.

[1] 3d19b7ef598f3534b46cf0746a81bc437579127c
[2] 1dbd7b991025a8bf39ab5d25c2fd97f47f084bac

Signed-off-by: Romain Naour <romain.naour@smile.fr>
Cc: Phil Eichinger <phil.eichinger@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
6 years agosquid: add optional dependency on libkrb5
André Hentschel [Wed, 7 Mar 2018 20:15:58 +0000 (21:15 +0100)]
squid: add optional dependency on libkrb5

Signed-off-by: André Hentschel <nerv@dawncrow.de>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agolibkrb5: new package
André Hentschel [Wed, 7 Mar 2018 20:15:57 +0000 (21:15 +0100)]
libkrb5: new package

Signed-off-by: André Hentschel <nerv@dawncrow.de>
[Thomas:
 - remove LIBKRB5_VERSION_MAJOR
 - minor tweaks to commit title and Config.in help text]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
6 years agoboard: add support for ARC HS Development Kit (HSDK)
Evgeniy Didin [Tue, 19 Dec 2017 14:55:54 +0000 (17:55 +0300)]
board: add support for ARC HS Development Kit (HSDK)

Synopsys DesignWare HSDK (which stands for ARC HS
Development Kit) is the latest and greatest development
platform that sports quad-core ARC HS38 in real silicon.

Most noticeable features of the board are:
 * Quad-core ARC HS38 CPU running at 1GHz
 * 4Gb of DDR
 * Built-in Vivante GPU (well supported via open source
   Etnaviv drivers)
 * Built-in Wi-Fi/Bluetooth module (RedPine RS-9113)

And as usual we have:
 * [micro] SD-card slot
 * 2 USB 2.0 ports
 * 1Gbit Ethernet port
 * Built-in Digilent JTAG probe
 * Serial port accessible via micro-USB port

Writing sdcard.img on SDcard creates two partitions:
 * FAT32 with uImage and uboot.env
 * EXT4 with root filesystem

We modify kernel config because in default hsdk kernel config
CONFIG_INITRAMFS_SOURCE parameter is set and when we build
rootfs separately (BR2_TARGET_ROOTFS_INITRAMFS is not set)
error appears. Also we set up CONFIG_ARC_UBOOT_SUPPORT which
enables usage of uboot variables in the boot process.

[Peter: Fix comments and rename defconfig to snps_archs38_hsdk_defconfig,
Add defconfig to DEVELOPERS and fixup board/synopsys entry,
Drop postimage script, rename env file in genimage.cfg and drop size
setting for rootfs partition,
Add "" for CONFIG_INITRAMFS_SOURCE in linux fragment]
Signed-off-by: Evgeniy Didin <didin@synopsys.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Cc: Alexey Brodkin <abrodkin@synopsys.com>
Cc: arc-buildroot@synopsys.com
Reviewed-by: Romain Naour <romain.naour@smile.fr>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
6 years agopackage/x11r7/xserver_xorg-server: add sysv init script
Bernd Kuhls [Sat, 29 Apr 2017 20:56:43 +0000 (22:56 +0200)]
package/x11r7/xserver_xorg-server: add sysv init script

We need ":0.0 vt01" to make sure Xorg finds the correct terminal.

Quoting https://www.x.org/archive/X11R6.8.0/doc/Xorg.1.html

-allowMouseOpenFail
    Allow the server to start up even if the mouse device can't be
    opened or initialised.

We need this option in case BR2_PACKAGE_XDRIVER_XF86_INPUT_MOUSE was
not enabled.

-noreset
    prevents a server reset when the last client connection is closed.

We need this option to prevent auto-close of Xorg.

Tested with a qemu image and Kodi.

Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
[Arnout: copy an abbreviate version of the explanation above to the
         script.]
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
6 years agosupport/check-uniq-files: support weird locales and filenames
Yann E. MORIN [Sat, 31 Mar 2018 12:52:50 +0000 (14:52 +0200)]
support/check-uniq-files: support weird locales and filenames

Currently, when a filename contains characters not representable in the
user's locale, we fail hard, especially when the host python is python3.

This is because python2 and python3 handle encoding/decoding strings
differently, with python3 presumable doing the right thing, but it
breaks on some systems, while python2 presumable does the wrong thing,
but it works everywhere. (Just joking, obviously...)

Part of the issue being that the csv reader in python2 is broken with
UTF8.

We fix the issue by ditching the csv reader, and simply read the file in
binary mode, manually partitioning the lines on the first comma.

Then, we use the binary-encoded (really, un-encoded) package names and
filenames as values and keys, respectively.

Finally, for each filename or package we need to print, we try to decode
them with the defaults for the user settings, but catch any decoding
exception and fall back to dumping the raw, binary values. Which codec
is used by default differs between Python version, but in all cases
something sane is printed at least.

Thanks a lot to Arnout for the live help doing this patch. :-)

Reported-by: Jaap Crezee <jaap@jcz.nl>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Arnout Vandecappelle <arnout@mind.be>
Cc: Jaap Crezee <jaap@jcz.nl>
[Arnout: commit log improvement]
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
6 years agoconfigs/raspberrypi0w_defconfig: new defconfig for Raspberry Pi Zero W
Yves Deweerdt [Wed, 21 Jun 2017 20:39:44 +0000 (22:39 +0200)]
configs/raspberrypi0w_defconfig: new defconfig for Raspberry Pi Zero W

Up to now, Raspberry Pi Zero W (rpi0w) could be built with the normal
raspberrypi0_defconfig. However, then you don't have support for the
Bluetooth out-of-the-box, which makes using a W a bit pointless.

Therefore, create a separate defconfig for the W. It is a copy of
raspberrypi0_defconfig with the following changes:
 - Add DT overlays (from rpi-firmware) to support Bluetooth.
 - Pass --add-pi3-miniuart-bt-overlay to post-image.sh.

Since there is now a separate raspberrypi0w_defconfig, the W support
can be removed from raspberrypi0_defconfig.

Signed-off-by: Yves Deweerdt <yves.deweerdt.linux@gmail.com>
[Arnout:
 - Bump to same kernel version as raspberrypi0.
 - Remove redundant comment.
 - Remove redundant default BR2_PACKAGE_RPI_FIRMWARE_INSTALL_DTB_OVERLAYS=y.
 - Improve commit log.
 - Refresh .gitlab-ci.yml.
]
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>