make rpm

From: Alan Cox (
Date: Sat Jul 28 2001 - 19:20:19 EST

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 ?



# # 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



#!/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:" 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 More majordomo info at Please read the FAQ at

This archive was generated by hypermail 2b29 : Tue Jul 31 2001 - 21:00:39 EST