Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[pull] main from binpash:main #2

Open
wants to merge 29 commits into
base: main
Choose a base branch
from
Open

[pull] main from binpash:main #2

wants to merge 29 commits into from

Conversation

pull[bot]
Copy link

@pull pull bot commented Jul 21, 2023

See Commits and Changes for more details.


Created by pull[bot]

Can you help keep this open source service alive? 💖 Please sponsor : )

@pull pull bot added the ⤵️ pull label Jul 21, 2023
ezrizhu and others added 28 commits July 24, 2023 13:22
Merging even though the vagrant checks are failing---something is borked in our runners.
* feat(net): add option -x to unshare network

* feat(net): add test

* feat(net): add docs and autocomplete

---------

Co-authored-by: Michael Greenberg <[email protected]>
missed in merge of #130
* feat(docs): specify try will only work on linux >= 5.11
* fix(ci): add curl to Vagrantfile

* fix(ci): use selfhosted runner

* fix(tests/net): use exit in if block
replaces a subshell that called out to basename with Parameter Expansion specified by POSIX
* feat: add -L flag to support one or more lower directories

* docs: shell completion, manpage, and readme update

* test: add test to test merging multiple lowerdirs, and also invoking -L multiple times

Note that currently -L implies -n (will not commit changes), support for that is being tracked in  #142

---------

Co-authored-by: gliargovas <[email protected]>
Co-authored-by: Ezri Zhu <[email protected]>
Reviewed-by: Michael Greenberg <[email protected]>
Reviewed-by: Konstantinos Kallas <[email protected]>
* if mktemp -d's in a overlayfs, we will mount a tmpfs on the overlay_dir
* symlink sync

* symlinks: add test
In this commit, we are ensuring the dirs in the `/` root path of the temproot is as close as the 'real' one as possible. 

`$SANDBOX_DIR/temproot` is now being created with the same permission as the host, and every other directories on the top level are created with the same mode as the real one.
Symlinks are now also created in the unshare, and removed after unshare finishes. 
Tests are created to check the mode, ownership, and symlink of the files in the `/` directory. 

Known issues
In the test, we're ignoring files with the name swap.
And also /proc, our current `mount -t proc proc /proc` invocation are creating the /proc dir with nobody and nogroup ownership.  We're tracking this in #151
This PR currently assumes there are no regular files in the root dir besides the swap.img. We're tracking this in issue #150 

* feat: keep toplevel dir perms in temproot - fixes #80

* feat: recreate symlinks in temproot - fixes #139

* feat: set correct permission for root dir, and remove symlink after unshare

* feat: set temproot to be writible before removing symlinks

* test: add new test to verify consistency of root dir (see known issues)

* test(reuse_problematic_sandbox): set test to use a non-symblink dir

* test(toplevel-perms): ignore acl bit, user&group ownership
* check sandbox_dir instead of mktemp, logging, docs
sync before unmounting the device files after unshare is unnecessary and adds overtime.
this commit removes the sync.
Introduces `try-summary` and `try-commit` utilities that can (optionally) replace the `summary()` and `commit()` routines in try. The changes are broad and far reaching:

- fixed fundamental logic bugs in the existing summary and commit routines
- a new dependency on `getfattr` (typically the `attr` package) for `try`
- new test cases, including one that checks every possible case of upper/lowerdirs
- a new lint script for making sure every part of our system that does case analysis on upper/lowerdirs handles as all cases 
- fixes and improvements to CI (and elsewhere)
Configuration and installation routines. New invariant: nothing generated goes in the repo.

- autoconf to generate a configure script, explicit enumeration of dependencies
- options for building utilities and generating manpages
- updated CI to exercise a variety of installation scenarios
- source distribution target in Makefile that includes generated artifact (configure script, manpages)
* use debian12 as vagrant runner

* use mergerfs with debianrustup
Some of the pure_mountpoint logic were missed when merging commits over, and the tests never failed due to incorrect permission bits. As well as some CI chore 

* fix: misc upperdir fixes

* fix: test bit on merge mult dirs test

* chore (tests/ci): add mergerfs to vagrantfiles

* chore (tests/ci): run merge multi dirs test in home dir

* chore (tests/ci): update fedora box ver, install mergerfs
* stdstream support

* stdstream test (using /dev/std{in,out,err}), and fds directly
merging because CI is broken and GH is not debugging properly
Ubuntu 24.04 LTS has this feature turned off, but we need it to configure the build or run tests
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants