summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Actually use specific versions of YBD and BuildStreamsam/ci-fixSam Thursfield2017-11-101-19/+21
| | | | | | | | | | | | | The approach from commit 56885a36e5c3830a6c6c7a663730a8a297a5825c was neater, but it doesn't work due to this GitLab issue: https://gitlab.com/gitlab-org/gitlab-ce/issues/20615 I can't see any way to make this work apart from putting the SHA1s into the job before_script sections directly. I moved them upwards to make it more obvious. Of course once we stop using YBD we can clean this up nicely.
* gnu-toolchain: Fix comment in base.bstsam/base.bst-commentSam Thursfield2017-11-081-1/+5
|
* .gitlab-ci.yml: Update defs2bst versionsam/buildstream-1.0Sam Thursfield2017-11-051-1/+1
| | | | | This version uses %{arch} instead of %{bst-arch}, and uses list composition operations instead of pre- and post- commands.
* Replace use of architecture conditionals with generic project conditionsSam Thursfield2017-11-0512-304/+284
| | | | | | | | | | | | The initial implementation of architecture conditionals has been removed, as the same behaviours can be implemented using the more generic mechanism for conditionals that is being introduced for BuildStream 1.0. We now have two architecture options: build_arch and arch. They are documented in project.conf. The first one controls the build sandbox while the second controls the host and target of the binaries we produce.
* Add scripts/baserock-release-metadataSam Thursfield2017-11-031-0/+66
| | | | | This was meant to be added as part of MR !58, but of course I forgot to `git add`.
* README.md: Remove stray ` characterSam Thursfield2017-11-031-1/+1
|
* gnu-toolchain: Use new version of base sysrootsam/bootstrap-from-baserock-binariesSam Thursfield2017-10-301-1/+1
|
* README.md: Fix command, and note about OSTree update delaySam Thursfield2017-10-301-2/+4
|
* gnu-toolchain: Be specific about which `ldconfig` we useSam Thursfield2017-10-301-1/+1
| | | | | | Otherwise, cross builds can try and run a version of `ldconfig` that is built for the target architecture rather than the host, resulting in brokenness.
* bootstrap: Remove .la files from the stage3 sysrootSam Thursfield2017-10-301-0/+9
| | | | | | | | | This fixes cross-compilation of stage2-gcc against our stage3 base sysroot. If the `.la` files are not removed, Libtool insanity kicks in and we end up with the x86_64 version of libstdc++ included in the cross-build commandlines.
* Add extra split rule for GLIBC locale-archive fileSam Thursfield2017-10-271-0/+5
| | | | | This reduces the output size of bootstrap/stage3-sysroot.bst from 500MB to 350MB.
* README.md: Add instructions on how to release sysrootsSam Thursfield2017-10-261-0/+59
|
* README.md: UpdateSam Thursfield2017-10-261-2/+1
|
* Rename README so it gets rendered as Markdown in gitlab.comSam Thursfield2017-10-261-0/+0
|
* Merge remote-tracking branch 'origin/master' into ↵Sam Thursfield2017-10-261-2/+16
|\ | | | | | | sam/bootstrap-from-baserock-binaries
| * .gitlab-ci.yml: Use specific version of ybd, spec, defs2bstjjardon/no_master2Javier Jardón2017-10-261-2/+8
| | | | | | | | Current master of all those
| * .gitlab-ci.yml: Use specific version of BuildStream instead current masterJavier Jardón2017-10-261-4/+4
| |
| * Revert "Remove BuildStream update task"Javier Jardón2017-10-261-0/+8
| | | | | | | | | | | | | | | | We do want to control what version of BuildStream are we using in the CI, not as part as the image; an update can break the build and the same commit that built today can break tomorrow This reverts commit 3de7f8086cfc89e11ffdf88651ab415e661e2609.
* | gnu-toolchain: Use binaries from Baserock releases repo to bootstrapSam Thursfield2017-10-266-51/+20
| | | | | | | | | | | | | | | | | | | | | | This replaces the previous approach of using the Freedesktop SDK binaries. We need to support more architectures than just x86_32 and x86_64, and in general it's better to bootstrap from a minimal sysroot that we build and control. The binaries are hosted at https://ostree.baserock.org/releases and are produced by a manual (but automatable) process that I will document in subsequent commits from the `bootstrap/stage3-sysroot.bst` element.
* | Disable debug section compression in stage3Sam Thursfield2017-10-2612-0/+70
| | | | | | | | | | | | The objcopy tool that we built in stage2 doesn't have zlib support, so it can't handle the `--compress-debug-sections` flag that BuildStream passes by default.
* | Add 'stage2-sysroot' and 'stage3-sysroot' elementsSam Thursfield2017-10-252-0/+40
|/ | | | | | | | | | | | | | | | | | | These each produce a minimal (~300MB) sysroot containing BusyBox, the GNU C/C++ toolchain, and a couple of other components necessary for bootstrapping Baserock reference systems from the ground up. Morph and YBD used tools from the host to bootstrap, which usually worked fine but was occasionally disasterous (such as when GLIBC broke ABI between releases). BuildStream is more strict and requires you to provide binaries to seed its sandbox. The stage2 sysroot can only be used to build the stage3 sysroot, as the stage2 components are configured with a non-standard /tools prefix and the stage3 build instructions have some special casing that is necessary to work with that. The stage3 sysroot can be used to build pretty much anything and is used to seed Baserock reference builds on each platform.
* 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: https://gitlab.com/baserock/definitions/-/jobs/31214873 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 ld.so.conf 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 ld.so config to /etc/ld.so.conf in the stage2-glibc element, but the ldconfig tool would look for /tools/etc/ld.so.conf. This caused no problems for a long time, I suppose because we always built on top of sysroots that had an existing /etc/ld.so.cache 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 libz.so due the ldconfig command failing to find its config file.
* gnu-toolchain: Fix libgcc_s.so 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/libgcc_s.so 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: https://gitlab.com/baserock/ybd/commit/6676c4ac0
* 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.