[LWN Logo]
[LWN.net]
From:	 Alan Cox <alan@lxorguk.ukuu.org.uk>
To:	 linux-kernel@vger.kernel.org
Subject: make rpm
Date:	 Sun, 29 Jul 2001 01:20:19 +0100 (BST)

I've been meaning to do this one for a while and I now have it working so
that with my current -ac kernel working tree I can type

	make rpm

and out puts kernel-2.4.7ac3-1.i386.rpm

All this took was the pieces below.

Anyone care to knock up a "make dpkg" to go with it ?

Alan

---

#
# RPM target
#
#	If you do a make spec before packing the tarball you can rpm -ta it
#
spec:
 	. scripts/mkspec >kernel.spec

#
# 	Build a tar ball , generate an rpm from it and pack the result
# 	There arw two bits of magic here
#  	1) The use of /. to avoid tar packing just the symlink
# 	2) Removing the .dep files as they have source paths in them that
# 		will become invalid
#
rpm:    clean newversion spec
        find . \( -size 0 -o -name .depend \) -type f -print | xargs rm -f
        cd $(TOPDIR)/.. ; \
        ln -s $(TOPDIR) $(KERNELPATH) ; \
        tar cvfz $(KERNELPATH).tar.gz $(KERNELPATH)/. ; \
        rpm -ta $(TOPDIR)/../$(KERNELPATH).tar.gz


--

scripts/mkspec


#!/bin/sh
#
#	Output a simple RPM spec file that uses no fancy features requring
#	RPM v4. This is intended to work with any RPM distro.
#
#	The only gothic bit here is redefining install_post to avoid 
#	stripping the symbols from files in the kernel which we want
#
echo "Name: kernel"
echo "Summary: The Linux Kernel"
echo "Version: "$VERSION.$PATCHLEVEL.$SUBLEVEL$EXTRAVERSION | sed -e "s/-//"
echo -n "Release: "
cat .version
echo "Copyright: GPL"
echo "Group: System Environment/Kernel"
echo "Vendor: The Linux Community"
echo "URL: http://www.kernel.org"
echo -n "Source: kernel-$VERSION.$PATCHLEVEL.$SUBLEVEL"
echo "$EXTRAVERSION.tar.gz" | sed -e "s/-//"
echo "BuildRoot: /var/tmp/%{name}-%{PACKAGE_VERSION}-root"
echo "%define __spec_install_post /usr/lib/rpm/brp-compress || :"
echo ""
echo "%description"
echo "The Linux Kernel, the operating system core itself"
echo ""
echo "%prep"
echo "%setup -q"
echo ""
echo "%build"
echo "make oldconfig dep clean bzImage modules"
echo ""
echo "%install"
echo 'mkdir -p $RPM_BUILD_ROOT/boot $RPM_BUILD_ROOT/lib
$RPM_BUILD_ROOT/lib/modules'
echo 'INSTALL_MOD_PATH=$RPM_BUILD_ROOT make modules_install'
echo 'cp arch/i386/boot/bzImage
$RPM_BUILD_ROOT'"/boot/vmlinuz-$VERSION.$PATCHLEVEL.$SUBLEVEL$EXTRAVERSION"
echo ""
echo "%clean"
echo '#echo -rf $RPM_BUILD_ROOT'
echo ""
echo "%files"
echo '%defattr (-, root, root)'
echo "%dir /lib/modules"
echo "/lib/modules/$VERSION.$PATCHLEVEL.$SUBLEVEL$EXTRAVERSION"
echo ""
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/