【问题标题】:Build of RPM Patch Fails构建 RPM 补丁失败
【发布时间】:2014-06-16 15:41:57
【问题描述】:

我正在构建“nfs-utils-lib-1.0.8”的自定义 RPM 补丁以包含最新的“librpcsecgss-0.19”补丁。这是我的步骤:

  1. rpm -ivh nfs-utils-lib-1.0.8-7.9.el5.src.rpm
  2. rpm -bp nfs-utils-lib.spec
  3. cp -r nfs-utils-lib-1.0.8 nfs-utils-lib-1.0.8.orig
  4. 从以下位置将最新的“librpcsecgss-0.19.tar.gz”下载到 SOURCE 目录:
  5. http://www.citi.umich.edu/projects/nfsv4/linux/librpcsecgss
  6. 导航到:BUILD/nfs-utils-lib-1.0.8/librpcsecgss/src/ 并删除“svc_auth_gss.c”
  7. 然后从步骤 4 中下载的 librpcsecgss-0.19.tar.gz 获取最新的“svc_auth_gss.c”。
  8. diff -Naur nfs-utils-lib-1.0.8.orig/nfs-utils-lib-1.0.8 > ../SOURCES/librpcsecgss-0.19-bufoverflow.patch
  9. 我现在在下面处理我的规范文件:
nfs-utils-lib.spec
Summary: Network File System Support Library
Name: nfs-utils-lib
Version: 1.0.9
Release: 8.0%{?dist}
URL: http://www.citi.umich.edu/projects/nfsv4/linux/
License: GPL

%define idmapvers 0.21
%define libnfsidmap libnfsidmap
%define rpcsecgssvers 0.19
%define librpcsecgss librpcsecgss
%define libs %{librpcsecgss} %{libnfsidmap}
Source0: http://www.citi.umich.edu/projects/nfsv4/linux/libnfsidmap/%{libnfsidmap}-%{idmapvers}.tar.gz
Source1: http://www.citi.umich.edu/projects/nfsv4/linux/librpcsecgss/%{librpcsecgss}-%{rpcsecgssvers}.tar.gz

Patch0: librpcsecgss-0.13-compile.patch
Patch1: libnfsidmap-0.21-compile.patch
Patch2: librpcsecgss-0.14-bufoverflow.patch
Patch3: nfs-utils-lib-changelicensetoBSD.patch
Patch4: libnfsidmap-0.21-idmapdconf-man.patch
Patch5: libnfsidmap-0.21-idmapdconf.patch
Patch6: librpcsecgss-0.19-bufoverflow.patch

Group: System Environment/Libraries
BuildRoot: %{_tmppath}/%{name}-%{version}-root
BuildRequires: pkgconfig, gettext, autoconf, automake, libtool
BuildRequires: libgssapi-devel >= 0.10, openldap-devel
Requires(postun): /sbin/ldconfig
Requires(pre): /sbin/ldconfig
Requires: libgssapi >= 0.10, openldap, nfs-utils >= 1.0.9-45

%description
Support libraries that are needed by the commands and
daemons the nfs-utils rpm.

%package devel
Summary: Development files for the nfs-utils-lib library
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
Requires: pkgconfig

%description devel
This package includes header files and libraries necessary for
developing programs which use the nfs-utils-lib library.

%prep
%setup -c -q -a1
mv %{libnfsidmap}-%{idmapvers} %{libnfsidmap}
mv %{librpcsecgss}-%{rpcsecgssvers} %{librpcsecgss}

%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1

%build
top=`pwd`
for dir in %{libs} ; do
        pushd $dir
        [ -f ./autogen.sh ] && sh ./autogen.sh
        autoconf -I "$top"
        popd
done
for dir in %{libs} ; do
        pushd $dir
        %configure --prefix=$RPM_BUILD_ROOT
        popd
done
for dir in %{libs} ; do
        pushd $dir
        make all
        popd
done

%install
rm -rf %{buildroot}
for dir in %{libs} ; do
        pushd $dir
        DESTDIR=%{buildroot} make install
        popd
