summaryrefslogtreecommitdiff
path: root/morphlib/stagingarea.py
Commit message (Collapse)AuthorAgeFilesLines
* Revert "Merge branch 'liw/hardlink-staging-area-pre-rebase'"Jannis Pohlmann2012-11-301-67/+4
| | | | | | | | | | | | | | This reverts commit c859d70d86423a52bc7053abf64e9ca21f62a487, reversing changes made to 3085a672d1e8b5177be33f0463385de72a0ef5bf. Unfortunately, hardlinking and linux-user-chroot both break builds in various ways. Hardlinking breaks the bootstrap process by creating symlinks like /usr/libexec that can then not be overwritten with real files by install scripts from morphologies like gcc. linux-user-chroot caused problems by breaking privileged operations such as chgrp and CAP_SETFCAP. As a consequence, chunks like util-linux and libcap can no longer be built.
* Change method comments to docstringsLars Wirzenius2012-11-291-3/+6
| | | | This also makes coverage.py be silent on Debian squeeze.
* Reformat code, plus adapt for non-staging-area buildsLars Wirzenius2012-11-291-15/+20
|
* Refactor and fix to make it pass (more of) the test suiteLars Wirzenius2012-11-291-8/+12
|
* Hardlinked chroot done with linux-user-chrootJoe Burmeister2012-11-291-3/+54
| | | | | | | | | | | | | | The patch gives two things. Improves morph build time by reusing decompressed files of chunks/stage-fillers with hardlinks from the chroot. Rather than decompressing each time into each chroot. Original: real 5h 17m 47s Hardlink: real 2h 52m 27s It uses linux-user-chroot to create the chroot and make all but the basics readonly.
* python scripts: pep8ize codebaseRichard Maw2012-08-011-24/+23
| | | | | | | | | This was done with the aid of the pep8 script, available by running `easy_install pep8`. It may be worth making this part of ./check, but that will require putting pep8 into the development tools stratum. This should be easy, given pep8 has no external dependencies.
* morph: remove dead code and replace Execute with app.runcmdRichard Maw2012-05-301-3/+3
|
* bins: move errno from stagingareaRichard Maw2012-05-151-1/+0
| | | | | This import was forgotten when the artifact extract code was moved into bins, so it could be used in builder
* builder: use the same tar extract logic for all artifactsRichard Maw2012-05-141-82/+2
| | | | | Before only the staging area had symbolic links handled, now strata and systems will have the same logic.
* stagingarea: fix dir detectionRichard Maw2012-04-301-4/+4
|
* Improve artifact extraction logic when overwriting existing stuff on filesystemLars Wirzenius2012-04-301-3/+49
| | | | | | | | | We had a problem where something in the bootstrap would fail because two different chunk artifacts had a path (/tools/lib64) exist as a directory exist as a symlink (to /tools/lib) versus a directory, and morph confusing things. The new logic should handle this better.
* stagingarea: when extracting, clobber outputRichard Maw2012-04-271-0/+3
| | | | | | I really don't like this, but it causes the bootstrap to fail because /bin/bash exists for compatibility and the stratum also creates /bin/bash.
* stagingarea: remove path from chrootRichard Maw2012-04-261-1/+1
| | | | | | | chroot may not be installed to /usr/sbin/chroot, this breaks bootstrap because chroot is installed in /tree/tools/sbin. PATH should be set, so putting the absolute path in should be unnecessary
* Restructure code so coverage is happyLars Wirzenius2012-04-261-8/+7
|
* Monkey patch Python's tarfile.TarFile for proper errors, ignoring overwritesLars Wirzenius2012-04-261-0/+31
|
* Log installed artifacts; do not log shell commandsLars Wirzenius2012-04-251-2/+4
| | | | | The -x to sh didn't actually produce any output to help in my debugging, so I remove it now.
* Fix how we run commands in a chrootLars Wirzenius2012-04-201-1/+2
| | | | | | We'll get back to linux-user-chroot later, but to do that, we need to sort out how we deal with the install-commands without needing real or fake root for them.
* Make StagingArea get temporary directory separately from root directoryLars Wirzenius2012-04-181-6/+4
| | | | | | When we are not using --staging-chroot (e.g., bootstrap), we need to specify the temporary directory separately, because it needs to obey things like $TMPDIR.
* Make StagingArea create build and install directories, run commandsLars Wirzenius2012-04-181-1/+59
|
* Add a class to manage the staging area for buildsLars Wirzenius2012-04-121-0/+60