我有一個非常簡單的安排 - 一個源碼包,一個補丁:爲什麼%autosetup在提取源之前執行修補?
Source: http://...../foo-%{version}.tar.gz
Patch: my-patch-for-foo.diff
...
%prep
%autosetup -v -n bar-%{version}
然而,當我試圖在%prep
步驟使用%autosetup
,rpmbuild
嘗試修補第一 - 提取之前:
/bin/cat ..../SOURCES/my-patch-for-foo.diff |
/usr/bin/patch
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.8PV0PY
+ umask 022
+ cd /....
+ LANG=C
+ export LANG
+ unset DISPLAY
+ cd /....
+ rm -rf bar-0.12.18
+ /bin/tar -xvvf -
+ /usr/bin/gzip -dc ..../SOURCES/foo-0.12.18.tgz
出於某種原因,沒有通過patch
報告的錯誤 - 但所提取的代碼最終未修補和我生成後失敗。
使用普通的%setup
,然後%patch0
工作正常,但%autosetup
有什麼問題?
我在CentOS-6.8上,如果它很重要的話,RPM的版本是4.8.0。謝謝!
更新,將%autosetup
拆分爲%setup
和%autopatch
也不起作用 - %autopatch
不起作用。因爲我的補丁都在默認的格式,我將使用%autopatch
我重新實現:
%prep
%setup -n bar-%{version}
%{lua:
for i, p in ipairs(patches) do
print("%patch"..i)
end
}
是否我真的發現了一個錯誤,還是我做一些荒唐了?
[此Fedora頁面](https://fedoraproject.org/wiki/Autosetup_packaging_draft)說它是在4.11中添加的 - 我想知道4.8是否有bug /初步版本。我從來沒有用過它,對不起。 –