done

for dir in %{libs} ; do
        mkdir -p $RPM_BUILD_ROOT/%{_usr}/share/doc/$dir
        pushd $dir
        for file in AUTHORS ChangeLog NEWS README ; do
                install -m 755 $file $RPM_BUILD_ROOT%{_usr}/share/doc/$dir
        done
        popd
done
mkdir -p ${RPM_BUILD_ROOT}/etc
rm  ${RPM_BUILD_ROOT}%{_usr}/share/man/man5/idmapd.conf.5

%post -p /sbin/ldconfig

%postun -p /sbin/ldconfig

%clean
rm -rf %{buildroot}


%files
%defattr(-,root,root)

%{_libdir}/librpcsecgss.so.*
%{_libdir}/librpcsecgss.la

%{_libdir}/libnfsidmap*.so.*
%{_libdir}/libnfsidmap*.so

%{_defaultdocdir}/%{librpcsecgss}/AUTHORS
%{_defaultdocdir}/%{librpcsecgss}/ChangeLog
%{_defaultdocdir}/%{librpcsecgss}/NEWS
%{_defaultdocdir}/%{librpcsecgss}/README
%{_libdir}/pkgconfig/librpcsecgss.pc

%{_defaultdocdir}/%{libnfsidmap}/AUTHORS
%{_defaultdocdir}/%{libnfsidmap}/ChangeLog
%{_defaultdocdir}/%{libnfsidmap}/NEWS
%{_defaultdocdir}/%{libnfsidmap}/README
%{_libdir}/pkgconfig/libnfsidmap.pc
%{_mandir}/man3/nfs4_uid_to_name.3.gz

%files devel
%defattr(0644,root,root,755)
%{_libdir}/librpcsecgss.a
%{_libdir}/librpcsecgss.so
%{_includedir}/rpcsecgss/rpc/auth.h
%{_includedir}/rpcsecgss/rpc/auth_gss.h
%{_includedir}/rpcsecgss/rpc/svc.h
%{_includedir}/rpcsecgss/rpc/svc_auth.h
%{_includedir}/rpcsecgss/rpc/rpc.h
%{_includedir}/rpcsecgss/rpc/rpcsecgss_rename.h
%{_includedir}/nfsidmap.h
%{_libdir}/libnfsidmap*.a
%{_libdir}/libnfsidmap*.la

%changelog
* Mon Jan 16 2012 Steve Dickson <steved@redhat.com> 1.0.8-7.9
- Remove installation of man page and idmapd.conf (bz 782153)

* Wed Mar 10 2010 Steve Dickson <steved@redhat.com> 1.0.8-7.8
- Added the installation of the updated idmapd.conf file
  its man page (bz 502707)

* Wed Feb 10 2010 Steve Dickson <steved@redhat.com> 1.0.8-7.7
- Updated libnfsidmap to 0.21 (bz 502707)

* Tue Mar 3 2009 Jeff Layton <jlayton@redhat.com> 1.0.8-7.6
- libnfsidmap patch to handle ERANGE error on getgrnam_r (bz 453804)

* Wed Sep 26 2007 Steve Dickson <steved@redhat.com> 1.0.8-7.5
- Updated libnfsidmap to -17 to fix a security issue (bz 254042)

* Tue Sep 25 2007 Steve Dickson <steved@redhat.com> 1.0.8-7.4
-  Fixed RPC library buffer overflow (bz 265061)

* Fri Dec  1 2006 Steve Dickson <steved@redhat.com> 1.0.8-7.3
- Fixed typo in the package description (bz 218111)

* Wed Aug 30 2006 Steve Dickson <steved@redhat.com> 1.0.8-7.2
- added automake to BuildRequires:

* Wed Aug 30 2006 Steve Dickson <steved@redhat.com> 1.0.8-7.1
- rebuild

* Wed Aug  2 2006 Steve Dickson <steved@redhat.com> 1.0.8-7
- Updated librpcsecgss to -0.14

