You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@buildstream.apache.org by GitBox <gi...@apache.org> on 2022/02/10 13:42:26 UTC

[GitHub] [buildstream] abderrahim commented on issue #1585: BuildStream 1.6.3 compose build fails when integration command deletes directory

abderrahim commented on issue #1585:
URL: https://github.com/apache/buildstream/issues/1585#issuecomment-1034936375


   I managed to find a small reproducer for this: take the following element
   
   ```
   kind: manual
   
   config:
     install-commands:
     - mkdir -p %{install-root}/etc/release
     - ln -s /etc/fonts/os-release %{install-root}/etc/release/
   
   public:
     bst:
       integration-commands:
       - rm -r /etc
   ```
   (and add as a dependency a minimal sysroot). A compose element that depends on this and requires split (to use the plugin terminology) will choke on this with a similar error.
   ```
   FAILURE compose.bst: Source file is missing: /var/home/abderrahim/.cache/buildstream/build/compose-_fo9upgi/root/etc
   ```
   
   The problem is that the `compute_manifest()` call [here](https://github.com/apache/buildstream/blob/bst-1/buildstream/plugins/elements/compose.py#L102) returns `.`, `etc` and `etc/release/os-release` (but no `etc/release`). After the integration command, it notices that `etc/release/os-release` has been removed, but not `/etc` (I guess it only checks files).
   
   It seems the reason this is happening is because we have a symlink inside a directory, because it works fine if the symlink is directly in `/etc`.
   
   This doesn't happen with bst master since 9f6a3332812f4caa036084f843cf95b9c6b9181f (part of [!1182](https://gitlab.com/BuildStream/buildstream/-/merge_requests/1182)) as it no longer tries to copy all files in the manifest but tries instead to check files with the manifest for copying.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@buildstream.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org