summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* element.py: Accept absolute paths in overlap whitelistsabderrahim/absolute-whitelistAbderrahim Kitouni2020-03-306-6/+57
| | | | | | | | | | | This allows use of variables such as %{prefix} and matches the documentation. To avoid breaking compatibility with older bst 1.x versions, it still accepts paths without the leading slash. based on 1ae1796854055f4b9e3202d9629e059b327f3a8d Fixes #721
* Merge branch 'abderrahim/etag-1' into 'bst-1'Javier Jardón2020-03-291-1/+5
|\ | | | | | | | | _downloadablefilesource.py: don't download the file if etag matches See merge request BuildStream/buildstream!1838
| * _downloadablefilesource.py: don't download the file if etag matchesabderrahim/etag-1Abderrahim Kitouni2020-03-241-1/+5
|/ | | | | Some servers don't honor the 'If-None-Match' header and send the file even with matching etag
* Merge branch 'valentindavid/bst-1/python3.8-with-backports' into 'bst-1'Valentin David2020-03-107-72/+124
|\ | | | | | | | | [BuildStream 1.4] Backport changes to enable Python 3.8 See merge request BuildStream/buildstream!1830
| * scheduler.py: Prevent the asyncio loop from leaking into subprocessesBenjamin Schubert2020-03-102-10/+81
| | | | | | | | | | | | | | | | | | | | | | Having a running asyncio loop while forking a program is not supported in python and doesn't work as expected. This leads to file descriptors leaking and the subprocesses sharing the same loop as the parents. This also leads to the parent receiving all signals the children receive. This ensures we don't leek our asyncio loop in the workers we fork.
| * Enable testing on Python 3.8 (not in CI though).Valentin David2020-03-104-14/+16
| |
| * _scheduler/scheduler.py: Enforce SafeChildWatcherChandan Singh2020-03-101-0/+6
| | | | | | | | | | In Python 3.8, `ThreadedChildWatcher` is the default watcher that causes issues with our scheduler. Enforce use of `SafeChildWatcher`.
| * scheduler.py: Only run thread-safe code in callbacks from watchersBenjamin Schubert2020-03-101-1/+7
| | | | | | | | | | | | | | | | Per https://docs.python.org/3/library/asyncio-policy.html#asyncio.AbstractChildWatcher.add_child_handler, the callback from a child handler must be thread safe. Not all our callbacks were. This changes all our callbacks to schedule a call for the next loop iteration instead of executing it directly.
| * job.py: Only start new jobs in a `with watcher:` blockBenjamin Schubert2020-03-101-26/+5
| | | | | | | | | | | | | | | | The documentation (https://docs.python.org/3/library/asyncio-policy.html#asyncio.AbstractChildWatcher) is apparently missing this part, but the code mentions that new processes should only ever be called inside a with block: https://github.com/python/cpython/blob/99eb70a9eb9493602ff6ad8bb92df4318cf05a3e/Lib/asyncio/unix_events.py#L808
| * job.py: Don't use 'terminate_wait', as it uses waitpid()Benjamin Schubert2020-03-102-23/+11
|/ | | | | | | | | | | Using `join()` on the subprocess calls `waitpid()` under the hood which breaks our child watcher. Instead, schedule a task for 20 seconds later that will effectively kill the tasks. Note that the task will only be called if we still have active jobs. Otherwise, it will just be skipped and we won't wait as long.
* Merge branch 'bschubert/backport-1690' into 'bst-1'Benjamin Schubert2020-01-161-2/+8
|\ | | | | | | | | app.py: Also catch SystemError with click.Abort See merge request BuildStream/buildstream!1701
| * app.py: Also catch SystemError with click.Abortbschubert/backport-1690Benjamin Schubert2020-01-161-2/+8
|/ | | | | | | | | This is to catch an error when sometimes the readline buffer of stdin gets corrupted during the second CTRL-C we send, and leads to having BuildStream hand and throw a SystemError. Catching the SystemError and treating as a click.Abort doesn't seem to have adverse effects.
* Merge branch 'abderrahim/backport-947' into 'bst-1'Darius Makovsky2019-11-272-3/+3
|\ | | | | | | | | plugins/elements/cmake.yaml: always specify variable types See merge request BuildStream/buildstream!1549
| * plugins/elements/cmake.yaml: always specify variable typesAbderrahim Kitouni2019-11-262-3/+3
|/ | | | | | | cmake sometimes misinterprets relative paths as relative to the current directory if this is not specified. See freedesktop-sdk/freedesktop-sdk#431 adjust tests/format/variables.py accordingly.
* Merge branch 'abderrahim/no-sdk-gnome-org' into 'bst-1'Javier Jardón2019-11-195-8/+8
|\ | | | | | | | | remove references to sdk.gnome.org See merge request BuildStream/buildstream!1715
| * doc/examples/flatpak-autotools: remove references to sdk.gnome.orgAbderrahim Kitouni2019-11-195-8/+8
|/ | | | download from flathub instead, and update to 1.6 as flathub doesn't include 1.4
* Merge branch 'jjardon/doc_install_update' into 'bst-1'Javier Jardón2019-09-041-23/+38
|\ | | | | | | | | doc/source/install_linux_distro.rst: Update info See merge request BuildStream/buildstream!1585
| * doc/source/install_linux_distro.rst: Update infoJavier Jardón2019-09-041-23/+38
|/
* .gitlab-ci.yml: Use new way to define code_quality jobJavier Jardón2019-09-041-22/+3
| | | | | | See https://docs.gitlab.com/ee/ci/examples/code_quality.html Backported from 66664ddf14a40a0b29b7fb4f7f90ac10ef62f052
* Merge branch 'valentindavid/news-1.4.1' into 'bst-1'1.4.1bst-marge-bot2019-09-031-0/+6
|\ | | | | | | | | Update NEWS See merge request BuildStream/buildstream!1579
| * Update NEWSValentin David2019-09-031-0/+6
|/ | | | [ci skip]
* Merge branch 'valentindavid/update-requirements-1.4' into 'bst-1'Valentin David2019-09-037-28/+40
|\ | | | | | | | | Update requirements for 1.4 See merge request BuildStream/buildstream!1578
| * Fix an invalid deletion of potentially non-existant yaml fieldvalentindavid/update-requirements-1.4Valentin David2019-09-031-1/+2
| |
| * Re-generate requirementsValentin David2019-09-034-26/+36
| |
| * requirements/requirements.in: Use ruamel.yaml >= 0.16Valentin David2019-09-031-1/+1
| |
| * requirements/Makefile: Force installing wheel firstValentin David2019-09-031-0/+1
|/ | | | | Some dependencies need wheel to be installed before their installation is started as it provides extra setup.py commands.
* Merge branch 'valentindavid/prepare-1.4.0' into 'bst-1'1.4.0Valentin David2019-09-0217-250/+269
|\ | | | | | | | | Prepare 1.4.0 See merge request BuildStream/buildstream!1575
| * Regenerate session html filesValentin David2019-09-0215-248/+260
| |
| * Update a generated file for documentationValentin David2019-09-021-1/+1
| |
| * Bump next version to 1.4.0Valentin David2019-09-021-1/+1
| |
| * Add missing entries in NEWSValentin David2019-09-021-0/+7
|/
* Merge branch 'tristan/bst-1/strict-rebuild' into 'bst-1'bst-marge-bot2019-09-0215-16/+174
|\ | | | | | | | | Support strict build dependencies (bst 1) See merge request BuildStream/buildstream!1574
| * buildstream/_loader/types.py: Fix style for E712Javier Jardón2019-09-021-1/+1
| |
| * tests/loader/dependencies.py: Test errors when explicitly setting strict to Truetristan/bst-1/strict-rebuildTristan Van Berkom2019-08-312-0/+21
| |
| * _loader/types.pyx: Disallow explicitly setting 'strict' to FalseTristan Van Berkom2019-08-311-0/+14
| | | | | | | | | | | | | | | | This is in order to keep the door open to allowing the project.conf set the default of dependency 'strict'-ness which might be useful for projects which use mostly static linking and the like, in which case we can later interpret explicitly non-strict dependencies as an override of the project default.
| * tests/frontend/show.py: Test that strict dependencies behave as expectedTristan Van Berkom2019-08-316-4/+73
| | | | | | | | | | | | | | | | | | This tests that the target which depends on a common dependency strictly in non strict mode needs to be rebuilt after this common dependency changes, while it is not the case when depending on the same common target non strictly. This is a regression test for #254
| * tests/loader/dependencies.py: Testing for error of invalid strict runtime depsTristan Van Berkom2019-08-312-0/+20
| |
| * doc/source/format_declaring.rst: Documenting strict dependenciesTristan Van Berkom2019-08-312-0/+13
| | | | | | | | | | | | This adds documentation on the new keyword `strict` in dependency declarations, and adds a link to the strict mode user config section.
| * Implement strict dependency semanticsTristan Van Berkom2019-08-314-12/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch allows specifying a dependency as `strict`, e.g.: build-depends: - filename: element.bst strict: true This allows finer tuning of projects which want to leverage the non-strict build mode; dependencies which are statically linked to, or who's content is otherwise included verbatim in the resulting output, should be marked `strict` to ensure these bits get reassembled if necessary when building in non-strict mode. This fixes #254 Change summary: o _loader/types.pyx: Added 'strict' attribute to Dependency and do the parsing work. o _loader/metaelement.py: Added 'strict_dependencies' list o _loader/loader.py: Resolve the 'strict_dependencies' list o element.py: Added __strict_dependencies list, and use this to conditionally use weak cache keys in place of names for the purpose of building the weak cache key (in the case of dependencies which are marked as strict).
| * element.py: Use recursive element names for strict rebuild dependenciesTristan Van Berkom2019-08-311-1/+1
|/ | | | | | | | As discussed with Jürg on gitlab[0], it makes more sense to store the recursive element names and record the shape of the dependencies for non strict cache keys as well as strict ones. [0]: https://gitlab.com/BuildStream/buildstream/merge_requests/1542#note_205598556
* Revert ".gitlab-ci.yml: Use fedora-30 instead debian 9 for overnigth tests"Tristan Van Berkom2019-08-301-1/+0
| | | | | | | | | | | | | | | | | | This reverts commit 08ead05bbe24a6de94e26b1121e5aa8dd341f691. This commit was introduced to fix #1097, however it appears to not be needed anymore after e48a03b2b226f1748edf5c2d5e28093da7ca6a1a which uses a newer version of bst-external. However, moving to fedora-30 runtime DID introduce a regression with the ostree plugin, causing out-of-sync error messages to consistently occur whenever fetching an ostree source. Reverting to the old debian 9 docker image appears to fix the ostree installation to work, fixing the afore mentioned regression outlined in issue #1098. This fixes #1098.
* .gitlab-ci.yml: Use latest bst-external tag 0.16.0Javier Jardón2019-08-051-1/+1
|
* .gitlab-ci.yml: Use a python 3.5-compatible bst-external versionJavier Jardón2019-08-051-1/+1
| | | | [ci skip]
* Revert "Test"Javier Jardón2019-08-051-1/+3
| | | | This reverts commit 7f73c0dd2eae616a719d2bee68135f96a0df52bd.
* TestJavier Jardón2019-08-051-3/+1
|
* .gitlab-ci.yml: Use fedora-30 instead debian 9 for overnigth testsJavier Jardón2019-08-051-0/+1
| | | | Fixes #1097
* .gitlab-ci.yml: Use 0.15.0 tag on overnigth testsJavier Jardón2019-08-051-1/+1
|
* .gitlab-ci.yml: Use latest fdsdk release for overnght testsJavier Jardón2019-08-051-1/+1
|
* Merge branch 'tristan/bst-1/misc-cleanup' into 'bst-1'Tristan Van Berkom2019-08-0511-85/+58
|\ | | | | | | | | Backport some misc fixes (bst-1) See merge request BuildStream/buildstream!1517
| * git source plugin: Fixing documentation linking and typoTristan Van Berkom2019-08-051-3/+4
| | | | | | | | | | | | | | | | | | | | Fixes the configurable warning part of this to properly link to the project.conf documentation describing what configurable warnings actually are. Also fix the plugin raise the actual configurable warning which it advertizes that it raises; which is 'inconsistent-submodule', not 'inconsistent-submodules'.