xref: /openbmc/linux/scripts/package/mkspec (revision 9e090074)
11da177e4SLinus Torvalds#!/bin/sh
21da177e4SLinus Torvalds#
32174d292SMike Marciniszyn#	Output a simple RPM spec file.
42174d292SMike Marciniszyn#	This version assumes a minimum of RPM 4.0.3.
51da177e4SLinus Torvalds#
61da177e4SLinus Torvalds#	The only gothic bit here is redefining install_post to avoid
71da177e4SLinus Torvalds#	stripping the symbols from files in the kernel which we want
81da177e4SLinus Torvalds#
91da177e4SLinus Torvalds#	Patched for non-x86 by Opencon (L) 2002 <opencon@rio.skydome.net>
101da177e4SLinus Torvalds#
111da177e4SLinus Torvalds
121da177e4SLinus Torvalds# how we were called determines which rpms we build and how we build them
131da177e4SLinus Torvaldsif [ "$1" = "prebuilt" ]; then
141da177e4SLinus Torvalds	PREBUILT=true
151da177e4SLinus Torvaldselse
161da177e4SLinus Torvalds	PREBUILT=false
171da177e4SLinus Torvaldsfi
181da177e4SLinus Torvalds
191da177e4SLinus Torvalds# starting to output the spec
201da177e4SLinus Torvaldsif [ "`grep CONFIG_DRM=y .config | cut -f2 -d\=`" = "y" ]; then
211da177e4SLinus Torvalds	PROVIDES=kernel-drm
221da177e4SLinus Torvaldsfi
231da177e4SLinus Torvalds
241da177e4SLinus TorvaldsPROVIDES="$PROVIDES kernel-$KERNELRELEASE"
25e1287eb8SArun Sharma__KERNELRELEASE=`echo $KERNELRELEASE | sed -e "s/-/_/g"`
261da177e4SLinus Torvalds
271da177e4SLinus Torvaldsecho "Name: kernel"
281da177e4SLinus Torvaldsecho "Summary: The Linux Kernel"
291da177e4SLinus Torvaldsecho "Version: $__KERNELRELEASE"
301da177e4SLinus Torvalds# we need to determine the NEXT version number so that uname and
311da177e4SLinus Torvalds# rpm -q will agree
321da177e4SLinus Torvaldsecho "Release: `. $srctree/scripts/mkversion`"
331da177e4SLinus Torvaldsecho "License: GPL"
341da177e4SLinus Torvaldsecho "Group: System Environment/Kernel"
351da177e4SLinus Torvaldsecho "Vendor: The Linux Community"
361da177e4SLinus Torvaldsecho "URL: http://www.kernel.org"
371da177e4SLinus Torvalds
381da177e4SLinus Torvaldsif ! $PREBUILT; then
391da177e4SLinus Torvaldsecho "Source: kernel-$__KERNELRELEASE.tar.gz"
401da177e4SLinus Torvaldsfi
411da177e4SLinus Torvalds
42880df92fSJohn Saalwaechterecho "BuildRoot: %{_tmppath}/%{name}-%{PACKAGE_VERSION}-root"
431da177e4SLinus Torvaldsecho "Provides: $PROVIDES"
441da177e4SLinus Torvaldsecho "%define __spec_install_post /usr/lib/rpm/brp-compress || :"
451da177e4SLinus Torvaldsecho "%define debug_package %{nil}"
461da177e4SLinus Torvaldsecho ""
471da177e4SLinus Torvaldsecho "%description"
481da177e4SLinus Torvaldsecho "The Linux Kernel, the operating system core itself"
491da177e4SLinus Torvaldsecho ""
500bd41dfcSArun Sharmaecho "%package headers"
510bd41dfcSArun Sharmaecho "Summary: Header files for the Linux kernel for use by glibc"
520bd41dfcSArun Sharmaecho "Group: Development/System"
530bd41dfcSArun Sharmaecho "Obsoletes: kernel-headers"
540bd41dfcSArun Sharmaecho "Provides: kernel-headers = %{version}"
550bd41dfcSArun Sharmaecho "%description headers"
560bd41dfcSArun Sharmaecho "Kernel-headers includes the C header files that specify the interface"
570bd41dfcSArun Sharmaecho "between the Linux kernel and userspace libraries and programs.  The"
580bd41dfcSArun Sharmaecho "header files define structures and constants that are needed for"
590bd41dfcSArun Sharmaecho "building most standard programs and are also needed for rebuilding the"
600bd41dfcSArun Sharmaecho "glibc package."
610bd41dfcSArun Sharmaecho ""
622174d292SMike Marciniszynecho "%package devel"
632174d292SMike Marciniszynecho "Summary: Development package for building kernel modules to match the $__KERNELRELEASE kernel"
642174d292SMike Marciniszynecho "Group: System Environment/Kernel"
652174d292SMike Marciniszynecho "AutoReqProv: no"
662174d292SMike Marciniszynecho "%description -n kernel-devel"
672174d292SMike Marciniszynecho "This package provides kernel headers and makefiles sufficient to build modules"
682174d292SMike Marciniszynecho "against the $__KERNELRELEASE kernel package."
692174d292SMike Marciniszynecho ""
701da177e4SLinus Torvalds
711da177e4SLinus Torvaldsif ! $PREBUILT; then
721da177e4SLinus Torvaldsecho "%prep"
731da177e4SLinus Torvaldsecho "%setup -q"
741da177e4SLinus Torvaldsecho ""
751da177e4SLinus Torvaldsfi
761da177e4SLinus Torvalds
771da177e4SLinus Torvaldsecho "%build"
781da177e4SLinus Torvalds
791da177e4SLinus Torvaldsif ! $PREBUILT; then
8013797b77SJeremy Kerrecho "make clean && make %{?_smp_mflags}"
811da177e4SLinus Torvaldsecho ""
821da177e4SLinus Torvaldsfi
831da177e4SLinus Torvalds
841da177e4SLinus Torvaldsecho "%install"
85c398ff00SMike Marciniszynecho 'KBUILD_IMAGE=$(make image_name)'
86d2cb1a95SGreg Edwardsecho "%ifarch ia64"
87a5fa393bSRolf Eike Beerecho 'mkdir -p $RPM_BUILD_ROOT/boot/efi $RPM_BUILD_ROOT/lib/modules'
88d2cb1a95SGreg Edwardsecho "%else"
89a5fa393bSRolf Eike Beerecho 'mkdir -p $RPM_BUILD_ROOT/boot $RPM_BUILD_ROOT/lib/modules'
90d2cb1a95SGreg Edwardsecho "%endif"
911da177e4SLinus Torvalds
929e090074SMasahiro Yamadaecho 'INSTALL_MOD_PATH=$RPM_BUILD_ROOT make %{?_smp_mflags} KBUILD_SRC= modules_install'
93d2cb1a95SGreg Edwardsecho "%ifarch ia64"
94d2cb1a95SGreg Edwardsecho 'cp $KBUILD_IMAGE $RPM_BUILD_ROOT'"/boot/efi/vmlinuz-$KERNELRELEASE"
95d2cb1a95SGreg Edwardsecho 'ln -s '"efi/vmlinuz-$KERNELRELEASE" '$RPM_BUILD_ROOT'"/boot/"
96d2cb1a95SGreg Edwardsecho "%else"
971a0f3d42SMike Wolfecho "%ifarch ppc64"
981a0f3d42SMike Wolfecho "cp vmlinux arch/powerpc/boot"
991a0f3d42SMike Wolfecho "cp arch/powerpc/boot/"'$KBUILD_IMAGE $RPM_BUILD_ROOT'"/boot/vmlinuz-$KERNELRELEASE"
1001a0f3d42SMike Wolfecho "%else"
1011da177e4SLinus Torvaldsecho 'cp $KBUILD_IMAGE $RPM_BUILD_ROOT'"/boot/vmlinuz-$KERNELRELEASE"
102d2cb1a95SGreg Edwardsecho "%endif"
1031a0f3d42SMike Wolfecho "%endif"
1041da177e4SLinus Torvalds
105e0367a61SDavid R. Bildecho 'make %{?_smp_mflags} INSTALL_HDR_PATH=$RPM_BUILD_ROOT/usr KBUILD_SRC= headers_install'
1061da177e4SLinus Torvaldsecho 'cp System.map $RPM_BUILD_ROOT'"/boot/System.map-$KERNELRELEASE"
1071da177e4SLinus Torvalds
1081da177e4SLinus Torvaldsecho 'cp .config $RPM_BUILD_ROOT'"/boot/config-$KERNELRELEASE"
109fc370ecfSJosh Hunt
110fc370ecfSJosh Huntecho "%ifnarch ppc64"
11192f43c45SBorislav Petkovecho 'bzip2 -9 --keep vmlinux'
112fc370ecfSJosh Huntecho 'mv vmlinux.bz2 $RPM_BUILD_ROOT'"/boot/vmlinux-$KERNELRELEASE.bz2"
113fc370ecfSJosh Huntecho "%endif"
114fc370ecfSJosh Hunt
115b9a54424SJérôme Glisseif ! $PREBUILT; then
11651a5f810SAnton Tikhomirovecho 'rm -f $RPM_BUILD_ROOT'"/lib/modules/$KERNELRELEASE/build"
11751a5f810SAnton Tikhomirovecho 'rm -f $RPM_BUILD_ROOT'"/lib/modules/$KERNELRELEASE/source"
1182174d292SMike Marciniszynecho "mkdir -p "'$RPM_BUILD_ROOT'"/usr/src/kernels/$KERNELRELEASE"
1199e090074SMasahiro Yamadaecho "EXCLUDES=\"$RCS_TAR_IGNORE --exclude .tmp_versions --exclude=*vmlinux* --exclude=*.o --exclude=*.ko --exclude=*.cmd --exclude=Documentation --exclude .config.old --exclude .missing-syscalls.d\""
1202174d292SMike Marciniszynecho "tar "'$EXCLUDES'" -cf- . | (cd "'$RPM_BUILD_ROOT'"/usr/src/kernels/$KERNELRELEASE;tar xvf -)"
1212174d292SMike Marciniszynecho 'cd $RPM_BUILD_ROOT'"/lib/modules/$KERNELRELEASE"
1222174d292SMike Marciniszynecho "ln -sf /usr/src/kernels/$KERNELRELEASE build"
1232174d292SMike Marciniszynecho "ln -sf /usr/src/kernels/$KERNELRELEASE source"
124b9a54424SJérôme Glissefi
1252174d292SMike Marciniszyn
1261da177e4SLinus Torvaldsecho ""
1271da177e4SLinus Torvaldsecho "%clean"
128a2ebcc7aSJosh Huntecho 'rm -rf $RPM_BUILD_ROOT'
1291da177e4SLinus Torvaldsecho ""
1303c9c7a14SMike Marciniszynecho "%post"
1313c9c7a14SMike Marciniszynecho "if [ -x /sbin/installkernel -a -r /boot/vmlinuz-$KERNELRELEASE -a -r /boot/System.map-$KERNELRELEASE ]; then"
132c8b08ca5SJiri Kosinaecho "cp /boot/vmlinuz-$KERNELRELEASE /boot/.vmlinuz-$KERNELRELEASE-rpm"
133c8b08ca5SJiri Kosinaecho "cp /boot/System.map-$KERNELRELEASE /boot/.System.map-$KERNELRELEASE-rpm"
1343c9c7a14SMike Marciniszynecho "rm -f /boot/vmlinuz-$KERNELRELEASE /boot/System.map-$KERNELRELEASE"
135c8b08ca5SJiri Kosinaecho "/sbin/installkernel $KERNELRELEASE /boot/.vmlinuz-$KERNELRELEASE-rpm /boot/.System.map-$KERNELRELEASE-rpm"
136c8b08ca5SJiri Kosinaecho "rm -f /boot/.vmlinuz-$KERNELRELEASE-rpm /boot/.System.map-$KERNELRELEASE-rpm"
1373c9c7a14SMike Marciniszynecho "fi"
1383c9c7a14SMike Marciniszynecho ""
1396ef41e22SPaolo Abeniecho "%preun"
1406ef41e22SPaolo Abeniecho "if [ -x /sbin/new-kernel-pkg ]; then"
1416ef41e22SPaolo Abeniecho "new-kernel-pkg --remove $KERNELRELEASE --rminitrd --initrdfile=/boot/initramfs-$KERNELRELEASE.img"
1426ef41e22SPaolo Abeniecho "fi"
1436ef41e22SPaolo Abeniecho ""
14427c3bffdSJiri Kosinaecho "%postun"
14527c3bffdSJiri Kosinaecho "if [ -x /sbin/update-bootloader ]; then"
14627c3bffdSJiri Kosinaecho "/sbin/update-bootloader --remove $KERNELRELEASE"
14727c3bffdSJiri Kosinaecho "fi"
14827c3bffdSJiri Kosinaecho ""
1491da177e4SLinus Torvaldsecho "%files"
1501da177e4SLinus Torvaldsecho '%defattr (-, root, root)'
1511da177e4SLinus Torvaldsecho "/lib/modules/$KERNELRELEASE"
1522174d292SMike Marciniszynecho "%exclude /lib/modules/$KERNELRELEASE/build"
1532174d292SMike Marciniszynecho "%exclude /lib/modules/$KERNELRELEASE/source"
1541da177e4SLinus Torvaldsecho "/boot/*"
1551da177e4SLinus Torvaldsecho ""
1560bd41dfcSArun Sharmaecho "%files headers"
1570bd41dfcSArun Sharmaecho '%defattr (-, root, root)'
1580bd41dfcSArun Sharmaecho "/usr/include"
1590bd41dfcSArun Sharmaecho ""
160b9a54424SJérôme Glisseif ! $PREBUILT; then
1612174d292SMike Marciniszynecho "%files devel"
1622174d292SMike Marciniszynecho '%defattr (-, root, root)'
1632174d292SMike Marciniszynecho "/usr/src/kernels/$KERNELRELEASE"
1642174d292SMike Marciniszynecho "/lib/modules/$KERNELRELEASE/build"
1652174d292SMike Marciniszynecho "/lib/modules/$KERNELRELEASE/source"
1662174d292SMike Marciniszynecho ""
167b9a54424SJérôme Glissefi
168