LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Kernel (http://www.linuxquestions.org/questions/linux-kernel-70/)
-   -   Unable to build kernel RPM with 'custom name'. (need not kernel but kernel-something) (http://www.linuxquestions.org/questions/linux-kernel-70/unable-to-build-kernel-rpm-with-custom-name-need-not-kernel-but-kernel-something-855794/)

RattleSn@ke 01-12-2011 06:51 AM

Unable to build kernel RPM with 'custom name'. (need not kernel but kernel-something)
 
Hi all,

I'm trying to build a custom kernel RPM, but I need to give it a different name.
I can build a RPM as long I don't change the 'Name: kernel' part in the SPEC file. But this results in the following RPM:
kernel-2.6.25.11CUSTOM-1.x86_64.rpm

But I need to have it in the following format:
kernel-{myname}-2.6.25.11CUSTOM-1.x86_64.rpm

This because I don't want our customers to update to this kernel when they issue a 'yum update kernel'.

My SPEC file (partially):
Name: kernel-onno
Summary: The Linux Kernel
Version: 2.6.25.11CUSTOM1
Release: 1
License: GPL
Group: System Environment/Kernel
Vendor: The Linux Community
URL: http://www.kernel.org
Source: kernel-2.6.25.11CUSTOM1.tar.gz
BuildRoot: /var/tmp/kernel-%{PACKAGE_VERSION}-root
Provides: kernel-onno-2.6.25.11CUSTOM1

When I issue a 'make rpm', I get this error:
Code:

$ make rpm
make clean
set -e; cd ..; ln -sf /usr/src/linux-2.6.25.11 kernel-2.6.25.11CUSTOM1
set -e; cd ..; tar -cz --exclude SCCS --exclude BitKeeper --exclude .svn --exclude CVS --exclude .pc --exclude .hg --exclude .git -f kernel-2.6.25.11CUSTOM1.tar.gz kernel-2.6.25.11CUSTOM1/.
set -e; cd ..; rm kernel-2.6.25.11CUSTOM1
set -e; \
        /bin/sh /usr/src/linux-2.6.25.11/scripts/mkversion > /usr/src/linux-2.6.25.11/.tmp_version
set -e; \
        mv -f /usr/src/linux-2.6.25.11/.tmp_version /usr/src/linux-2.6.25.11/.version
rpmbuild --target x86_64 -ta ../kernel-2.6.25.11CUSTOM1.tar.gz
Building target platforms: x86_64
Building for target x86_64
Executing(%prep): /bin/sh -e /home/onno/rpm/tmp/rpm-tmp.44904
+ umask 022
+ cd /home/onno/rpm/BUILD
+ cd /home/onno/rpm/BUILD
+ rm -rf kernel-argeweb-2.6.25.11CUSTOM1
+ /bin/gzip -dc /usr/src/kernel-2.6.25.11CUSTOM1.tar.gz
+ tar -xf -
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd kernel-onno-2.6.25.11CUSTOM1
/home/onno/rpm/tmp/rpm-tmp.44904: line 31: cd: kernel-onno-2.6.25.11CUSTOM1: No such file or directory
error: Bad exit status from /home/onno/rpm/tmp/rpm-tmp.44904 (%prep)


RPM build errors:
    Bad exit status from /home/onno/rpm/tmp/rpm-tmp.44904 (%prep)
make[1]: *** [rpm] Error 1
make: *** [rpm] Error 2

As you see, the make rpm makes the 'wrong' tar.gz file. At least with the wrong name! That's why the script can't 'cd' into it: cd: kernel-onno-2.6.25.11CUSTOM1: No such file or directory
Anyone an idea on how to get this working?

Kind regards,
Onno.

unSpawn 01-12-2011 07:30 PM

Your view of priorities may not be the same as mine but there are a few things that need to be said. First of all I strongly disagree with you denying customers to (as I understand it) be able to update a kernel as this makes you responsible for down-streaming any and all fixes in the same time frame upstream releases them which you may likely not have the time for which in turn creates a liability your customers can do without: if you need to protect a package first look at what Yum may offer in terms of protection. Secondly I disagree with you mucking with package names. Doing that is against the distributions' package creation rules, definitely will result in you causing package management breakage in turn creating another liability your customers can do without (and possibly more grey hairs doe to excessive maintenance you need to perform to "fix" breakage): the easier way out could be to supply and make users poll your own repository for kernel updates. Third, and even then, customizing package names needs to follow whatever ENVRA-style ("epoch:name-version-release.architecture") parsing understands: "kernel" is a package "kernel-onno" does not and simply can not ever exist but "kernel-2.6.25-1.x86_64-onno.rpm" can. Not to be pedantic about it, and with all due respect, but if you do not grok any of the above then reading the Fedora package building rules before starting a discussion would be the most efficient approach.


All times are GMT -5. The time now is 04:36 AM.