nixpkgs icon indicating copy to clipboard operation
nixpkgs copied to clipboard

buildstream: Add `buildbox` to `dependencies`

Open shymega opened this issue 6 months ago • 2 comments

Buildbox is needed at runtime and during builds. Without buildbox available to the package, or otherwise in $PATH, Buildstream will not run.

Things done

  • Built on platform(s)
    • [x] x86_64-linux
    • [ ] aarch64-linux
    • [ ] x86_64-darwin
    • [ ] aarch64-darwin
  • For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)
    • [ ] sandbox = relaxed
    • [ ] sandbox = true
  • [x] Tested, as applicable:
  • [ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
  • [x] Tested basic functionality of all binary files (usually in ./result/bin/)
  • Nixpkgs 25.11 Release Notes (or backporting 24.11 and 25.05 Nixpkgs Release notes)
    • [ ] (Package updates) Added a release notes entry if the change is major or breaking
  • NixOS 25.11 Release Notes (or backporting 24.11 and 25.05 NixOS Release notes)
    • [ ] (Module updates) Added a release notes entry if the change is significant
    • [ ] (Module addition) Added a release notes entry if adding a new NixOS module
  • [ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

shymega avatar Jun 03 '25 23:06 shymega

nixpkgs-review result

Generated using nixpkgs-review.

Command: nixpkgs-review pr 413743 Commit: 11ebad06944d2e9ecec183e1c15d9c4d68e6943b


x86_64-linux

:x: 2 packages failed to build:
  • buildstream
  • buildstream.dist

Error logs: `x86_64-linux`
buildstream
buildstream> ________________________ test_out_of_basedir_hardlinks _________________________
buildstream> [gw10] linux -- Python 3.13.4 /nix/store/sd81bvmch7njdpwx3lkjslixcbj5mivz-python3-3.13.4/bin/python3.13
buildstream>
buildstream> cli = <buildstream._testing.runcli.Cli object at 0x7fffed6291d0>
buildstream> tmpdir = local('/build/source/tmp/popen-gw10/test_out_of_basedir_hardlinks0')
buildstream> datafiles = PosixPath('/build/source/tmp/popen-gw10/test_out_of_basedir_hardlinks0')
buildstream>
buildstream>     @pytest.mark.datafiles(os.path.join(DATA_DIR, "out-of-basedir-hardlinks"))
buildstream>     def test_out_of_basedir_hardlinks(cli, tmpdir, datafiles):
buildstream>         def ensure_link(member):
buildstream>             # By default, python will simply duplicate files - we want
buildstream>             # hardlinks!
buildstream>             if member.path == "contents/to_extract/a":
buildstream>                 member.type = tarfile.LNKTYPE
buildstream>                 member.linkname = "contents/elsewhere/a"
buildstream>             return member
buildstream>
buildstream>         project = str(datafiles)
buildstream>         generate_project(project, config={"aliases": {"tmpdir": "file:///" + str(tmpdir)}})
buildstream>         checkoutdir = os.path.join(str(tmpdir), "checkout")
buildstream>
buildstream>         # Create a tarball with an odd hardlink
buildstream>         src_tar = os.path.join(str(tmpdir), "contents.tar.gz")
buildstream>         old_dir = os.getcwd()
buildstream>         os.chdir(str(tmpdir))
buildstream>         with tarfile.open(src_tar, "w:gz") as tar:
buildstream>             # Don't recursively add `contents` as the order is not guaranteed.
buildstream>             # We need to add `elsewhere` before `to_extract` as the latter
buildstream>             # references the former in `linkname`.
buildstream>             tar.add("contents", recursive=False)
buildstream>             tar.add("contents/elsewhere")
buildstream>             tar.add("contents/to_extract", filter=ensure_link)
buildstream>         os.chdir(old_dir)
buildstream>
buildstream>         # Make sure our tarfile is actually created with the desired
buildstream>         # attributes set
buildstream>         with tarfile.open(src_tar, "r:gz") as tar:
buildstream>             assert any(
buildstream>                 member.islnk() and member.path == "contents/to_extract/a" and member.linkname == "contents/elsewhere/a"
buildstream>                 for member in tar.getmembers()
buildstream>             )
buildstream>
buildstream>         # Assert that we will actually create a singular copy of the file
buildstream>         result = cli.run(project=project, args=["source", "track", "target.bst"])
buildstream>         result.assert_success()
buildstream>         result = cli.run(project=project, args=["source", "fetch", "target.bst"])
buildstream>         result.assert_success()
buildstream>         result = cli.run(project=project, args=["build", "target.bst"])
buildstream> >       result.assert_success()
buildstream>
buildstream> tests/sources/tar.py:517:
buildstream> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
buildstream>
buildstream> self = <buildstream._testing.runcli.Result object at 0x7fffed7ff430>
buildstream> fail_message = ''
buildstream>
buildstream>     def assert_success(self, fail_message=""):
buildstream> >       assert self.exit_code == 0, fail_message
buildstream> E       AssertionError

pbsbot avatar Jun 22 '25 23:06 pbsbot

Yep, so we'll need this one (https://github.com/NixOS/nixpkgs/pull/419096) merged first.

shymega avatar Jun 22 '25 23:06 shymega

@pbsds https://github.com/NixOS/nixpkgs/pull/419096 has been merged, and I've rebased this PR. I'll try running nixpkgs-review once more ocally.

shymega avatar Jun 23 '25 22:06 shymega

nixpkgs-review result

Generated using nixpkgs-review.

Command: nixpkgs-review pr 413743 Commit: b850eb81e21438f79928e9ce62a17c948db22ee1


x86_64-linux

:white_check_mark: 2 packages built:
  • buildstream
  • buildstream.dist

pbsbot avatar Jun 24 '25 01:06 pbsbot

Successfully created backport PR for release-25.05:

  • #419674

nixpkgs-ci[bot] avatar Jun 24 '25 20:06 nixpkgs-ci[bot]