linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Re: "make rpm" failed with parameter "--scm-only"
       [not found] <A24AE1FFE7AEC5489F83450EE98351BF1BD77643B1@shsmsx502.ccr.corp.intel.com>
@ 2010-07-15  8:42 ` Michal Marek
  2010-07-20 13:28   ` Michal Marek
  0 siblings, 1 reply; 4+ messages in thread
From: Michal Marek @ 2010-07-15  8:42 UTC (permalink / raw)
  To: Zheng, Jiajia; +Cc: Guy, Wey-Yi W, linux-kernel, linux-kbuild

On Thu, Jul 15, 2010 at 11:23:19AM +0800, Zheng, Jiajia wrote:
> Hi Marek,
> 
> This is jiajia, Intel Wireless QA. 
> When I was compiling iwlwifi-2.6, "make rpm" failed. 
> 
> # make rpm
> make clean
> set -e; cd ..; ln -sf /usr/src/iwlwifi-2.6 kernel-2.6.35rc4wl
> /bin/sh /usr/src/iwlwifi-2.6/scripts/setlocalversion --scm-only > /usr/src/iwlwifi-2.6/.scmversion
> cat: .scmversion: input file is output file
> make[1]: *** [rpm] Error 1
> make: *** [rpm] Error 2
> 
> If the "--scm-only" parameter is removed from iwlwifi-2.6/scripts/package/Makefile, "make rpm" works. 
> 
> I noticed that it was introduced by commit#09155120cf0ffe6f0c8aba3aa625831405b65996.

Ah crap :-/. The following patch should fix it. BTW, if you remove the
--scm-only option and use the LOCALVERSION mechanism, then the resulting
kernel release string will have the localversion twice.

>From 1df62f9175665a0573fe9708cb8604584a9b7bd5 Mon Sep 17 00:00:00 2001
From: Michal Marek <mmarek@suse.cz>
Date: Thu, 15 Jul 2010 10:36:37 +0200
Subject: [PATCH] kbuild: Fix make rpm

make rpm was broken by commit 0915512:
make clean
set -e; cd ..; ln -sf /usr/src/iwlwifi-2.6 kernel-2.6.35rc4wl
/bin/sh /usr/src/iwlwifi-2.6/scripts/setlocalversion --scm-only >
/usr/src/iwlwifi-2.6/.scmversion
cat: .scmversion: input file is output file
make[1]: *** [rpm] Error 1

Reported-by: "Zheng, Jiajia" <jiajia.zheng@intel.com>
Signed-off-by: Michal Marek <mmarek@suse.cz>

diff --git a/scripts/package/Makefile b/scripts/package/Makefile
index 3a681ef..d2c29b6 100644
--- a/scripts/package/Makefile
+++ b/scripts/package/Makefile
@@ -44,7 +44,7 @@ rpm-pkg rpm: $(objtree)/kernel.spec FORCE
 	fi
 	$(MAKE) clean
 	$(PREV) ln -sf $(srctree) $(KERNELPATH)
-	$(CONFIG_SHELL) $(srctree)/scripts/setlocalversion --scm-only > $(objtree)/.scmversion
+	$(CONFIG_SHELL) $(srctree)/scripts/setlocalversion --save-scmversion
 	$(PREV) tar -cz $(RCS_TAR_IGNORE) -f $(KERNELPATH).tar.gz $(KERNELPATH)/.
 	$(PREV) rm $(KERNELPATH)
 	rm -f $(objtree)/.scmversion
diff --git a/scripts/setlocalversion b/scripts/setlocalversion
index d6a866e..951b067 100755
--- a/scripts/setlocalversion
+++ b/scripts/setlocalversion
@@ -10,13 +10,13 @@
 #
 
 usage() {
-	echo "Usage: $0 [--scm-only] [srctree]" >&2
+	echo "Usage: $0 [--save-scmversion] [srctree]" >&2
 	exit 1
 }
 
 scm_only=false
 srctree=.
-if test "$1" = "--scm-only"; then
+if test "$1" = "--save-scmversion"; then
 	scm_only=true
 	shift
 fi
@@ -131,7 +131,10 @@ collect_files()
 }
 
 if $scm_only; then
-	scm_version
+	if test ! -e .scmversion; then
+		res=$(scm_version)
+		echo "$res" >.scmversion
+	fi
 	exit
 fi
 

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: "make rpm" failed with parameter "--scm-only"
  2010-07-15  8:42 ` "make rpm" failed with parameter "--scm-only" Michal Marek
@ 2010-07-20 13:28   ` Michal Marek
  2010-07-21  1:30     ` Zheng, Jiajia
  0 siblings, 1 reply; 4+ messages in thread
From: Michal Marek @ 2010-07-20 13:28 UTC (permalink / raw)
  To: Zheng, Jiajia; +Cc: Guy, Wey-Yi W, linux-kernel, linux-kbuild

On Thu, Jul 15, 2010 at 10:42:33AM +0200, Michal Marek wrote:
> On Thu, Jul 15, 2010 at 11:23:19AM +0800, Zheng, Jiajia wrote:
> > # make rpm
> > make clean
> > set -e; cd ..; ln -sf /usr/src/iwlwifi-2.6 kernel-2.6.35rc4wl
> > /bin/sh /usr/src/iwlwifi-2.6/scripts/setlocalversion --scm-only > /usr/src/iwlwifi-2.6/.scmversion
> > cat: .scmversion: input file is output file
> > make[1]: *** [rpm] Error 1
> > make: *** [rpm] Error 2
> 
> Ah crap :-/. The following patch should fix it. BTW, if you remove the
> --scm-only option and use the LOCALVERSION mechanism, then the resulting
> kernel release string will have the localversion twice.

Hi jiajia,

were you able to test the fix? I'd like to send it to Linus.

Michal


> From 1df62f9175665a0573fe9708cb8604584a9b7bd5 Mon Sep 17 00:00:00 2001
> From: Michal Marek <mmarek@suse.cz>
> Date: Thu, 15 Jul 2010 10:36:37 +0200
> Subject: [PATCH] kbuild: Fix make rpm
> 
> make rpm was broken by commit 0915512:
> make clean
> set -e; cd ..; ln -sf /usr/src/iwlwifi-2.6 kernel-2.6.35rc4wl
> /bin/sh /usr/src/iwlwifi-2.6/scripts/setlocalversion --scm-only >
> /usr/src/iwlwifi-2.6/.scmversion
> cat: .scmversion: input file is output file
> make[1]: *** [rpm] Error 1
> 
> Reported-by: "Zheng, Jiajia" <jiajia.zheng@intel.com>
> Signed-off-by: Michal Marek <mmarek@suse.cz>
> 
> diff --git a/scripts/package/Makefile b/scripts/package/Makefile
> index 3a681ef..d2c29b6 100644
> --- a/scripts/package/Makefile
> +++ b/scripts/package/Makefile
> @@ -44,7 +44,7 @@ rpm-pkg rpm: $(objtree)/kernel.spec FORCE
>  	fi
>  	$(MAKE) clean
>  	$(PREV) ln -sf $(srctree) $(KERNELPATH)
> -	$(CONFIG_SHELL) $(srctree)/scripts/setlocalversion --scm-only > $(objtree)/.scmversion
> +	$(CONFIG_SHELL) $(srctree)/scripts/setlocalversion --save-scmversion
>  	$(PREV) tar -cz $(RCS_TAR_IGNORE) -f $(KERNELPATH).tar.gz $(KERNELPATH)/.
>  	$(PREV) rm $(KERNELPATH)
>  	rm -f $(objtree)/.scmversion
> diff --git a/scripts/setlocalversion b/scripts/setlocalversion
> index d6a866e..951b067 100755
> --- a/scripts/setlocalversion
> +++ b/scripts/setlocalversion
> @@ -10,13 +10,13 @@
>  #
>  
>  usage() {
> -	echo "Usage: $0 [--scm-only] [srctree]" >&2
> +	echo "Usage: $0 [--save-scmversion] [srctree]" >&2
>  	exit 1
>  }
>  
>  scm_only=false
>  srctree=.
> -if test "$1" = "--scm-only"; then
> +if test "$1" = "--save-scmversion"; then
>  	scm_only=true
>  	shift
>  fi
> @@ -131,7 +131,10 @@ collect_files()
>  }
>  
>  if $scm_only; then
> -	scm_version
> +	if test ! -e .scmversion; then
> +		res=$(scm_version)
> +		echo "$res" >.scmversion
> +	fi
>  	exit
>  fi
>  

^ permalink raw reply	[flat|nested] 4+ messages in thread

* RE: "make rpm" failed with parameter "--scm-only"
  2010-07-20 13:28   ` Michal Marek
