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

%autopatch -m/-M fall through silently if no patches are in range #3093

Open
pmatilai opened this issue May 13, 2024 · 0 comments
Open

%autopatch -m/-M fall through silently if no patches are in range #3093

pmatilai opened this issue May 13, 2024 · 0 comments
Labels

Comments

@pmatilai
Copy link
Member

hello-autopatch.spec in our testsuite has this:

%patchlist
hello-1.0-modernize.patch
hello-1.0-install.patch

%prep
%autosetup -N
%autopatch 1
%autopatch -m 2

Spot the error? Automatic patch numbers start from zero, so we're telling it to apply hello-1.0-install.patch and then any higher numbered patches, so the modernize patch is never applied.
There are legitimate reasons to conditionally skip patches, but having a ranged patch that doesn't actually do anything should at least emit a warning.

How did we find out? Fedora 40 introduced stricter, more modern C compilation settings (https://fedoraproject.org/wiki/Changes/PortingToModernC ) and suddenly we had a test-case go red because it wasn't applying a patch it's supposed to, to address this very issue.

@pmatilai pmatilai added the bug label May 13, 2024
pmatilai added a commit to pmatilai/rpm that referenced this issue May 13, 2024
Multiple tests are failing on Fedora 40 due to their distro-wide
C modernization effort, which cause our ancient "hello world" package
to fail due to implicit printf() function usage.

There are two separate issues here:
- hello-autopatch.spec had off-by-one in its patch application, causing
  the modernization patch to not apply (see rpm-software-management#3093 for the reason)
- others were using the original hello-1.0-1.src.rpm from 2007 with
  some very outdated practises, code and md5 hashes

Update the src.rpm, removing silly fubar while we're at it. Regenerated
now on x86_64 so adjust the test-expectation, and update the python archive
test to calculate sha256 instead. And, fix the autopatch test numbers.
dmnks pushed a commit that referenced this issue May 13, 2024
Multiple tests are failing on Fedora 40 due to their distro-wide
C modernization effort, which cause our ancient "hello world" package
to fail due to implicit printf() function usage.

There are two separate issues here:
- hello-autopatch.spec had off-by-one in its patch application, causing
  the modernization patch to not apply (see #3093 for the reason)
- others were using the original hello-1.0-1.src.rpm from 2007 with
  some very outdated practises, code and md5 hashes

Update the src.rpm, removing silly fubar while we're at it. Regenerated
now on x86_64 so adjust the test-expectation, and update the python archive
test to calculate sha256 instead. And, fix the autopatch test numbers.
dmnks pushed a commit to dmnks/rpm that referenced this issue May 17, 2024
Multiple tests are failing on Fedora 40 due to their distro-wide
C modernization effort, which cause our ancient "hello world" package
to fail due to implicit printf() function usage.

There are two separate issues here:
- hello-autopatch.spec had off-by-one in its patch application, causing
  the modernization patch to not apply (see rpm-software-management#3093 for the reason)
- others were using the original hello-1.0-1.src.rpm from 2007 with
  some very outdated practises, code and md5 hashes

Update the src.rpm, removing silly fubar while we're at it. Regenerated
now on x86_64 so adjust the test-expectation, and update the python archive
test to calculate sha256 instead. And, fix the autopatch test numbers.

(cherry picked from commit ed1f2da)
dmnks pushed a commit that referenced this issue May 17, 2024
Multiple tests are failing on Fedora 40 due to their distro-wide
C modernization effort, which cause our ancient "hello world" package
to fail due to implicit printf() function usage.

There are two separate issues here:
- hello-autopatch.spec had off-by-one in its patch application, causing
  the modernization patch to not apply (see #3093 for the reason)
- others were using the original hello-1.0-1.src.rpm from 2007 with
  some very outdated practises, code and md5 hashes

Update the src.rpm, removing silly fubar while we're at it. Regenerated
now on x86_64 so adjust the test-expectation, and update the python archive
test to calculate sha256 instead. And, fix the autopatch test numbers.

(cherry picked from commit ed1f2da)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: Todo
Development

No branches or pull requests

1 participant