aboutsummaryrefslogtreecommitdiff
path: root/libs/git
Commit message (Collapse)AuthorAgeFilesLines
* Rename and refactor diff_patch_file()Andrew Robbins2019-03-181-1/+1
| | | | | | The previous function, diff_patch_file, was more error-prone and fragile and did not take into consideration patching of more than one file at a time(!).
* libs/git: Apply patches before removing blobsAndrew Robbins2019-03-131-1/+1
| | | | | | | | | Patching before removing blobs is cleaner since patches are applied against a freshly created and checked out branch at the specified revision. Applying patches first also seems to reduce the likelihood of failed patching attempts due to a nebulous error about files not matching the git index (but doesn't eliminate it). More debugging required.
* libs/git: Actually patch recursivelyAndrew Robbins2019-03-131-10/+10
| | | | | | | | | | | | | | | | Previously the only way patching would work is if for every target there existed a corresponding directory under $project/$PATCHES, e.g: "./libreboot update coreboot x200 8MiB corebootfb grub" would require the "grub" directory and its parents: "projects/coreboot/patches/x200/8MiB/corebootfb/grub" Now you only need target-specific patch directories if you need them; I believe this was the intended behavior. Superfluous quotes were removed for readability.
* libs/git: Create branch name based on argument listAndrew Robbins2019-03-121-18/+2
| | | | | | | | | | | | | | | | | | | | | There was a bug where only $project was used as the branch name due to some faulty logic which checked for the existence of a revision file before setting the variables "prepare_branch" and "prepare_path". The bug in this case was that prepare_branch would be set to the value of $branch in only the first iteration of the for loop since in almost all cases there is only one revision file that exists for a given project, regardless of the arguments provided. Explained another way, in order for the proper branch name to be used a revision file would have had to exist in every target directory. This was an issue because only one branch was ever operated on (named $project), meaning if actions were performed on many targets then only the last to run would be represented in the project's repository--making tracking down some bugs a bit harder. With this fixed we now create a branch for every possible project or tool configuration and leaves us with a log for each.
* libs/git: Prefix branch names with "libreboot-"Andrew Robbins2019-03-121-7/+8
| | | | | | | This is a slight mitigation against branch name collisions. More robust handling should be added in the future but this is simple enough and provides some clear indication which branches have been created by the build system.
* libs/git: Clean up after patch fails to applyAndrew Robbins2019-03-111-1/+2
| | | | | A patch failing to apply shouldn't leave the repository in such a state where manual intervention is necessary to reset it.
* Remove unnecessary spaces in command substitutionsAndrew Robbins2017-10-281-17/+17
| | | | | | | | | This is likely one of the very last changes necessary to make the Libreboot build system more cohesive in appearance. Hopefully from this point forward it won't be as readily apparent as to who wrote which parts of the build system (i.e. won't look like a patchwork quilt any longer).
* Make use of Bash's '-n' operator for testsAndrew Robbins2017-10-281-16/+16
| | | | | | | | | | | | As an example, do this: [[ -n $revision ]] instead of this: ! [[ -z $revision ]] Makes the code easier to read.
* Replace usage of the '[' Bash builtin with '[['Andrew Robbins2017-10-281-29/+29
| | | | | | | | | | There's no benefit to using the POSIX-style '[' test builtin considering its '-a' and '-o' operators are unused in the Libreboot build system. Plus, '[[' is safer with respect to any containing file redirections (for example). Prior, both '[' and '[[' were used throughout the codebase--a disparity in usage which this change aims to eliminate.
* Remove braces from parameter expansionsAndrew Robbins2017-09-211-10/+10
| | | | | | * libs/git ditto
* Enable 'extglob' and replace some brace expansionsAndrew Robbins2017-07-111-1/+1
| | | | | | | Replace brace expansions with extended globs in a couple of places where brace expansions were erroneously used in place of actual pattern matching. This avoids potential errors concerning nonexisting files when patching sources.
* Vars TAR_XZ,ASC,SHA256SUM renamed for generality.Andrew Robbins2017-06-251-2/+2
| | | | | Will help facilitate sane code when handling: archive formats, checksum file extensions, signature formats.
* Replaced '#!/bin/bash' w/ '#!/usr/bin/env bash'Andrew Robbins2017-06-231-1/+1
| | | | | This is mainly useful for being able to run these scripts on BSDs. And for users who use a Bash not installed to /bin.
* Remove unnecessary 'env' invocation from printf.Andrew Robbins2017-06-231-2/+2
| | | | | This reverts part of pull request #217 which called the 'env' binary for each printf invocation.
* Fixed printf calls & replaced 'echo' w/ printf.Andrew Robbins2017-06-231-2/+2
| | | | | | | | | All printf calls should now be properly formatted; prior, the format specifier string was erroneously used for both the format specifiers and the string to be printed. 'env' is now used to locate the printf binary so as to avoid potentially using a shell builtin. Lastly, all calls to 'echo' within the new build system have been replaced with printf for consistency/portability purposes.
* Improved handling of filenames in archive creationAndrew Robbins2017-06-221-3/+3
| | | | | | | | Filenames listed in DOTTARFILES are now NUL terminated so that any with strange characters, such as a newline, do not negatively affect archive creation. DOTRNDSEED file which stores the random seed to be used by GCC during compilation is now included in the list of files to be archived. Cleaned up functions related to archive creation.
* Patching now works. bucts can be patched & built.Andrew Robbins2017-05-311-18/+18
| | | | | | | | | Modified the function git_project_patch_recursive (in libs/git) to enable patching with diff files, which uses the new function diff_patch_file located in libs/common. A generic action script for bucts is in projects/bucts/. Install/revision/target files are in projects/bucts/configs/. bucts' merge into the new build system should be nearly, if not already, complete.
* libs: git: Check that blobs path is a valid filePaul Kocialkowski2017-01-151-1/+1
| | | | Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
* libs: git: Checkout with -B to allow recreating branchesPaul Kocialkowski2017-01-151-1/+1
| | | | Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
* Paper build system initial import into LibrebootPaul Kocialkowski2017-01-151-0/+634
This is the initial import of the Paper build system into Libreboot. It was written as a flexible and painless replacement for the Libreboot build system, allowing to support many different configurations. It currently only supports the following CrOS devices: * Chromebook 13 CB5-311 (nyan big) * Chromebook 14 (nyan blaze) * Chromebook 11 (HiSense) (veyron jerry) * Chromebit CS10 (veyron mickey) * Chromebook Flip C100PA (veyron minnie) * Chromebook C201PA (veyron speedy) The build system also supports building various tools and provides various scripts to ease the installation on CrOS devices. Signed-off-by: Paul Kocialkowski <contact@paulk.fr>