summaryrefslogtreecommitdiff
path: root/morph
Commit message (Collapse)AuthorAgeFilesLines
...
| * morph: add cache id to the meta filesRichard Maw2012-04-201-0/+1
| | | | | | | | This is probably excessively large right now
* | Break too-long lineLars Wirzenius2012-04-231-1/+2
| |
* | Fix make-patch to use new builder stuff, and its cmdtest testLars Wirzenius2012-04-231-46/+73
|/
* Only install chunk artifacts when we shouldLars Wirzenius2012-04-201-10/+19
|
* Merge branch 'master' of gitorious.org:baserock/morphLars Wirzenius2012-04-201-67/+58
|\
| * morph: integrate MorphologyFactoryRichard Maw2012-04-201-33/+25
| | | | | | | | | | | | | | | | Traversing morphologies is a little simpler now, the callback for visit is enough to create a source pool This still needs repository caches to be able to list_files() before deducing a morphology will work.
| * morph: attempt to simplify morphology iterationRichard Maw2012-04-201-66/+65
| | | | | | | | | | Instead of doing all the iteration yourself, there is a helper function that can be given a visitor callback
* | Fix morph to obey no-git-update when buildingLars Wirzenius2012-04-201-1/+2
|/
* Clone repos with no checkout, use correct gits cache dir in cmd_build.Jannis Pohlmann2012-04-191-1/+1
|
* morph: try not needing a morph for chunksRichard Maw2012-04-191-7/+14
|
* Remove old build commandLars Wirzenius2012-04-181-44/+0
|
* Fixes to adapt to changes in masterLars Wirzenius2012-04-181-4/+9
|
* Add logging to make it easier to see if something gets builtLars Wirzenius2012-04-181-0/+3
|
* Give StagingArea a temporary directory separatelyLars Wirzenius2012-04-181-2/+9
|
* Add preliminary build2 subcommandLars Wirzenius2012-04-181-2/+70
|
* Remove BuildGraph, compute cache keys based on Artifacts.Jannis Pohlmann2012-04-181-3/+1
| | | | | | | | | | | | With this commit, the ArtifactResolver no longer computes the cache keys when creating Artifact objects. This will have to happen as a post-resolving step (e.g. prior to building or checking whether a local or remote artifact cache has any of the resolved artifacts). The CacheKeyComputer now takes an Artifact object and computes the cache keys using its dependencies. BuildGraph is no longer needed for the CacheKeyComputer unit tests.
* No longer set the repo object of Sources in _create_source_pool().Jannis Pohlmann2012-04-181-1/+0
| | | | This causes an undefined variable error.
* Add RemoteRepoCache and integrate it into _create_source_pool().Jannis Pohlmann2012-04-181-9/+35
| | | | | | | | | | | | | | This adds a new setting called 'cache-server' to morph. It is None by default and should be set to the HTTP URL of a morph cache server to be used. The RemoteRepoCache object provides two methods: resolve_ref() and cat_file(), both of which wrap the communication with the cache server and return a SHA1 string and file contents, respectively. The _create_source_pool() method now takes a local and an optional remote repo cache and tries to do whatever is best to resolve refs and load morphologies for the Source objects it creates.
* Add a repo_name to Source, use that instead of repo in most places.Jannis Pohlmann2012-04-181-1/+2
| | | | | | | | | | This is because we will need to integrate a RemoteRepoCache and we don't always want to create a CachedRepo object (in fact, we only want that for the sources of artifacts we actually need to build). So we'll use either the local or the remote repo cache to resolve refs and morphology texts and then later, when actually caching a repo, we'll set the source.repo member to a CachedRepo object that we can then use to unpack the sources.
* Pass a repo object into Sources in _create_source_pool, not a repo name.Jannis Pohlmann2012-04-171-2/+2
|
* Add _create_source_pool() method and update show-dependencies.Jannis Pohlmann2012-04-171-44/+54
| | | | | | The Morph#_create_source_pool method takes a repo cache and a repo, ref, filename triplet and resolves all the sources involved in a potential build of this triplet.
* Re-implement show-dependencies using ArtifactResolver and BuildOrder.Jannis Pohlmann2012-04-161-9/+14
|
* show-dependencies: use BuildGraph and SourcepoolRichard Maw2012-04-111-22/+46
| | | | | Rather than rely on the magic SourceManager, traverse the morphologies to list the sources, then create the dependency groups and print them
* morph update-gits: use return value of cache_repoRichard Maw2012-04-111-2/+1
|
* In update-gits, only iterate over 'build-depends' if that is possible.Jannis Pohlmann2012-04-111-2/+3
|
* morph: create cachedir if missingRichard Maw2012-04-101-0/+2
|
* Improve the logging output of update-gits.Jannis Pohlmann2012-04-101-1/+1
|
* Various small fixes to make the new update-gits work again.Jannis Pohlmann2012-04-101-9/+14
|
* Rewrite "morph update-gits" to use the new repo caching and morphology classesLars Wirzenius2012-04-091-9/+24
| | | | | The code is now longer, but it's more explicit what happens, and it'll be easier, later on, to add a progress bar.
* morph: convert ccache-remotenlevels to a stringRichard Maw2012-04-051-1/+2
| | | | | env needs to be a dict of string: string, so ccache-remotenlevels must be converted to a string when it is put in env.
* morph: add options for ccache object downloadingRichard Maw2012-04-051-0/+15
| | | | | | | | | | | --ccache-remotedir specifies a base URI for downloading objects from --ccache-remotenlevels specifies how many components to split the object name with, so if --ccache-remotenlevels=2 then object FEEDBEEFCAFEF00D.o will be searched for at $URI/F/E/EDBEEFCAFEF00D.o --ccache-remotenlevels should work most of the time with the default value. It is only needed if the ccache that populates the remote object cache uses a non-default CCACHE_NLEVELS.
* morph: hash the toolchain .meta files in ccacheRichard Maw2012-04-051-0/+5
| | | | | | | | | | | | | | | | We need the entire toolchain to be part of the hash that determines ccache objects, as if any of them differ it could generate different output. ccache can have the cache-key depend on arbitrary files with the CCACHE_EXTRAFILES environment variable, which is a : separates list of files to hash. So add the .meta files of our toolchain to CCACHE_EXTRAFILES if they exist. Extra work needs to be done to ensure the toolchain is properly hashed however, the .meta files will need the cache-key to be included.
* Add petrify subcommandLars Wirzenius2012-04-041-0/+28
|
* morph: don't fail cleanupRichard Maw2012-03-291-3/+8
| | | | | | | | If an exception happens, the cleanup may fail to cleanup something that wasn't yet set up. For now catch exceptions in cleanup. If you know a cleaner way let me know. Also remove a left-over print statement
* Merge branch 'master' into jannis/add-target-cflags-optionJannis Pohlmann2012-03-271-1/+167
|\
| * Add rudimentary branch+merge supportLars Wirzenius2012-03-261-1/+167
| |\
| | * Fix "morph checkout" and system branch deductionLars Wirzenius2012-03-261-5/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Checkout now does "git remote update" so the local branch gets the remote branches. This will spend a bit more time, but it's needed for "morph edit foo" to work when there's an existing "foo" branch in origin. System branches are no longer deduced from the currently checked out branch name of the current git repository, since that doesn't work when "morph edit" checks out an existing branch. Instead, we deduce it from the current working directory name (relative to the mine directory).
| | * Do not create a cache directory in the mineLars Wirzenius2012-03-261-1/+0
| | | | | | | | | | | | | | | It wasn't being used, anyway. And there's no real point in having a per-mine cache directory.
| | * Make "morph edit" work with existing branches, and fix "morph merge" pulling ↵Lars Wirzenius2012-03-231-2/+5
| | | | | | | | | | | | right
| | * Make "morph edit" work when chunk already has the branchLars Wirzenius2012-03-231-2/+5
| | |
| | * Add cmdtest for morph branch to set origin correctlyLars Wirzenius2012-03-231-0/+3
| | |
| | * Add "morph checkout" commandLars Wirzenius2012-03-231-0/+17
| | |
| | * Add "morph merge" subcommandLars Wirzenius2012-03-231-0/+17
| | | | | | | | | | | | | | | This is highly simplisitic, and it's going to be highly painful to use, but it does the very basics of what we need, I think.
| | * Add "morph edit", "morph show-system-branch" subcommandsLars Wirzenius2012-03-231-17/+68
| | |
| | * Implement "morph branch"Lars Wirzenius2012-03-221-2/+21
| | |
| | * Add test for "morph branch" when system branch directory already existsLars Wirzenius2012-03-221-0/+10
| | |
| | * Implement the "morph mine" subcommandLars Wirzenius2012-03-221-0/+13
| | |
| | * Implement "morph init" and fix tests accordinglyLars Wirzenius2012-03-221-0/+18
| | |
| | * Add test cases for "morph init"Lars Wirzenius2012-03-221-0/+3
| | |
* | | Add --target-cflags option; set arch/fp in baserock-bootstrap on ARM.Jannis Pohlmann2012-03-261-0/+6
|/ / | | | | | | | | | | | | | | The --target-cflags option is really just a temporary solution. At some point we will want to have a proper target architecture/device description that morph uses to define compiler flags etc. For now, I hope this will do.