Commit message (Collapse)AuthorAgeFilesLines
* foundation: Try to fix dbus-pre trying to download docbook filessam/armv8-ppc64Jonathan Maw2017-10-251-1/+1
* core: Update version of libseccomp to fix ppc64lJonathan Maw2017-10-251-2/+2
| | | | | libseccomp has architecture-specific parts, and the previous version did not support ppc64l.
* core: Update libffi to version 3.2.1Jonathan Maw2017-10-251-2/+3
| | | | | | This is done because ppc64l is having compatibility problems. The updated version of libffi depends on libtool.
* core: Set MAKEFLAGS="-j 1" during libtool preconfigureSam Thursfield2017-10-252-1/+11
| | | | | | | | | | | | I got a seemingly random failure in CI: The log line with the actual error is cut off by BuildStream and I can't reproduce the issue locally, but since it's clearly an intermittent problem I can only put it down to the way BuildStream sets MAKEFLAGS during the configure stage affecting the gnulib bootstrap process (which does run `make` at one point).
* gnu-toolchain: Fix armv8l64 looking in the wrong place for librariesJonathan Maw2017-10-252-7/+7
* gnu-toolchain: Rework linux-api-headers arch conditions and support ppc64bSam Thursfield2017-10-252-36/+78
| | | | | | It's better to use BuildStream arch conditionals than to use shell code, because in the latter case any change will trigger rebuilds for all architectures regardless of which ones it actually affects.
* gnu-toolchain: Remove PATH hack in glibcSam Thursfield2017-10-251-6/+0
| | | | | | | | | | | We now have /tools at the *end* of the PATH rather than the start (which is how it should have been all a long in stage 3) so glibc's configure script will always find `bash` in /usr/bin before it looks in /tools/bin. This also fixes stage3 glibc building against a stage2 sysroot when there's no symlink from /tools/bin -> /usr/bin. This is required for the current cross-bootstrap method.
* gnu-toolchain: Fix from stage2-eglibc to include lib64Sam Thursfield2017-10-251-0/+3
* gnu-toolchain: Set correct sysconfdir for stage2-glibcSam Thursfield2017-10-251-6/+9
| | | | | | | | | | We install the config to /etc/ in the stage2-glibc element, but the ldconfig tool would look for /tools/etc/ This caused no problems for a long time, I suppose because we always built on top of sysroots that had an existing /etc/ file. But if `ldconfig` hadn't already been run in the sysroot, builds depending on stage2-glibc would fail as various things would no longer be able to find due the ldconfig command failing to find its config file.
* gnu-toolchain: Fix being installed with a bad symlinkJonathan Maw2017-10-251-3/+3
| | | | | | | | | | | This is currently because fhs-dirs makes /lib a symlink to /usr/lib, and buildstream mangles symlink paths from absolute paths to relative paths. The symlink ../tools/lib/ ends up in /usr/lib, breaking things. This fixes that by explicitly installing the symlink to /usr/lib
* gnu-toolchain: Make stage2-glibc symlink ld for armv8*64Jonathan Maw2017-10-251-0/+5
| | | | Needed to fix build on armv8
* gnu-toolchain: Make fhs-dirs symlink lib64 on ppc64 archesJonathan Maw2017-10-252-0/+24
| | | | Needed to fix build on ppc64.
* Add a "generic" BSP stackSam Thursfield2017-10-253-0/+314
| | | | This means we no longer try to build syslinux on non-x86 platforms.
* gnu-toolchain: Use new composition operators correctlybenbrown/sam/fix-ciSam Thursfield2017-10-252-12/+18
| | | | | | | | The default behaviour of BuildStream is now for lists to overwrite the previous value when composing them. In the fhs-dirs elements our goal is extend the install commands in certain cases, so we now need to use the (>) operator to cause it to append to the list instead of overwriting.
* .gitlab-ci.yml: Make the cache a hidden directorySam Thursfield2017-10-251-5/+7
| | | | | | | | | | | | YBD scans the current working directory for definition files, which is problematic now that we store hundreds of cached Git repos and OSTree repos in a subdir of the definitions repo. To avoid wasting loads of time calling stat() on tens of thousands of directories, the cache is now in a hidden directory. This depends on a change to YBD that causes it to efficiently ignore hidden directories:
* Pull in ybd gits cache for bst-convert jobBen Brown2017-10-251-0/+1
* .gitlab-ci.yml: Fix BuildStream artifact cache configurationSam Thursfield2017-10-231-2/+2
| | | | This is hopefully what has been preventing BuildStream from pushing.
* .gitlab-ci.yml: Point the cache to the correct gits locationJavier Jardón2017-10-171-2/+2
* Remove ybd cache to ensure buildstream tasks have enough disk spaceBen Brown2017-10-171-0/+3
* Remove '];' from closing of if statementBen Brown2017-10-131-1/+1
* Remove BuildStream update taskBen Brown2017-10-131-8/+0
| | | | | Removing since the docker image contains an installation of BuildStream and is updated nightly (as pointed out by Sam).
* Use pull policy for deploy stagesBen Brown2017-10-131-2/+12
| | | | | By default GitLab CI fetches and re-pushes cache, given deploy stages won't cause the git repos to change, only fetch.
* Disable fetching of artifacts from previous stagesBen Brown2017-10-131-0/+40
| | | | | By default, GitLab CI fetches the artifacts of all previous stages. Be explicit about which artifacts we do and don't want.
* Separate ybd and bst remote cachesBen Brown2017-10-131-7/+42
* Store YBD_base in /cacheBen Brown2017-10-131-1/+1
| | | | | Should we pick up the same runner in another job, artifacts will be reused from this path.
* Use templates for setup scriptsBen Brown2017-10-131-48/+79
| | | | Allows us to only perform the tasks required for each tool.
* .gitlab-ci.yml: Use CI_PROJECT_DIR instead of $(pwd)Sam Thursfield2017-10-041-8/+6
* .gitlab-ci.yml: Fix caching, part threeSam Thursfield2017-10-041-10/+12
| | | | | | | | | With the previous attempt, storing files in the cache worked OK but restoring from the cache did not. The symlink workaround wasn't enough as the symlink gets created /after/ the cache is restored. Now the whole /builds tree is on a separate Docker volume, so we should be able to really store the cache inside the build directory.
* .gitlab-ci.yml: Really enable caching of downloaded sourcesSam Thursfield2017-10-041-5/+9
| | | | | | | | | | It turns out that downloaded sources have never been shared between builds. Each container running a build has a `/cache` volume, but a new volume is created for each container so nothing is shared. We listed certain paths inside `/cache` to be saved by GitLab CI between runs using the "distributed runners cache" feature, but because the paths were outside the build directory it would just ignore them.
* .gitlab-ci.yml: Remove LANG and LC_ALLSam Thursfield2017-10-041-4/+0
| | | | | These are still needed, but are set correctly in the Docker image now so we don't need to repeat them here.
* .gitlab-ci.yml: Share buildstream source cache between jobsSam Thursfield2017-10-031-0/+1
| | | | This should give a massive performance improvement.
* project.conf: Set the artifact cache URL heresam/bst-artifacts-urlSam Thursfield2017-09-202-5/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is possible since this change: Older versions of BuildStream will fail to parse the project.conf file with this change; I think it's acceptable to force everyone to update as we are still in the development stage of the BuildStream migration. If you want to override the configuration for whatever reason you'll now need to put this in your ~/.config/buildstream.conf file: projects: baserock: artifacts: pull-url: ... push-url: ... If you set a "global" artifacts configuration by doing this... artifacts: pull-url: ... ... it'll be ignored because the project-specific config from this project.conf file will take precedence. Overriding seems to be done for the whole config block, so if you only set push-url in your buildstream.conf file it will be interpreted to mean "set push-url, and unset pull-url" rather than "set push-url and use the existing value of pull-url."
* strata/foundation/kmod.morph: Simplify setting build-system: autotoolsstaging/jjardon/kmod-no-workaroundsJavier Jardón2017-09-071-4/+1
| | | | Change-Id: Ia72f4cc835fea6ecc72ab0704f877905f104bc40
* strata/foundation/kmod.morph: No need to disable xz supportJavier Jardón2017-09-071-1/+0
| | | | Change-Id: I767fc41d3336bb7a0fd14d74b7a7ee082ca03193
* strata/foundation/kmod.morph: Remove unneded workaroundsJavier Jardón2017-09-071-8/+4
| | | | Change-Id: Ifd32ee4809552bf52986431d48ed0e200d7f239d
* Retry on transient fetch errorsbenbrown/get-source-errorsBen Brown2017-09-071-0/+1
| | | | | | | | | | | In order to bypass: Cloning repository... Cloning into '/builds/gitlab/omnibus-gitlab'... error: RPC failed; curl 56 SSL read: error:00000000:lib(0):func(0):reason(0), errno 104 fatal: The remote end hung up unexpectedly fatal: early EOF fatal: index-pack failed
* Continue build on missing keybenbrown/no-key-errorBen Brown2017-09-061-7/+11
| | | | | We don't want to error out here, otherwise builds will only pass on protected branches.
* Force `-j 1` when installing Subversionsam/buildstream-autoconvertSam Thursfield2017-09-011-1/+1
| | | | | | | | | | | | | | | | | | | Builds with BuildStream are intermittently failing with a message like this: libtool: install: /usr/bin/install -c .libs/libsvn_delta-1.a /buildstream/install/usr/lib/libsvn_delta-1.a libtool: install: chmod 644 /buildstream/install/usr/lib/libsvn_delta-1.a libtool: install: ranlib /buildstream/install/usr/lib/libsvn_delta-1.a libtool: install: /usr/bin/install -c .libs/libsvn_delta-1.lai /buildstream/install/usr/lib/ /usr/bin/ld: cannot find -lsvn_delta-1 collect2: error: ld returned 1 exit status libtool: install: /usr/bin/install -c .libs/libsvn_delta-1.a /buildstream/install/usr/lib/libsvn_delta-1.a libtool: install: chmod 644 /buildstream/install/usr/lib/libsvn_delta-1.a libtool: install: ranlib /buildstream/install/usr/lib/libsvn_delta-1.a libtool: error: error: relink '' with the above command before installing it recipe for target 'install-serf-lib' failed make: *** [install-serf-lib] Error 1 make: *** Waiting for unfinished jobs....
* gnu-toolchain: Fix debug stripping for cross-builds of stage2Sam Thursfield2017-08-317-0/+44
| | | | | | | | | | | | The stage2 elements were all using the default strip-commands which don't take into account the fact that we might be cross-compiling. An `objcopy` build for one architecture will ignore binaries for other architectures that it doesn't understand, so in practice no stripping was taking place for the stage2 components when we were doing cross-builds. With this change, a stage2 sysroot containing just the 'runtime' and 'devel' domains has gone from 889MB to 306MB.
* .gitlab-ci.yml: Fix up previous commitSam Thursfield2017-08-292-2/+2
| | | | | | The "downloadable" state is the one we need to special-case. The "cached" state means that the artifact is cached *locally*, and BuildStream will already avoid rebuilding it in this case.
* .gitlab-ci.yml: Avoid pulling artifacts for every BuildStream buildSam Thursfield2017-08-293-15/+48
| | | | | | | | | | | We shouldn't download artifacts to the CI workers every time somebody pushes just to throw them away again. This should speed up no-op builds. The functionality is implemented in two shell scripts. Context is here: It would be possible to do this with a single script, but I wanted to avoid doing any argument parsing code in shell.
* .gitlab-ci.yml: Use the official BuildStream Docker imageSam Thursfield2017-08-291-1/+1
| | | | | | This is a Fedora 26 image which has BuildStream's dependencies pre-installed, which saves us waiting to `dnf install` everything at the start of every CI job.
* Automate conversion and testing using GitLab CISam Thursfield2017-08-253-33/+175
* core: Upgrade to latest 'acl' librarySam Thursfield2017-08-252-9/+3
| | | | | | | There hasn't been a release since v2.2.52, but there are fixes in 'master' which are useful. In particular the build system is now standard Autotools, and it no longer breaks if /lib64 is a symlink to /usr/lib64 (upstream commit cd76644ce9b9814a fixes that).
* gnu-toolchain: Add /lib64 -> /usr/lib64 symlink on 64-bit archesSam Thursfield2017-08-243-6/+47
| | | | | | | | | | | This is required at least for armv8l64, otherwise the glibc.bst element installs a symlink in /usr/lib/ that points to a missing file (it expects /usr/lib64/ to exist, but if /lib64 is a directory rather than a symlink then that file ends up only in the /lib64/ directory). This also makes our filesystem hierarchy more consistent with other GNU/Linux operating systems.
* gnu-toolchain: Update components in line with build-essential stratumSam Thursfield2017-08-245-7/+7
* Add 'convert' script and update READMESam Thursfield2017-08-242-36/+95
* Update BuildStream project config for use with Baserock definitions repoSam Thursfield2017-08-241-5/+2
| | | | | We gained this file when we imported Tristan's gnu-toolchain project, we just need to update it for building the Baserock reference systems.
* Merge remote-tracking branch 'buildstream-tests/gnu-toolchain' into ↵Sam Thursfield2017-08-2432-0/+1388
|\ | | | | | | | | | | | | | | | | | | | | | | sam/buildstream-autoconvert This branch contains a manual conversion of the Baserock bootstrap process to BuildStream. The original branch can be found here: It's not possible to automatically convert the existing Baserock bootstrap due to differences in how BuildStream works.
| * Merge branch 'sam/gnu-toolchain-updates' into 'gnu-toolchain'Tristan Van Berkom2017-07-1214-37/+72
| |\ | | | | | | | | | | | | Update toolchain and allow cross-building See merge request !9