summaryrefslogtreecommitdiff
path: root/elements
Commit message (Collapse)AuthorAgeFilesLines
* freetype2-harfbuzz: remove this elementFrancisco Redondo Marchena2018-06-294-14/+2
| | | | | | | This element was the same as freetype2. It was tracking the same tag and reference. This patch removes this element and replaces it by freetype2 in elements which depends on it.
* freetype2: Run autogen.sh when configureFrancisco Redondo Marchena2018-06-291-0/+17
| | | | | | The repository contains a ./configure file which is broken. To recreate the ./configure file(s), it is required to run ./autogen.sh
* libjpeg.bst: Add autoreconf to create m4 elementFrancisco Redondo Marchena2018-06-281-0/+17
| | | | | | This repository contains a ./configure which is brocken. It needs to run `autoreconf` to recreate the m4 element and a valid configure file.
* Fix /bin /sbin links to systemdFrancisco Redondo Marchena2018-06-251-2/+2
| | | | | | `$prefix` was pointing to ../usr but links don't need relative path anymore. Removing $prefix from the links make the link to work again.
* Update buildstream to 1.1.3franred/point-to-Update-buildstream-1.1.3Francisco Redondo Marchena2018-06-047-12/+12
| | | | | | | | | | Set up/Hard code STAGE2_SYSROOT to the root directory instead of calculating it depending on the current directory because buildstream has changed the default value of "build-root" directory and this was causing issues in the stage2 packages. See https://gitlab.com/BuildStream/buildstream/issues/414 for more information. Bump also the SHA of bst-external to fcd1fc365d0250bffe02937c89dcc31d11c299cf
* Update to build with BuildStream 1.0.1Sam Thursfield2018-02-237-15/+21
| | | | | | | | | | | | | We were previously building with an old 0.x version. This requires a fix to how we import the 'x86image' plugin from the bst-external plugins repo. It also requires a couple of fixes to elements which need to add things to the CMake configure commandline. These should use the new 'cmake-local' variable rather than overriding the configure-commands as a whole; the builds of these elements were breaking because the default commands changed upstream to expect out-of-tree builds.
* Add coreutils-common to the build systembenbrown/build-system-coreutilsBen Brown2018-02-091-0/+1
|
* Add BuildStream converted filesJavier Jardón2017-12-12935-0/+16682
| | | | | | | This is made by a conversion made in commit 8f8992a18d55c3abf28d4b6fc8036bd39d3dc1cf of definitions Check there to know what exact versions of YBD and defs2bst was used
* Add minimal-system-image-x86_64Sam Thursfield2017-12-069-3/+158
| | | | | | | | | | | | | | | | | | | | | | | | | | | This element produces a disk image that boots in QEMU. It has a kernel, BusyBox, and little else; but should be suitable as a basis for more grand endeavours. This disk image we produce is 53MB. I spent a while trying to get this as small as possible and this is as far as I got: * The boot partition seems to have a minimum size just over 32MB; lower than that and SYSLINUX fails to write the boot sector. The combined size of the initramfs and kernel is about 32MB, so I imagine that's what limits us. * The main partition is limited in size only by the amount of binaries that we put there. * We have a useless 40KB swap partition, which the x86image plugin insists on creating for us. Again 40KB is the minimum size that `mkswap` will allow. It's possible to override or modify the x86image plugin to avoid swap altogether but I'm not sure of the best way to proceed. There are a few dependency cleanups in the bsp-generic stack; previously we'd build the whole 'foundation' stack which took ages and wasn't needed at all.
* Add support for building an initramfsSam Thursfield2017-12-063-0/+44
| | | | | | | | | | | | The scripts are taken from https://gitlab.com/BuildStream/buildstream-tests (branch build-gnome). Those in turn were taken from http://git.baserock.org/baserock/baserock/initramfs-scripts.git We manually set the executable permissions in the init scripts using chmod, because https://gitlab.com/BuildStream/buildstream/issues/84
* gnu-toolchain: Split rule improvementssam/split-rulesSam Thursfield2017-12-048-3/+153
| | | | | | | | | | | | | | | | | | | | | | This includes many fixes that result in us being able to produce a minimal OS image or initramfs of a reasonable size. I have built an initramfs of 16MB uncompressed with this change: still a bit bigger than necessary, but much better than the comical ~700MB thing complete with kernel source code and C++ compiler that I got before these changes. Note that the gnu-toolchain stack now puts all the toolchain binaries into the 'devel' artifact. The 'runtime' artifact just contains libraries needed to run programs that are built with that toolchain. We should split this up further in future so that C programs don't depend on libstdc++. Special care is taken for GCC and GLIBC to handle the lib/ and lib64/ split that they do on some 64-bit platforms. We also globally put /usr/src into the devel artifact, which is only useful for the linux.bsp element at present but makes sense as a global rule.
* gnu-toolchain: Use correct target names in Binutils and GCCSam Thursfield2017-12-042-2/+8
| | | | | | | | | | | | | We intended to set the architecture triplet for systems we build to something like x86_64-baserock-linux-gnu. This wasn't actually happening though as nobody had passed the message on to the GCC and Binutils build systems, so we got mixed defaults of x86_64-pc-linux-gnu and x86_64-unknown-linux-gnu. Both GCC and Binutils install files that have the target name in their path, and it's useful when writing split rules if we know in advance what that's actually going to be. Plus it looks neater if we set the vendor field in the architecture triplet correctly!
* Update SambaSam Thursfield2017-12-041-0/+134
| | | | | | | | | To hopefully fix a build issue that has randomly reared its head: [3104/3492] Linking default/lib/tdb/tdbrestore /usr/bin/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/7.1.0/../../../libcom_err.a(error_message.o): relocation R_X86_64_32 against `.bss' can not be used when making a shared object; recompile with -fPIC /usr/lib/gcc/x86_64-pc-linux-gnu/7.1.0/../../../libcom_err.a: error adding symbols: Bad value collect2: error: ld returned 1 exit status
* gnu-toolchain: Fix comment in base.bstsam/base.bst-commentSam Thursfield2017-11-081-1/+5
|
* Replace use of architecture conditionals with generic project conditionsSam Thursfield2017-11-0511-259/+217
| | | | | | | | | | | | 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.
* gnu-toolchain: Use new version of base sysrootsam/bootstrap-from-baserock-binariesSam Thursfield2017-10-301-1/+1
|
* 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.
* 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-2611-0/+44
| | | | | | 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.
* 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-252-0/+310
| | | | 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.
* gnu-toolchain: Fix debug stripping for cross-builds of stage2Sam Thursfield2017-08-316-0/+24
| | | | | | | | | | | | 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.
* 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/ld-linux-aarch64.so.2 that points to a missing file (it expects /usr/lib64/ld-linux-aarch64.so.2 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
|
* Proper support for powerpc64 (little and big endian)Sam Thursfield2017-07-071-4/+10
|
* Support cross-building the stage1 and stage2 componentsSam Thursfield2017-07-078-16/+16
| | | | | | | | | | | | | | This requires a feature recently added to BuildStream (in commit 03906221) that adds a framework for elements to support being cross-compiled. To build an armv8l64 native toolchain and sysroot on an x86_64 build machine, for example, you can do this: bst build --target-arch=armv8l64 gnu-toolchain/stage2.bst You can then run `bst checkout` to get at the resulting binaries and copy them onto an armv8l64 machine where they can be executed.
* Update GCC to 7.1.0, and GLIBC to 2.25Sam Thursfield2017-07-077-15/+16
|
* Correct 'track' field for stage2-fhs-dirsSam Thursfield2017-07-071-1/+1
|
* Reworking the gnu toolchain projectTristan Van Berkom2017-04-117-53/+49
| | | | | | | o Use the org.freedesktop.BasePlaform and org.freedesktop.BaseSdk for building instead of the whole GNOME runtime. o Some minor renames
* Moved all elements under the elements directoryTristan Van Berkom2017-03-2230-0/+1323