给linux中的lksctp RPM打补丁

问题描述 投票:0回答:1

我使用的是自家定制的 Linux,是 Oracle Linux 6 的衍生版本,但我需要从 lksctp-tools-1.0.17-2.el7.src.rpm 中获取所有补丁,并在我的 lksctp-tools-1.0.11-1 rpm 包中打补丁。

我发现在1.0.17-2.el7版本中有两个新的补丁,我把上面的补丁复制到了lksctp-tools-1.0.11-1 rpm包里。

lksctp-tools-1.0.17-sctp_status-fix-hostname-resolution.patch
lksctp-tools-1.0.6-libdir.patch

我把上面的补丁复制到我构建环境的补丁目录下,在构建新的RPM的过程中,我发现最后一个补丁的hunk失败了,我已经在我的lksctp-tools-1.0.11-1 rpm包中提到了这些补丁。

Patch #5 (lksctp-tools-1.0.17-sctp_status-fix-hostname-resolution.patch):
+ /bin/cat /workdirs/BuildUser/build/RPM/SOURCES/lksctp-tools-1.0.17-sctp_status-fix-hostname-resolution.patch
+ /usr/bin/patch -p1 --fuzz=0
patching file src/apps/sctp_status.c
+ echo 'Patch #6 (lksctp-tools-1.0.6-libdir.patch):'
Patch #6 (lksctp-tools-1.0.6-libdir.patch):
+ /bin/cat /workdirs/BuildUser/build/RPM/SOURCES/lksctp-tools-1.0.6-libdir.patch
+ /usr/bin/patch -p1 --fuzz=0
patching file src/withsctp/withsctp.in
Hunk #1 FAILED at 1.
1 out of 1 hunk FAILED -- saving rejects to file src/withsctp/withsctp.in.rej
error: Bad exit status from /workdirs/BuildUser/tmp/rpm-tmp.nJHnek (%prep)

我已经在我的规格文件中提到了这些补丁。

Name: lksctp-tools
Version: %{pack_version}
Release: ~RELEASE~
License: LGPL
Group: System Environment/Libraries
URL: http://lksctp.sourceforge.net
Source0: %{name}-%{file_version}.tar.gz
Patch0: lksctp-tools-linux-3.4.38-sctp.patch
Patch1: lksctp-tools-sctp-per-association-stats.patch
Patch2: lksctp-tools-fix-deprecated-SO_RCVBUF-SO_SNDBUF-testcase.patch
Patch3: lksctp-tools-Avoid-using-file-descriptor-0-to-get-ENOTSOCK.patch
Patch4: lksctp-tools-test_fragments-increase-message-size-since-it-succeeds.patch
Patch5: lksctp-tools-1.0.17-sctp_status-fix-hostname-resolution.patch
Patch6: lksctp-tools-1.0.6-libdir.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
BuildRequires: gcc
BuildRequires: libtool, automake, autoconf
%prep
%setup -q -n %{name}-%{file_version}
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
kernel patch rpm rpmbuild sctp
1个回答
0
投票

补丁失败的原因是源代码不匹配。在使用 rpm,确保你可以自己手动应用补丁。按规格文件中给出的顺序. 另一个可能的问题--新的源RPM是否用这些新的补丁替换了一个旧的补丁?

© www.soinside.com 2019 - 2024. All rights reserved.