@ 2010-07-21  1:30     ` Zheng, Jiajia
  2010-07-21 13:42       ` Michal Marek
  0 siblings, 1 reply; 4+ messages in thread
From: Zheng, Jiajia @ 2010-07-21  1:30 UTC (permalink / raw)
  To: Michal Marek
  Cc: Guy, Wey-Yi W, linux-kernel@vger.kernel.org,
	linux-kbuild@vger.kernel.org

Hi Michal,

Michal Marek wrote:
> On Thu, Jul 15, 2010 at 10:42:33AM +0200, Michal Marek wrote:
>> On Thu, Jul 15, 2010 at 11:23:19AM +0800, Zheng, Jiajia wrote:
>>> # make rpm
>>> make clean
>>> set -e; cd ..; ln -sf /usr/src/iwlwifi-2.6 kernel-2.6.35rc4wl
>>> /bin/sh /usr/src/iwlwifi-2.6/scripts/setlocalversion --scm-only >
>>> /usr/src/iwlwifi-2.6/.scmversion cat: .scmversion: input file is
>>> output file 
>>> make[1]: *** [rpm] Error 1
>>> make: *** [rpm] Error 2
>> 
>> Ah crap :-/. The following patch should fix it. BTW, if you remove
>> the --scm-only option and use the LOCALVERSION mechanism, then the
>> resulting 
>> kernel release string will have the localversion twice.
> 
> Hi jiajia,
> 
> were you able to test the fix? I'd like to send it to Linus.
> 
> Michal
Thank you. This patch works OK. 
But I still saw below warnings. Of course, it was not introduced by your patch because that I saw such warnings before. Could you also take a look if there's some problem with Makefile? 
...
+ make clean
make[2]: warning: jobserver unavailable: using -j1.  Add `+' to parent make rule.
+ make -j4
make[2]: warning: -jN forced in submake: disabling jobserver mode.
...
I got a RPM package: kernel-2.6.35rc5wl+-6.x86_64.rpm

bests, 
jiajia
> 
>> From 1df62f9175665a0573fe9708cb8604584a9b7bd5 Mon Sep 17 00:00:00
>> 2001 
>> From: Michal Marek <mmarek@suse.cz>
>> Date: Thu, 15 Jul 2010 10:36:37 +0200
>> Subject: [PATCH] kbuild: Fix make rpm
>> 
>> make rpm was broken by commit 0915512:
>> make clean
>> set -e; cd ..; ln -sf /usr/src/iwlwifi-2.6 kernel-2.6.35rc4wl
>> /bin/sh /usr/src/iwlwifi-2.6/scripts/setlocalversion --scm-only >
>> /usr/src/iwlwifi-2.6/.scmversion
>> cat: .scmversion: input file is output file
>> make[1]: *** [rpm] Error 1
>> 
>> Reported-by: "Zheng, Jiajia" <jiajia.zheng@intel.com>
>> Signed-off-by: Michal Marek <mmarek@suse.cz>
>> 
>> diff --git a/scripts/package/Makefile b/scripts/package/Makefile
>> index 3a681ef..d2c29b6 100644
>> --- a/scripts/package/Makefile
>> +++ b/scripts/package/Makefile
>> @@ -44,7 +44,7 @@ rpm-pkg rpm: $(objtree)/kernel.spec FORCE  	fi
>>  	$(MAKE) clean
>>  	$(PREV) ln -sf $(srctree) $(KERNELPATH)
>> -	$(CONFIG_SHELL) $(srctree)/scripts/setlocalversion --scm-only >
>> $(objtree)/.scmversion +	$(CONFIG_SHELL)
>>  	$(srctree)/scripts/setlocalversion --save-scmversion $(PREV) tar
>>  	-cz $(RCS_TAR_IGNORE) -f $(KERNELPATH).tar.gz $(KERNELPATH)/. 
>> $(PREV) rm $(KERNELPATH) rm -f $(objtree)/.scmversion 
>> diff --git a/scripts/setlocalversion b/scripts/setlocalversion
>> index d6a866e..951b067 100755
>> --- a/scripts/setlocalversion
>> +++ b/scripts/setlocalversion
>> @@ -10,13 +10,13 @@
>>  #
>> 
>>  usage() {
>> -	echo "Usage: $0 [--scm-only] [srctree]" >&2
>> +	echo "Usage: $0 [--save-scmversion] [srctree]" >&2  	exit 1
>>  }
>> 
>>  scm_only=false
>>  srctree=.
>> -if test "$1" = "--scm-only"; then
>> +if test "$1" = "--save-scmversion"; then
>>  	scm_only=true
>>  	shift
>>  fi
>> @@ -131,7 +131,10 @@ collect_files()
>>  }
>> 
>>  if $scm_only; then
>> -	scm_version
>> +	if test ! -e .scmversion; then
>> +		res=$(scm_version)
>> +		echo "$res" >.scmversion
>> +	fi
>>  	exit
>>  fi



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: "make rpm" failed with parameter "--scm-only"
  2010-07-21  1:30     ` Zheng, Jiajia
