In at91bootstrap3, defconfig files are spread out in various
sub-directories, so we can't easily construct the path to those
defconfig files.
As it turns out, there are no two defconfig files named the same; they
all contain at least the board name, plus some extra info. And there is
always only one directory depth below board/ where all defconfig files
are to be found.
Also, at91bootstrap3's own Makefile relies on this single-match as it
runs a 'find' command to locate the defconfig file.
So, even though we do not know the path to the defconfig file, we can
construct a shell-glob quite easily (in the hope that there will never
be more than one directory depth).
support/download: do not warn about missing hash file for repositories
When downloading from a repository, we explicitly pass no hash file,
because we can't check hashes in that case.
However, we're still printing a message that there is a missign hash
file.
Beside being a bit annoying (since we can't do anything about it), it
may also be wrong, especially for packages for which we support multiple
versions, with some being downloaded via a git clone and others as
tarballs.
Just print no warning when the path to the hash file is empty.
Fix that by bumping vlc to 2.2.0, as vlc-2.1.6will never support this
new version of FreeRDP.
Add dependency on kernel headers >= 3.7, because it needs DTV_STREAM_ID.
I stumbled on this whith a toolchain using headers forom 3.5, but only
tested with a toolchain with headers from 3.9, so there might be other
dependencies I missed on 3.8 or even 3.9. Let's wait for build failures
to find out...
There are quite a bunch of new --enable/disable options, so I've tried
to catter for all the changes. Most notably, there's no longer a flag to
enable.disable GL, it is now always auto-detected. Also, I've added
flags for GLES which we were missing so far, so we had to rely on the
build order to detect those dependencies (which was OK becasue libgles
sorts before vlc). Finally, SVG now has two flags to enable different
parts of SVG support, but they both depend on the same library, so
enable both.
There are new support for some features, like acceleration on RPI, but
that can well wait for further patches when someone is interested ;-) ,
vdpau HW accelearation on NVidia (we have a package for that, but not
able to test, so not added), vpx support (we have a libvpx package,
but I had no time to test), x262 and x265 support for which we're
currently lacking the packaging, and a few other exotic stuff...
The Makefile wants to unconditionally build a shared library, and
since it's probably not a package that relevant in static-only
scenarios, let's simply disable it.
Clean up system directories by making samba conform to FHS and by using
subdirectories e.g. /var/log/samba and /var/run/samba instead of
/var/log and /var/run.
Thomas Petazzoni [Sun, 29 Mar 2015 17:33:28 +0000 (19:33 +0200)]
pkg-generic: declare phony targets as such
This commit improves the pkg-generic package infrastructure so that it
declares all the <pkg>-<something> targets as PHONY, which they
actually are.
[Thomas:
- add some missing phony targets, noticed by Yann E. Morin;
- put one target per line, order alphabetically. Makes it easier to
spot missing targets.]
In order to implement the global 'make source', 'make legal-info' and
'make external-deps' using the package infrastructure logic, this
commit introduces a set of per-package targets that allow to
recursively run the source/legal-info/external-deps actions on the
dependencies of a given package.
Thomas Petazzoni [Sun, 29 Mar 2015 17:33:27 +0000 (19:33 +0200)]
Makefile: directories are not PHONY targets
The global .PHONY specification in the main Makefile is describing a
number of directory targets as being PHONY, which doesn't make much
sense. PHONY targets are targets that do not exist on the filesystem,
and which make should always consider as not being up-to-date, so that
the commands associated to these targets are always executed by make
when the command is invoked, even if a file with the same name exists
on the filesystem.
Thomas Petazzoni [Sun, 29 Mar 2015 17:33:24 +0000 (19:33 +0200)]
pkg-generic: implement a <pkg>-external-deps target
This commit implements a new <pkg>-external-deps target in the
pkg-generic package infrastructure. This target simply displays the
list of file names that are needed for <pkg> to build (source tarball,
patches, extra downloads).
In the case of the usage of <pkg>_OVERRIDE_SRCDIR, the path to the
overriden source directory is displayed, prepended by file://. This
matches what the code is currently doing in .stamp_rsync_sourced.
This new target is not currently being used in this commit, but
followup commits will make use of it.
Thomas Petazzoni [Sun, 29 Mar 2015 17:33:23 +0000 (19:33 +0200)]
docs/manual: update documentation about applying patches
The Buildroot manual is currently wrong when describing how patches
are applied: it says that <packagename>-*.patch is applied, and that
<packagename>-<seq>-*.patch is the recommended name for patches. This
is incorrect, since we're now using just <seq>-*.patch. This commit
adjusts the documentation accordingly.
Thomas Petazzoni [Sun, 29 Mar 2015 17:33:22 +0000 (19:33 +0200)]
packages: apply custom patches using *.patch instead of <pkg>-*.patch
Several packages have some logic to apply custom patches that existed
before the BR2_GLOBAL_PATCH_DIR mechanism: at91bootstrap,
at91bootstrap3, barebox, uboot and linux. Currently, the logic of
those packages to apply custom patches is to match
<package-name>-*.patch, which is not consistent with what we've done
for patches stored in the package directory, and for patches stored in
BR2_GLOBAL_PATCH_DIR: in such cases, we simply apply *.patch.
Therefore, for consistency reasons, this commit changes these packages
to also apply *.patch.
Ryan Barnett [Sun, 5 Apr 2015 22:15:05 +0000 (17:15 -0500)]
i2c-tools: add support to build python extension
Add a config option to build the python bindings for i2c-tools -
py-smbus. The steps for building the python bindings is the same as
the distutil steps that are a part of the python infrastructure.
Fix a bunch of deficiencies:
- 'debian/copyright' does not exist.
- gnuefi is not GPLv2+. Only one AArch64 file has GPLv2+ headers,
all others have BSD-3c
- efilib is BSD-2c
Change the licensing information to include BSD-3c for the gnuefi parts,
and keep refernce to GPLv2+ as the Main README.gnuefi references it.
Steve James [Tue, 13 Jan 2015 10:53:57 +0000 (10:53 +0000)]
leveldb: new package
[Thomas:
- remove 003-allow-flags-from-environment.patch, and pass
TARGET_CONFIGURE_OPTS in the environment instead.
- convert the patches to Git formatted patches.
- use the v1.18 tag instead of a commit hash.
- do not pass TARGET_CONFIGURE_OPTS at install time, this is not
needed.]
The open-plc-utils source code has a condition for uClibc toolchains
when calling vfprintf(). But the non-uClibc case simply doesn't
build. And the recommended solution at
https://github.com/qca/open-plc-utils/issues/36 is to pass
-D__UCLIBC__ unconditionally.
Steve Kenton [Sun, 22 Mar 2015 15:35:13 +0000 (10:35 -0500)]
tovid: new package
The tovid suite, also known simply as tovid, is a collection of shell
and Python scripts for creating DVDs and (S)VCDs. It is pronounced
"to vid" (because it converts to video disc formats).
[Thomas:
- remove largefile dependency
- properly propagate mplayer and ffmpeg dependencies.
- fix license: it's GPLv2+, not GPLv2.]
mplayer: introduce a BR2_PACKAGE_MPLAYER_ARCH_SUPPORTS option
In order to allow other packages to easily select mplayer without
duplicating its complicated architecture dependencies, this commit
introduces a BR2_PACKAGE_MPLAYER_ARCH_SUPPORTS blind option.
Peter Korsgaard [Sat, 4 Apr 2015 22:38:34 +0000 (00:38 +0200)]
ipmiutil: only make available for x86
IPMI is a Intel/PC spec, so it doesn't make much sense to build on !x86 -
And ipmiutil uses sys/io.h and inb()/outb() which isn't supported on all
architectures, so limit to x86 like we do for acpid.
David Bachelart [Wed, 8 Oct 2014 15:00:03 +0000 (17:00 +0200)]
ipmiutil: new package
[Thomas:
- remove dependency on SSP support by adding a patch that changes
the configure.ac script stack protector test to actually work.
- rewrap Config.in help text
- fix how BR2_USE_MMU is used when displaying the comment.
- fix the license, it's BSD-3c, not BSD-2c.
- bump to version 2.9.5.]
procps-ng configure.ac script uses PKG_CHECK_MODULES(), which needs
pkg-config. Until now, it wasn't mandatory since for the ncurses check
it tries PKG_CHECK_MODULES() and then falls back to AC_CHECK_LIB(),
but for the upcoming systemd support, pkg-config is really needed.
Since pkg-config is used both for the ncurses and systemd checks, we
make it a mandatory dependency.
Bernd Kuhls [Mon, 16 Mar 2015 21:39:44 +0000 (22:39 +0100)]
package/ffmpeg: bump version to 2.6.1
Dump two Kodi-specific patches according to
https://github.com/xbmc/xbmc/pull/6636
and update two new patches to improve hevc handling with Kodi Isengard.
Yann E. MORIN [Tue, 17 Mar 2015 15:14:55 +0000 (16:14 +0100)]
toolchain/external: do not accept distro-class toolchains
Distro toolchains, i.ie. toolchains coing with distributions, will
almost invariably be unsuitable for use with Buildroot:
- they are mostly non-relocatable;
- their sysroot is tainted with a lot of extra libraries.
Especially, the toolchains coming with Ubuntu (really, all the Debian
familly of distros) are configured with --sysroot=/ which makes them
non-relocatable, and they already contain quite some libraries that
conflict (in any combination of version, API or ABI) with what Buildroot
wants to build (i.e. extra libraries, some not even present in
Buildroot...) but also their mere preence when Buildroot does not expect
them to be already built (so that a package would enable features when
it should not).
So, try to detect those toolchains and black-list them; inform the user
that the toolchain is unusable for the reasons mentioned above.
[Thomas:
- rename to open-plc-utils to match upstream name.
- fix Config.in to use tabs instead of spaces
- remove 'default n' line
- add dependency on BR2_USE_MMU
- bump to a more recent upstream commit
- remove no longer needed openplc-0002-Remove-vfprintf-call.patch
- rename patch to the proper naming convention
- specify <pkg>_LICENSE_FILES
- pass CROSS= instead of CC=
- do not pass CC= at install time.]
README: reduce it to a single page and refer to other documentation
As discussed on the BR developer meeting at FOSDEM, the README should be
very short and instead refer to other documentation: the manual, the
website, the mailing list, the IRC channel.
The documentation of the package-specific targets is heavily inspired by
the earlier patch by Thomas Petazzoni [1], but the <pkg>-install*
targets were left out since they're not useful for the developer IMHO.
The *-menuconfig target's help text is moved to the package-specific
targets.
As discussed in the FOSDEM2015 BR developer meeting, the output of
'make help' is too long for comfortable reading. To shorten it, split
off the list of defconfigs in a new target, 'list-defconfigs'.
Olivier Schonken [Sun, 22 Mar 2015 21:12:51 +0000 (23:12 +0200)]
package/ijs: New package ijs 0.35
[Thomas:
- Add BR2_USE_MMU dependency, since fork() is used.
- Put <pkg>_SOURCE next to <pkg>_VERSION and <pkg>_SITE.
- Improve comment about why autoreconf is needed.
- Change the location in menuconfig of the package, "Networking
applications" didn't seem like an appropriate location.]
Olivier Schonken [Sun, 22 Mar 2015 21:12:50 +0000 (23:12 +0200)]
package/qpdf: New package qpdf 5.1.2
[Thomas:
- adjust length of comment header in .mk file.
- fix comment in Config.in to match what's specific in the Buildroot
manual.
- fix <pkg>_LICENSE to 'Artistic-2.0'.]
Olivier Schonken [Sun, 22 Mar 2015 21:12:48 +0000 (23:12 +0200)]
package/poppler: bump version to 0.32.0
This commit also adds an optional dependency on openjpeg: if
--enable-openjpeg=none is not passed, poppler assumes openjpeg is
available.
[Thomas:
- add optional dependency on openjpeg instead of mandatory
dependency.
- remove --enable-xpdf-headers, since there was no justification for
it.]
Olivier Schonken [Sun, 22 Mar 2015 21:12:49 +0000 (23:12 +0200)]
package/openjpeg: New package openjpeg 1.5.2
This package is needed by Poppler.
[Thomas:
- fix download location, which was incorrect.
- add dependency on host-pkgconf, since the configure.ac script uses
PKG_CHECK_MODULES and we're doing an autoreconf.
- add optional dependencies on libpng, tiff and lcms2, so that they
are explicit instead of automatically detected.]
Vincent Stehlé [Sun, 22 Mar 2015 13:25:14 +0000 (14:25 +0100)]
boot/uboot: add support for i.MX28 SD format
Allow to generate u-boot.sd, Freescale i.MX28 SB format with a header for
booting from an SD card.
U-boot includes an mxsboot tool to generate this format, starting from
v2011.12.
See u-boot doc/README.mxs (or doc/README.mx28_common before 2013.07).
[Arnout:
- Wrap Config.in help text at 72 columns.
- Remove v from U-Boot version specifier.
- Refer to different README name before 2013.07.
- Depend on host-elftosb
- Add comment to clarify sb -> sd conversion.]
SL (Steam Locomotive) runs across your terminal when you type "sl" as
you meant to type "ls". It's just a joke command, and not useful at
all.
[Thomas:
- Change "depends on BR2_PACKAGE_NCURSES" to "select
BR2_PACKAGE_NCURSES".
- Rewrap Config.in help text.
- Remove comment in help text about the need to check dependencies,
there's nothing to be done really.
- Change the license from "Unclear" to "Custom".
- Use $(TARGET_CONFIGURE_OPTS instead of passing CC and CFLAGS
explicitly.
- Pass '-m 0755' when doing the $(INSTALL)
- Add ncurses to SL_DEPENDENCIES.]
package/ca-certificates: generate the bundle of certs
glib-networking wants to use the certificates bundle, not the individual
certificates.
Generating the bundle is usually done with update-ca-certificates, but
that does not support running out-of-tree.
Fortiunately, and as Gustavo put it, update-ca-certificates is jsut a
glorified 'cat'. It is supposed to be fed a config file stating which
certificate to add/remove to/from the bundle, otherwise nothing fancy
(Oh, yes, running hooks after updating the bundle).
Since we do not need any of this in Buidlroot, we jsut generate a bundle
with all certificates unconditionally.
Rhys Williams [Tue, 24 Mar 2015 21:40:28 +0000 (10:40 +1300)]
lirc-tools: new package
This package adds the userspace tools and daemons LIRC - Linux remote
control
[Thomas:
- rewrap Config.in help text, lines were too long. And do a bit of
rewording also.
- remove trailing whitespaces in Config.in.
- make sure Config.in is included from package/Config.in, otherwise
the package is not visible.
- use a full destination path when installing the sysv init script.
- add dependency on BR2_USE_MMU, since fork() is used.
- fix init script: use -n option to not daemonize since
start-stop-daemon is already doing that, use 'mkdir -p' and 'ln
-sf' to make the 'start' action re-executable.]
Currently, a 'make clean' leaves the graphs/ subdirectory in the
output directory. This commit defines a GRAPHS_DIR variable, used by
the different graph-generating targets, and which gets cleaned up in
the 'clean' target.
[Thomas: use the new GRAPHS_DIR variable in more places, as suggested
by Yann.]
Yann E. MORIN [Tue, 31 Mar 2015 22:15:06 +0000 (00:15 +0200)]
support/download: always fail when there's no hash
At the time we introduced hashes, we did not want to be too harsh in the
beginning, and give people some time to adapt and accept the hashes. So
we so far only whined^Wwarned about a missing hash (when the .hash file
exists).
Some time has passed now, and people are still missing updating hashes
when bumping packages.
Let's make that warning a little bit more annoying...
Yann E. MORIN [Tue, 31 Mar 2015 22:15:05 +0000 (00:15 +0200)]
support/download: properly catch missing hashes
When checking hashes reports no hash for a file, and this is treated as
an error (now: because BR2_ENFORCE_CHECK_HASH is set; later: because
that will be the new and only behaviour), exit promptly in error.
Yann E. MORIN [Tue, 31 Mar 2015 22:15:04 +0000 (00:15 +0200)]
support/download: return different exit codes for different failures
Return different exit codes depending on the error that occured:
0: no error (hash file missing, or all hashes match)
1: unknown option
2: hash file exists, but at least one hash in error
3: hash file exists, but no hash for file to check
4: hash file exists, but at least one hash type unknown
This will be used in a later patch to decide whether the downloaded file
should be kept or removed.