* Wed Jul 26 2006 Steve Dickson <steved@redhat.com> 1.0.8-6
- Added GSSLIBS to the linking of librpcsecgss (bz 198238)

* Wed Jul 12 2006 Jesse Keating <jkeating@redhat.com> - 1.0.8-5.1
- rebuild

* Tue Jun 20 2006 Steve Dickson <steved@redhat.com> 1.0.8-3.1
- Updated libnfsidmap and  librpcsecgss to latest upstream version

* Fri Feb 10 2006 Jesse Keating <jkeating@redhat.com> - 1.0.8-3.1
- bump again for double-long bug on ppc(64)

* Thu Feb 09 2006 Florian La Roche <laroche@redhat.com> 1.0.8-3
- remove empty scripts

* Tue Feb 07 2006 Jesse Keating <jkeating@redhat.com> - 1.0.8-2.1
- rebuilt for new gcc4.1 snapshot and glibc changes

* Thu Jan 19 2006 Steve Dickson <steved@redhat.com> 1.0.8-2
- Added debugging routines to libnfsidmap

* Fri Jan  6 2006 Steve Dickson <steved@redhat.com> 1.0.8-1
- Initial commit

我的最后一步是构建 RPM rpmbuild -ba nfs-utils-lib.spec

但它总是失败并显示以下消息,任何想法我做错了什么?

**

**Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.98968
+ umask 022
+ cd /home/rpmbuild/rpmbuild/BUILD
+ LANG=C
+ export LANG
+ unset DISPLAY
+ cd /home/rpmbuild/rpmbuild/BUILD
+ rm -rf nfs-utils-lib-1.0.9
+ /bin/mkdir -p nfs-utils-lib-1.0.9
+ cd nfs-utils-lib-1.0.9
+ /bin/gzip -dc /home/rpmbuild/rpmbuild/SOURCES/libnfsidmap-0.21.tar.gz
+ tar -xf -
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ /bin/gzip -dc /home/rpmbuild/rpmbuild/SOURCES/librpcsecgss-0.19.tar.gz
+ tar -xf -
+ STATUS=0
+ '[' 0 -ne 0 ']'
++ /usr/bin/id -u
+ '[' 525 = 0 ']'
++ /usr/bin/id -u
+ '[' 525 = 0 ']'
+ /bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ mv libnfsidmap-0.21 libnfsidmap
+ mv librpcsecgss-0.19 librpcsecgss
+ echo 'Patch #0 (librpcsecgss-0.13-compile.patch):'
Patch #0 (librpcsecgss-0.13-compile.patch):
+ patch -p1 -s
1 out of 1 hunk FAILED -- saving rejects to file librpcsecgss/src/Makefile.am.rej
error: Bad exit status from /var/tmp/rpm-tmp.98968 (%prep)**

**

【问题讨论】:

    标签: rpmbuild rpm-spec


    【解决方案1】:

    您正在尝试将Makefile.am 中的librpcsecgss-0.13 补丁应用到版本0.19。而且它失败了。

    【讨论】:

    • 谢谢Aaron,我对这个有点困惑,你知道应用这个补丁的正确步骤吗?
    • 首先找出补丁的用途。它可能是一个已经在上游应用的错误修复(例如在 0.14 中),现在已经过时,所以只需从 spec 文件中删除它。
    • 这是为了解决 PCI Scan 在 CentOS 5.10 上的以下漏洞。将 librpcsecgss 升级到 0.15。预计时间:2 小时 从以下位置下载并应用升级:citi.umich.edu/projects/nfsv4/linux/librpcsecgss 这将解决以下问题的 2 个实例:Kerberos“svcauth_gss_validate()”缓冲区溢出漏洞 (kerberos-svc-authgss-buffer-overflow)。需要用最新的librpcsecgss更新的RPM包是:nfs-utils-lib-1.0.8-7.9.el5
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-07
    • 2015-12-23
    • 2014-11-03
    • 2011-07-26
    • 2011-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多