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

Fix --noprep regression from introducing %mkbuilddir #3122

Merged
merged 2 commits into from
May 23, 2024

Conversation

pmatilai
Copy link
Member

Commit 9d35c8d added a new step into the build process but I literally wasn't even aware we have a --noprep switch in rpmbuild, much less that it's used. Quite widely even, by mock.

Luckily this seems simple to fix, just skip %mkbuilddir in --noprep. Extend the dynamic buildrequires test to mimick what mock does.

Fixes: #3121

pmatilai added a commit to pmatilai/rpm that referenced this pull request May 23, 2024
Instead of skipping everything in %setup, take advantage of it:
we shouldn't unpack any sources but otherwise we can just let it
fall through it, defining buildsubdir and everything, if we let
rpm do its normal %mkbuilddir thing and just symlink to the in-place
tree from rpm's %builddir. This way it's not such an ugly duckling
interfering with how normal rpms are built, and even honors %setup
flags to a degree.

This fixes two regressions: one introduced when adding %mkbuilddir that
nukes your current directory with no questions asked if --build-in-place
is used before it even starts, and an earlier one from commit
b34333f that would nuke your precious
in-place directory afterwards.

Fixes: rpm-software-management#3122
pmatilai added a commit to pmatilai/rpm that referenced this pull request May 23, 2024
Instead of skipping everything in %setup, take advantage of it:
we shouldn't unpack any sources but otherwise we can just let it
fall through it, defining buildsubdir and everything, if we let
rpm do its normal %mkbuilddir thing and just symlink to the in-place
tree from rpm's %builddir. This way it's not such an ugly duckling
interfering with how normal rpms are built, and even honors %setup
flags to a degree.

This fixes two regressions: one introduced when adding %mkbuilddir that
nukes your current directory with no questions asked if --build-in-place
is used before it even starts, and an earlier one from commit
b34333f that would nuke your precious
in-place directory afterwards. And as a side-effect, also fixes
debuginfo generation.

Fixes: rpm-software-management#3122
Fixes: rpm-software-management#3042
pmatilai added a commit to pmatilai/rpm that referenced this pull request May 23, 2024
Instead of skipping everything in %setup, take advantage of it:
we shouldn't unpack any sources but otherwise we can just let it
fall through it, defining buildsubdir and everything, if we let
rpm do its normal %mkbuilddir thing and just symlink to the in-place
tree from rpm's %builddir. This way it's not such an ugly duckling
interfering with how normal rpms are built, and even honors %setup
flags to a degree.

This fixes two regressions: one introduced when adding %mkbuilddir that
nukes your current directory with no questions asked if --build-in-place
is used before it even starts, and an earlier one from commit
b34333f that would nuke your precious
in-place directory afterwards. And as a side-effect of all this, debuginfo
generation also now works with --build-in-place.

Fixes: rpm-software-management#3122
Fixes: rpm-software-management#3042
Commit 9d35c8d added a new step
into the build process but I literally wasn't even aware we have a
--noprep switch in rpmbuild, much less that it's used. Quite widely
even, by mock.

Luckily this seems simple to fix, just skip %mkbuilddir in --noprep.
Extend the dynamic buildrequires test to mimick what mock does.

Fixes: rpm-software-management#3121
Commit a68a2e5 added the same test
twice, hardly intentionally.
@pmatilai pmatilai merged commit 31758e5 into rpm-software-management:master May 23, 2024
1 check passed
@pmatilai pmatilai deleted the noprep branch May 23, 2024 10:06
dmnks pushed a commit that referenced this pull request May 23, 2024
Instead of skipping everything in %setup, take advantage of it:
we shouldn't unpack any sources but otherwise we can just let it
fall through it, defining buildsubdir and everything, if we let
rpm do its normal %mkbuilddir thing and just symlink to the in-place
tree from rpm's %builddir. This way it's not such an ugly duckling
interfering with how normal rpms are built, and even honors %setup
flags to a degree.

This fixes two regressions: one introduced when adding %mkbuilddir that
nukes your current directory with no questions asked if --build-in-place
is used before it even starts, and an earlier one from commit
b34333f that would nuke your precious
in-place directory afterwards. And as a side-effect of all this, debuginfo
generation also now works with --build-in-place.

Fixes: #3122
Fixes: #3042
pmatilai added a commit to pmatilai/rpm that referenced this pull request Jun 24, 2024
Instead of skipping everything in %setup, take advantage of it:
we shouldn't unpack any sources but otherwise we can just let it
fall through it, defining buildsubdir and everything, if we let
rpm do its normal %mkbuilddir thing and just symlink to the in-place
tree from rpm's %builddir. This way it's not such an ugly duckling
interfering with how normal rpms are built, and even honors %setup
flags to a degree.

This fixes two regressions: one introduced when adding %mkbuilddir that
nukes your current directory with no questions asked if --build-in-place
is used before it even starts, and an earlier one from commit
b34333f that would nuke your precious
in-place directory afterwards. And as a side-effect of all this, debuginfo
generation also now works with --build-in-place.

Fixes: rpm-software-management#3122
Fixes: rpm-software-management#3042
(cherry picked from commit d107510)
pmatilai added a commit that referenced this pull request Jun 24, 2024
Instead of skipping everything in %setup, take advantage of it:
we shouldn't unpack any sources but otherwise we can just let it
fall through it, defining buildsubdir and everything, if we let
rpm do its normal %mkbuilddir thing and just symlink to the in-place
tree from rpm's %builddir. This way it's not such an ugly duckling
interfering with how normal rpms are built, and even honors %setup
flags to a degree.

This fixes two regressions: one introduced when adding %mkbuilddir that
nukes your current directory with no questions asked if --build-in-place
is used before it even starts, and an earlier one from commit
b34333f that would nuke your precious
in-place directory afterwards. And as a side-effect of all this, debuginfo
generation also now works with --build-in-place.

Fixes: #3122
Fixes: #3042
(cherry picked from commit d107510)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

%mkbuilddir breaks the %generate_buildrequires implementation in mock
1 participant