软件信息:
1) kernel-4.19.90
2) kernel-4.19.90
3) kernel.spec
【问题复现步骤】
必现。
前提:
kernel.spec中的with_patch为1,并且至少有一个补丁
步骤:
1.使用rpmbuild -bp编译kernel.编译成功
2.再使用rpmbuild -bp 编译kernel.编译失败,会报补丁打不上的错误
【预期结果】
正常编译
【实际结果】
编译报错
【附件信息】
kernel.spec的prep阶段有下面代码:
%if 0%{?with_patch}
if [ ! -d kernel-%{version}/vanilla-%{TarballVer} ];then
%setup -q -n kernel-%{version} -a 9998 -c
mv linux-%{TarballVer} vanilla-%{TarballVer}
else
//s1
cd kernel-%{version}
fi
cp -rl vanilla-%{TarballVer} linux-%{KernelVer}
%else
%setup -q -n kernel-%{version} -c
mv kernel linux-%{version}
cp -rl linux-%{version} linux-%{KernelVer}
%endif
第二次编译的时候,kernel-%{version}/vanilla-%{TarballVer} 已存在,会走到s1那个地方,但是这里并没有调用%setup宏或者删除rpmbuild/BUILD下相应的编译目录,导致下面打patch时会报错。
一般在prep阶段都会先删除rpmbuidl/BUILD下面的目录,以便于下面打patch, 不知道openeuler的kernel.spec为什么会这么设计?
Hey gou-hao-2021, Welcome to openEuler Community.
All of the projects in openEuler Community are maintained by @openeuler-ci-bot.
That means the developers can comment below every pull request or issue to trigger Bot Commands.
Please follow instructions at https://gitee.com/openeuler/community/blob/master/en/sig-infrastructure/command.md to find the details.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
可以这样修改
diff --git a/kernel.spec b/kernel.spec
index e00a323..11c76aa 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -205,20 +205,14 @@ package or when debugging this package.\
%endif
%prep
-%if 0%{?with_patch}
-if [ ! -d kernel-%{version}/vanilla-%{TarballVer} ];then
-%setup -q -n kernel-%{version} -a 9998 -c
- mv linux-%{TarballVer} vanilla-%{TarballVer}
-else
- cd kernel-%{version}
-fi
-cp -rl vanilla-%{TarballVer} linux-%{KernelVer}
-%else
+
%setup -q -n kernel-%{version} -c
-mv kernel linux-%{version}
-cp -rl linux-%{version} linux-%{KernelVer}
+
+%if 0%{?with_patch}
+tar -xjf %{SOURCE9998}
%endif
+mv linux-%{version} linux-%{KernelVer}
cd linux-%{KernelVer}
%if 0%{?with_patch}
--
您好,之前的 kernel.spec 没有适配过 with_patch 的情况。我这边复测还发现了其他问题。
把 patch 打包到 patches.tar.bz2 中, 然后放到 SOURCE 目录下
tar -jcvf patches.tar.bz2 *.patch
运行报错
rpmbuild -ba SPECS/kernel.spec
warning: line 113: It's not recommended to have unversioned Obsoletes: Obsoletes: kernel-headers
warning: line 126: It's not recommended to have unversioned Obsoletes: Obsoletes: kernel-tools-libs
warning: line 141: It's not recommended to have unversioned Obsoletes: Obsoletes: kernel-tools-libs-devel
warning: line 155: It's not recommended to have unversioned Obsoletes: Obsoletes: python-perf
error: Bad source: /root/rpmbuild/SOURCES/linux-4.19.90.tar.gz: No such file or directory
[root@localhost rpmbuild]# rpmbuild -ba SPECS/kernel.spec
warning: line 113: It's not recommended to have unversioned Obsoletes: Obsoletes: kernel-headers
warning: line 126: It's not recommended to have unversioned Obsoletes: Obsoletes: kernel-tools-libs
warning: line 141: It's not recommended to have unversioned Obsoletes: Obsoletes: kernel-tools-libs-devel
warning: line 155: It's not recommended to have unversioned Obsoletes: Obsoletes: python-perf
error: Bad source: /root/rpmbuild/SOURCES/linux-4.19.90.tar.gz: No such file or directory
发现是因为内核包名的命名:
URL: http://www.kernel.org/
%if 0%{?with_patch}
Source0: linux-%{TarballVer}.tar.gz
%else
Source0: linux-%{version}.tar.gz#/kernel.tar.gz
%endif
From 5a7841b518dd1f62a872fb1c9b2fd1760f8d44e7 Mon Sep 17 00:00:00 2001
From: ABC <abc@abc.com>
Date: Fri, 8 Dec 2028 03:57:47 +0800
Subject: [PATCH] spec: debug with patch
---
kernel.spec | 16 +++-------------
patches.tar.bz2 | Bin 0 -> 1059 bytes
series.conf | 1 +
3 files changed, 4 insertions(+), 13 deletions(-)
create mode 100644 patches.tar.bz2
create mode 100644 series.conf
diff --git a/kernel.spec b/kernel.spec
index 472ca77..35432de 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -14,7 +14,7 @@
%global hulkrelease 2106.3.0
-%define with_patch 0
+%define with_patch 1
%define debuginfodir /usr/lib/debug
@@ -36,11 +36,7 @@ Release: %{hulkrelease}.0095
Summary: Linux Kernel
License: GPLv2
URL: http://www.kernel.org/
-%if 0%{?with_patch}
-Source0: linux-%{TarballVer}.tar.gz
-%else
Source0: linux-%{version}.tar.gz#/kernel.tar.gz
-%endif
Source10: sign-modules
Source11: x509.genkey
Source12: extra_certificates
@@ -222,19 +218,13 @@ package or when debugging this package.\
%prep
%if 0%{?with_patch}
-if [ ! -d kernel-%{version}/vanilla-%{TarballVer} ];then
%setup -q -n kernel-%{version} -a 9998 -c
- mv linux-%{TarballVer} vanilla-%{TarballVer}
-else
- cd kernel-%{version}
-fi
-cp -rl vanilla-%{TarballVer} linux-%{KernelVer}
%else
%setup -q -n kernel-%{version} -c
-mv kernel linux-%{version}
-cp -rl linux-%{version} linux-%{KernelVer}
%endif
+mv kernel linux-%{version}
+cp -rl linux-%{version} linux-%{KernelVer}
cd linux-%{KernelVer}
%if 0%{?with_patch}
diff --git a/patches.tar.bz2 b/patches.tar.bz2
new file mode 100644
index 0000000000000000000000000000000000000000..5881eda00dc73bdbe001932be19eafeb0070e04a
GIT binary patch
literal 1059
zcmV+;1l;>VT4*^jL0KkKSysf!h5!Qle}u@e0AN^u|NVdaeQN*z|NZ~~fCx|nzV7Z<
zJGwg=v7nShnAG%56HiKbX-`ws{F*}{4@QZm5CD3HgVRtoQxh?%sLFW>wJ|UN6A);~
zX@CF#Aka++O${1>>S!7oXaE2J0001U38N!JLm`A{WHiyB0}+!T7(g%yM41|BCRFwy
z5_)9RHm9NkPf*Aj0iZo5jGu#_vdeL}Y6y^!L_oDu21~L_KsO}!l$0-u03ak1Oq|w&
z6P$%!zHP><<1g$Pbs1Q~g=TJ3#Hke4OZ8BLnYI`3QBWI)t<7u#b@D>N@N;l?Fs2hB
z{cu$aCfcZO8pMB&UkT#9vuEs*>xeFGCV;aW3(FJ(5_0`JZP$-wj4Fe;N;nj_t=DoA
z67H6sn9@3@Ag0l&H6gq{IyAFD`pgCbsL2Ut8e_VB{kZXqtEgty@eUaARFR0tgFg+t
z=Lc6aC2*jl*o;(DiHv%AD!qnLOfj{sU@Z;B#iL)3SMz{JiJMW#GfEKY7V;M3@E}~O
zpm?>g4qw(`HCpA2C2)RI(MF{AtGGR-!*i@mx?v)s2*)sCjMbQm>uea2=USc%v|Pv$
zmDb-J@+eZ#!KoBj3G)2Q;Z87wkbO4n%uAfcVc_t1nIM&7ostj%(naL_##Jadb*POp
z8bT7HQInAOH+iLNz_y2$S5^NsMlHprs>~#UY7Z#WQc<r@*yuj|#*f_7F7L3;#rK^N
z^a>Oo!I7z;>c-NuaU4Ng2i#%(6%+L^G->ZDzJoOSs`cE<n!|*KCYFX|kcZE~$?&po
z66ton60~aMT^xDcpi%e}zJBNs%k7{?BPJ*2zkU?-5%zeyP+yDCB~hq%bWzjUuOC&J
zim(yUYE~WbJWM&35ikgal3Y;*5Esl)YD$PyIT#>`1{27Zj9Qdl5j`Q+DNw9eA#}Fb
z?7tX;X2SAt>71tv<Po)Rq+sIHdvQ@?xZz@6jN`P5oL|z!#6fBl&Dv8?#MZ?UcCiE4
z%;dSkSA;UGLd>&+kXZ1sBS<l{XhQ=O3jA$KxcfxSwt`VNKf<~SXS~DbNtT4DsWJbY
za)O)u{Oy?x_eyQeA-f(3U7`hfTpQ+S=y7!ltUOFGswE_d)Ka%0B0_Xw5U3oWkOey-
zP)tz~dyI{OI7BR@!w|n3ptVRmCy5M-N+gfvQK3e{nnS!e*XiQXGT*;Qz5j2!5C#I|
z6n+<##Ez@cAmXtz9LHG^2vmqkX%c84Qrt{%)(VM5<;^H%%Azn=C_t4-proM@2+X5q
zlt~9&d<a1tgV6`nKNYk{EvrP&Dj}r@nv6tx?uBpcDXj|-n29V#sw#>kh6!56C=J4-
dUKb_ds)cRR@q;Bo+@J^iUC9*TLP1*-CK!sJ>}LP~
literal 0
HcmV?d00001
diff --git a/series.conf b/series.conf
new file mode 100644
index 0000000..0c99b22
--- /dev/null
+++ b/series.conf
@@ -0,0 +1 @@
+patches/0001-bpf-move-new-add-member-to-the-end-of-the-struct-bpf.patch
--
2.27.0
hi, 成坚,我把咱两的修改做了下整合,在我修改的基准上,把你修改Source0为kernel.tar.gz这个加了进去,你看一下。
From ee414a4577c36539064e50be75cc38657932dddc Mon Sep 17 00:00:00 2001
From: gouhao <gouhao@uniontech.com>
Date: Tue, 20 Jul 2021 09:45:38 +0800
Subject: [PATCH] update kerner.spec
---
kernel.spec | 23 +++++++----------------
1 file changed, 7 insertions(+), 16 deletions(-)
diff --git a/kernel.spec b/kernel.spec
index e00a323..c11a4b6 100644
--- a/kernel.spec
+++ b/kernel.spec
@@ -28,11 +28,8 @@ Release: %{hulkrelease}.0036
Summary: Linux Kernel
License: GPLv2
URL: http://www.kernel.org/
-%if 0%{?with_patch}
-Source0: linux-%{TarballVer}.tar.gz
-%else
-Source0: linux-%{version}.tar.gz#/kernel.tar.gz
-%endif
+
+Source0: kernel.tar.gz
Source10: sign-modules
Source11: x509.genkey
Source12: extra_certificates
@@ -205,20 +202,14 @@ package or when debugging this package.\
%endif
%prep
-%if 0%{?with_patch}
-if [ ! -d kernel-%{version}/vanilla-%{TarballVer} ];then
-%setup -q -n kernel-%{version} -a 9998 -c
- mv linux-%{TarballVer} vanilla-%{TarballVer}
-else
- cd kernel-%{version}
-fi
-cp -rl vanilla-%{TarballVer} linux-%{KernelVer}
-%else
+
%setup -q -n kernel-%{version} -c
-mv kernel linux-%{version}
-cp -rl linux-%{version} linux-%{KernelVer}
+
+%if 0%{?with_patch}
+tar -xjf %{SOURCE9998}
%endif
+mv kernel linux-%{KernelVer}
cd linux-%{KernelVer}
%if 0%{?with_patch}
--
2.20.1
登录 后才可以发表评论