Yay! 拾
--
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2559#issuecomment-1653819061
You are receiving this because you are subscribed to this thread.
Message ID: ___
Rpm-maint mailing list
Merged #2559 into master.
--
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2559#event-9914809711
You are receiving this because you are subscribed to this thread.
Message ID:
___
Rpm-maint
Alright, let's get this done now.
The commits should now be fairly self-contained and I also removed some bits in
the final version of this PR that were just premature generalization on my part
(e.g. [this
@dmnks pushed 1 commit.
1c23ff53cd33d04703e636e8058f4d14eee2d03c Add mktree.podman backend
--
View it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2559/files/ab81ed980c2ef353f0ea1a1da71754e4d3963fc2..1c23ff53cd33d04703e636e8058f4d14eee2d03c
You are receiving this because you
@dmnks pushed 1 commit.
6d1f811969303a894d9f57a0777a9813409adb23 Add mktree.podman backend
--
View it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2559/files/4f4d4e93dcd77d466ab395463a340897c7aca1d1..6d1f811969303a894d9f57a0777a9813409adb23
You are receiving this because you
@dmnks pushed 24 commits.
de6156ae7d12ecea1feff9eaaed60e5b36f92d70 Silence awk if no RPM_CONFIGDIR in
atlocal
344a908aea39ff70043f4c25fee8aac6969e0e02 Refactor mktree
9a14319af22073a8673d4e758b4e085c3c3ac077 Rename sandbox() to snapshot()
8db3e440dbe87655262c8df3d26c5edf67de86bb Use $RPMTEST
> What do we do if we want to run the test suite on non-Linux? Like macOS?
You can send patches once this has been merged :wink:
Fakechroot is being replaced because it's a brittle hack that is severely
hindering our ability to test rpm everywhere, including the primary platform
Linux. This is
> Anyway, the timing of your question was just right as I had been
> contemplating just about the same thing, i.e. whether to decouple the test
> suite completely from the sandboxing method used or make bwrap hardwired.
> (It's also one of the reasons this PR is still not merged, sigh.)
Do NOT
@dmnks There is a FUSE implementation of OverlayFS that also supports the BSDs.
--
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2559#issuecomment-165921
You are receiving this because you are subscribed to this thread.
Message ID:
> At that point, adding a legacy backend using fakechroot (or just chroot
> perhaps) would be a possibility and while I won't make any promises, I
> _might_ look at that later.
Hmm, I totally forgot that `chroot` alone wouldn't suffice, the system would
also need to have something like
Anyway, the timing of your question was just right as I had been contemplating
just about the same thing, i.e. whether to decouple the test suite *completely*
from the sandboxing method used or make bwrap hardwired. (It's also one of the
reasons this PR is *still* not merged, sigh.)
This is a
> Oh, so you do have a fakechroot build (in that VM) that works fine with the
> test suite, correct?
Nah, disregard that, you just confirmed that in your reply:
> but [fakeroot](https://salsa.debian.org/clint/fakeroot) is supposed to work
> on macOS and is [available via
>
Oh, so you do have a fakechroot build (in that VM) that works fine with the
test suite, correct?
I mean, it's not a huge program with a lot of dependencies anyway (and
`chroot()`, which AFAIK is used underneath, is a POSIX function, as you said),
so it's probably easier to port than a full
I have a virtual machine with macOS that I do destructive things in.
Occasionally that includes running the test suite, but even just making a build
environment for RPM in macOS manually (and avoiding homebrew) is pretty messy,
so I do all that work in a dedicated virtual machine.
--
Reply to
> Darwin has `chroot()` like all POSIX systems. I'm not sure if `fakechroot`
> works on Darwin, but [`fakeroot`](https://salsa.debian.org/clint/fakeroot) is
> supposed to work on macOS and is [available via
> homebrew](https://formulae.brew.sh/formula/fakeroot).
>
> Darwin also has the sandbox
Since I already started describing the new architecture, here's a perhaps
simpler outline of how it works now (`mktree` is wired into the `make`):
1) `mktree build`
* builds a base OS tree
* builds RPM natively and make installs it into the base OS tree
2) `mktree check`
* runs `rpmtests`
Darwin has `chroot()` like all POSIX systems. I'm not sure if `fakechroot`
works on Darwin, but [`fakeroot`](https://salsa.debian.org/clint/fakeroot) is
supposed to work on macOS and is [available via
homebrew](https://formulae.brew.sh/formula/fakeroot).
Darwin also has the sandbox API (which
Bubblewrap (bwrap) is used here to create fast, ephemeral per-test containers
(*snapshots*) of the root filesystem. This replaces the former use of
fakechroot. The whole test suite (the `rpmtests` script) assumes that the RPM
build to be tested is installed into the root filesystem.
That
What do we do if we want to run the test suite on non-Linux? Like macOS?
--
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2559#issuecomment-1632247013
You are receiving this because you are subscribed to this thread.
Message ID:
@dmnks pushed 1 commit.
a411270af569c8aacd6fdc8bb74c452351472b10 Add podman backend
--
View it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2559/files/69d58a69a24e5fc62a6ddb3ff6012ceb598c34ad..a411270af569c8aacd6fdc8bb74c452351472b10
You are receiving this because you are
@dmnks pushed 14 commits.
4a5d0014c0c3a7e62eeed33347a7bd0098dc3b74 MVP mktree
aee1113fe3dac38832e83c0d4258d1ee71883f25 Add env cmd
ce9e62fb4fa50f8887e8bba561a188781eb30c60 Add .mktree.env
db9edac6547fc63a2267e5e65b5b89b633d575b3 Add RPM_CONFIGDIR_PATH
e1a9fbd440fbd835ae6ca1f9c70e582145a74d23
@dmnks pushed 13 commits.
f514cba0080a9f3cd5054102cdfddfa7107c5b28 MVP mktree
a9b2206697f572d861ac91b115f92ef5231b484f Add env cmd
18a10e7d347c5da6dcc88b90ce6fb84ee611174d Add RPM_CONFIGDIR_PATH
1c593ba4fdb0f109a54a1d200d0d348f4427f7d5 MVP bwrap
f9332e449eb93faba06ca5fe33c4e431107b63aa
@dmnks pushed 14 commits.
264e3fd338153d623d9f56d1659f7132585ffd37 Rename .output -> .check
51b9ceec3d764e395a96dec1b2b7109546785dbf MVP mktree
e87ecf85e3566a060ad5be08a7dd84ee134eb799 Add env cmd
40056bb43b4348c187f74463a68f3f8262b7ca40 Add RPM_CONFIGDIR_PATH
@dmnks pushed 1 commit.
2ded022a696838f7b6c1ce7fe7174d22777e8a75 Add podman backend
--
View it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2559/files/58a1e437fc1a3447b4ac976f43a10adc39c069b1..2ded022a696838f7b6c1ce7fe7174d22777e8a75
You are receiving this because you are
@dmnks pushed 4 commits.
f9b9e0e116ad1d13b65b4064f7382a3b132a791e Replace fakechroot with bwrap
a02c68989f0d1741772fab9730fced67ae4dc89a Drop ci/ directory, move Dockerfile
to tests/
bf0e8bfb5710330d2b22b3033cbfa88a3f5dea52 Turn Dockerfile into a standalone RPM
image
@dmnks pushed 4 commits.
222538da27e5edc686b7a06e97c3290fb0581eb9 Replace fakechroot with bwrap
e0f5f8fca9e7d765728f9c739a534c63e6cf70d7 Drop ci/ directory, move Dockerfile
to tests/
c9308144d95136fb67ebbb3c1989fd0589a1d971 Turn Dockerfile into a standalone RPM
image
@dmnks pushed 6 commits.
27331917eb4366a10869427f811bc605752c7e88 Actually ensure no rpmdb in "no
rpmdb" test
dbbc4e9811f7ce7a846b76ad9fb8c16ffbe0d82b Silence awk if no RPM_CONFIGDIR in
atlocal
994d1b0abe19ea14407b5848b7125ba463fa1692 Replace fakechroot with bwrap
@pmatilai approved this pull request.
I don't claim to have understood, or even tried, everything this does. It's
remarkably neat and tidy for such big change though. Good job :+1:
Feel free to hit merge once CI passes.
--
Reply to this email directly or view it on GitHub:
Oh yup. Semi-final, not final :smile:
--
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2559#issuecomment-1625339177
You are receiving this because you are subscribed to this thread.
Message ID:
> That final "Replace fakechroot with bwrap" commit could use a little more
> elaborate commit message though. Like a brief description of the setup this
> creates smile
Yup, on the todo list above :laughing:
--
Reply to this email directly or view it on GitHub:
Test-suite passes locally :+1:
That final "Replace fakechroot with bwrap" commit could use a little more
elaborate commit message though. Like a brief description of how the setup this
creates :smile:
--
Reply to this email directly or view it on GitHub:
OK, pushed a semi-final version of this branch. Please note the CI will now
fail since there's no podman/docker backend yet. That's in progress now :grin:
--
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2559#issuecomment-1625318978
You
@dmnks pushed 3 commits.
ebbda3d41dfa876bb60e1ea82efbe33b837d52fb Actually ensure no rpmdb in "no
rpmdb" test
47acf07be8309f7492d79daf1afc7cdf01464202 Silence awk if no RPM_CONFIGDIR in
atlocal
ba798a1146aabd6103558195f6071c626ed3f86a Replace fakechroot with bwrap
--
View it on GitHub:
Just FTR, I have a
[simplified](https://github.com/dmnks/rpm/tree/iss1580-wip-simpler) version of
this branch prepared and now
[rebasing](https://github.com/dmnks/rpm/tree/iss1580-wip-v2) it. I'll push it
here when it's ready.
--
Reply to this email directly or view it on GitHub:
OK, I'll try it out later and if it helps, we can revert it I guess.
--
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2559#issuecomment-1623348746
You are receiving this because you are subscribed to this thread.
Message ID:
#2567 should remove the need for the "prevent __cc leak" patch.
--
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2559#issuecomment-1623337773
You are receiving this because you are subscribed to this thread.
Message ID:
Fair point, I'll move that stuff out.
--
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2559#issuecomment-1623144334
You are receiving this because you are subscribed to this thread.
Message ID:
BTW, track the "nice to have" stuff elsewhere. This is a flagday change for the
test-suite and as such, we want to get it over and done with ASAP and block any
PR's that add tests in the meanwhile. Anything that isn't strictly needed can
wait until the dust is settled.
--
Reply to this email
Rebased onto the latest fixups.
--
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2559#issuecomment-1621561991
You are receiving this because you are subscribed to this thread.
Message ID: ___
@dmnks pushed 7 commits.
60008212558ff183a71dcd2b167329a56e7884fe Temporary fix for F37's
systemd-sysusers
fe76403cfe02059543755d53cf51a4c72317cdbf Contanerize python
db46fbe86ec4388756f05d64e623250e341887e7 Containerize run()
9f695d9353d4c94cb95275a3f432f594b86a8e3f Add --read-only
@dmnks pushed 47 commits.
996e0f679f2501d6251acee59bb6978177c5eafc Don't init plugins in Python tests
fa17a5c010e50af02b9cb8a92ab8a59342722055 Remove TOPDIR use from tests
4dd47a8083aa4d0ab713262ffa6dd974105e3b6f Ensure no rpmdb in no-db test
bd6ec28f5d0de868fea769b2120a827ab26c244b Remove
#2563 should eliminate the need for those sysusers fixups.
--
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2559#issuecomment-1621532101
You are receiving this because you are subscribed to this thread.
Message ID:
#2561 fixes the prefix related failures so you can mark those done.
--
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2559#issuecomment-1621444295
You are receiving this because you are subscribed to this thread.
Message ID:
> Also, are we OK with the replacement of AT_CHECK and AT_CLEANUP with the new
> RPMTEST_CHECK and RPMTEST_CLEANUP across the test suite?
Oh absolutely. My first thought on seeing that was "why didn't we do that from
the start?"
--
Reply to this email directly or view it on GitHub:
Also, are we OK with the replacement of `AT_CHECK` and `AT_CLEANUP` with the
new `RPMTEST_CHECK` and `RPMTEST_CLEANUP` across the test suite?
Currently, that's what I opted for, but it's also possible to just redefine
those original macros. The caveat with the latter is that there *could*
Don't waste your time on this now, %__cc shouldn't be set to that kind of value
to begin with so it's a different bug.
--
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2559#issuecomment-1621316012
You are receiving this because you are
Ohh right :smile: Indeed. Let me think about it then.
--
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2559#issuecomment-1621313814
You are receiving this because you are subscribed to this thread.
Message ID:
The issue is that the macros file is generated on the host at the time `cmake`
is initially run, so all manner of crap can leak through that path.
--
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2559#issuecomment-1621313043
You are
Thanks for investigating. The leakage is strange, though, as `rpmbuild` is run
in the container.
--
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2559#issuecomment-1621311535
You are receiving this because you are subscribed to this
The ccache oddity comes from hello-g3.spec relying on `%__cc` macro, which
cmake `find_program` has figured to be `/usr/lib64/ccache/cc`. That doesn't
make sense and is an unrelated bug (I'll file a ticket) but easy to work around
for now by adding `--define "__cc gcc" \` to the rpmbuild
> It's worth noting that rpm-ostree has been isolating individual scripts (e.g.
> `%post`) with bwrap for a long time now. That's distinct from the test suite
> only usage here, but just FYI.
Interesting, thanks!
--
Reply to this email directly or view it on GitHub:
It's worth noting that rpm-ostree has been isolating individual scripts (e.g.
`%post`) with bwrap for a long time now. That's distinct from the test suite
only usage here, but just FYI.
--
Reply to this email directly or view it on GitHub:
Oh yup, thanks, that's one of those little "bugs" still to be fixed :smile:
--
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2559#issuecomment-1621267348
You are receiving this because you are subscribed to this thread.
Message ID:
Another minor item for the todo-list: add cmake dependencies to get the
container automatically rebuilt when the mktree stuff is updated.
--
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2559#issuecomment-1621257977
You are receiving this
Yup, adding `which` to the dnf install cures 437. But sadly not 439. I'll look
at that next...
--
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2559#issuecomment-1621252909
You are receiving this because you are subscribed to this thread.
Ohh, nice find, thanks :smile: Adding this to the TODO list above.
--
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2559#issuecomment-1621250797
You are receiving this because you are subscribed to this thread.
Message ID:
Heh, apparently the gdb-add-index failure is due to missing `which` command in
the container so its attempt to locate the gdb that *is* there fails :laughing:
--
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2559#issuecomment-1621248166
`make env` can also be useful as it gives you a shell on your host, with the
same container mounted at `$RPMTEST` so you can inspect or modify stuff in it
with your host tooling. Including DNF of course.
--
Reply to this email directly or view it on GitHub:
Both :smile:
--
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2559#issuecomment-1621238021
You are receiving this because you are subscribed to this thread.
Message ID: ___
Rpm-maint mailing
FWIW, `make shell` is a very nice addition :+1: (although I can imagine it got
added because you needed it, not because it was "nice" :smile: )
--
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2559#issuecomment-1621236798
You are
Hmm that's strange, indeed. `ccache` isn't even installed in the OS tree so
it's strange that it's being poked in that test...
--
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2559#issuecomment-1621220046
You are receiving this because
437 and 439 fail even with default prefix. For 437 it's indeed the gdb index
thing, 439 is more mysterious:
> stderr:
make: /usr/lib64/ccache/cc: No such file or directory
make: *** [: hello] Error 127
error: Bad exit status from /usr/local/var/tmp/rpm-tmp.zsvYoW (%build)
rpm2cpio:
Ugh, yup, I did test for different prefixes at the beginning but then just
settled on the default and never got to trying out a different out :smile: So
yup, we either fix the tests or add some kind of check / disclaimer to
tests/README.md.
I bet the remaining test that fails is 437. I'm
At least 5 depends on CMAKE_INSTALL_PREFIX, it'll fail if it's /usr because the
test now finds way more content than the just-built rpm. It's a badly written
test, blame me :smile:
--
Reply to this email directly or view it on GitHub:
Could you please paste the log output of those? (`rpmtests.dir/N/rpmtests.log`)
--
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2559#issuecomment-1621188314
You are receiving this because you are subscribed to this thread.
Message ID:
I'm getting a couple of unexpected test failures (didn't look at details yet)
but basics seem to work fine.
--
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2559#issuecomment-1621182372
You are receiving this because you are subscribed to
@pmatilai BTW, before you try 'make check` again, please run `make tree-clean`
first (or just `rm -rf tests/mktree.output`), there's currently a bug in how
this is handled :smile: To be fixed today.
--
Reply to this email directly or view it on GitHub:
No manual setup will be needed, though. If a native script isn't available for
your platform (currently anything else than Fedora), the usual podman fallback
will kick in (i.e. former `make ci`).
I'm also going to add back `make ci` even if you're running natively so that
one can just see how
Oops, forgot to uncomment the OS setup script in `mktree.native`. Fixed now.
And yup, I'm going to update README as well, it's one of the items on my little
TODO list before claiming this PR ready :smile:
--
Reply to this email directly or view it on GitHub:
@dmnks pushed 1 commit.
e20039effd1a16e7c47f119db1604c60e1f0949b Fixup mktree.native building
--
View it on GitHub:
https://github.com/rpm-software-management/rpm/pull/2559/files/f6922b3ecc5d552dc727ddb4574b20ca82248912..e20039effd1a16e7c47f119db1604c60e1f0949b
You are receiving this because
Hmm, `make check` gives me
```
mount: /home/pmatilai/repos/brpm/tests/mktree.check/merged: special device
sandbox does not exist.
dmesg(1) may have more information after failed mount system call.
mount: /home/pmatilai/repos/brpm/tests/mktree.check/merged: mount point not
mounted or bad
Rebased onto master, now cleaning up and squashing.
You can view, comment on, or merge this pull request online at:
https://github.com/rpm-software-management/rpm/pull/2559
-- Commit Summary --
* Add and use RPMTEST_CHECK* and RPMTEST_CLEANUP
* Dont init plugins in Python tests
* Remove
72 matches
Mail list logo