@ 2010-07-21 13:42       ` Michal Marek
  0 siblings, 0 replies; 4+ messages in thread
From: Michal Marek @ 2010-07-21 13:42 UTC (permalink / raw)
  To: Zheng, Jiajia
  Cc: Guy, Wey-Yi W, linux-kernel@vger.kernel.org,
	linux-kbuild@vger.kernel.org

On 21.7.2010 03:30, Zheng, Jiajia wrote:
> Michal Marek wrote:
>> were you able to test the fix? I'd like to send it to Linus.
>>
> Thank you. This patch works OK. 

Thanks a lot for testing it.

> But I still saw below warnings. Of course, it was not introduced by your patch because that I saw such warnings before. Could you also take a look if there's some problem with Makefile? 
> ...
> + make clean
> make[2]: warning: jobserver unavailable: using -j1.  Add `+' to parent make rule.

I found the explanation in the make info page:

`warning: jobserver unavailable: using -j1.  Add `+' to parent make rule.'
     In order for `make' processes to communicate, the parent will pass
     information to the child.  Since this could result in problems if
     the child process isn't actually a `make', the parent will only do
     this if it thinks the child is a `make'.  The parent uses the
     normal algorithms to determine this (*note How the `MAKE' Variable
     Works: MAKE Variable.).  If the makefile is constructed such that
     the parent doesn't know the child is a `make' process, then the
     child will receive only part of the information necessary. [...]

Which is our case: The parent make only sees the rpmbuild call. The fix
would probably be to clear all make environment variables before running
rpmbuild.

> + make -j4
> make[2]: warning: -jN forced in submake: disabling jobserver mode.

Another symptom of the same problem.


> I got a RPM package: kernel-2.6.35rc5wl+-6.x86_64.rpm

Great :).

Michal

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2010-07-21 13:41 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <A24AE1FFE7AEC5489F83450EE98351BF1BD77643B1@shsmsx502.ccr.corp.intel.com>
2010-07-15  8:42 ` "make rpm" failed with parameter "--scm-only" Michal Marek
2010-07-20 13:28   ` Michal Marek
2010-07-21  1:30     ` Zheng, Jiajia
2010-07-21 13:42       ` Michal Marek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).