xref: /openbmc/linux/scripts/package/mkspec (revision c8b08ca5)
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"
9141612378SMike Marciniszynecho 'mkdir -p $RPM_BUILD_ROOT'"/lib/firmware/$KERNELRELEASE"
921da177e4SLinus Torvalds
9341612378SMike Marciniszynecho 'INSTALL_MOD_PATH=$RPM_BUILD_ROOT make %{?_smp_mflags} KBUILD_SRC= mod-fw= modules_install'
9441612378SMike Marciniszynecho 'INSTALL_FW_PATH=$RPM_BUILD_ROOT'"/lib/firmware/$KERNELRELEASE"
9541612378SMike Marciniszynecho 'make INSTALL_FW_PATH=$INSTALL_FW_PATH' firmware_install
96d2cb1a95SGreg Edwardsecho "%ifarch ia64"
97d2cb1a95SGreg Edwardsecho 'cp $KBUILD_IMAGE $RPM_BUILD_ROOT'"/boot/efi/vmlinuz-$KERNELRELEASE"
98d2cb1a95SGreg Edwardsecho 'ln -s '"efi/vmlinuz-$KERNELRELEASE" '$RPM_BUILD_ROOT'"/boot/"
99d2cb1a95SGreg Edwardsecho "%else"
1001a0f3d42SMike Wolfecho "%ifarch ppc64"
1011a0f3d42SMike Wolfecho "cp vmlinux arch/powerpc/boot"
1021a0f3d42SMike Wolfecho "cp arch/powerpc/boot/"'$KBUILD_IMAGE $RPM_BUILD_ROOT'"/boot/vmlinuz-$KERNELRELEASE"
1031a0f3d42SMike Wolfecho "%else"
1041da177e4SLinus Torvaldsecho 'cp $KBUILD_IMAGE $RPM_BUILD_ROOT'"/boot/vmlinuz-$KERNELRELEASE"
105d2cb1a95SGreg Edwardsecho "%endif"
1061a0f3d42SMike Wolfecho "%endif"
1071da177e4SLinus Torvalds
108e0367a61SDavid R. Bildecho 'make %{?_smp_mflags} INSTALL_HDR_PATH=$RPM_BUILD_ROOT/usr KBUILD_SRC= headers_install'
1091da177e4SLinus Torvaldsecho 'cp System.map $RPM_BUILD_ROOT'"/boot/System.map-$KERNELRELEASE"
1101da177e4SLinus Torvalds
1111da177e4SLinus Torvaldsecho 'cp .config $RPM_BUILD_ROOT'"/boot/config-$KERNELRELEASE"
112fc370ecfSJosh Hunt
113fc370ecfSJosh Huntecho "%ifnarch ppc64"
11492f43c45SBorislav Petkovecho 'bzip2 -9 --keep vmlinux'
115fc370ecfSJosh Huntecho 'mv vmlinux.bz2 $RPM_BUILD_ROOT'"/boot/vmlinux-$KERNELRELEASE.bz2"
116fc370ecfSJosh Huntecho "%endif"
117fc370ecfSJosh Hunt
118b9a54424SJérôme Glisseif ! $PREBUILT; then
1192174d292SMike Marciniszynecho 'rm -f $RPM_BUILD_ROOT'"/lib/modules/$KERNELRELEASE/{build,source}"
1202174d292SMike Marciniszynecho "mkdir -p "'$RPM_BUILD_ROOT'"/usr/src/kernels/$KERNELRELEASE"
1212174d292SMike Marciniszynecho "EXCLUDES=\"$RCS_TAR_IGNORE --exclude .tmp_versions --exclude=*vmlinux* --exclude=*.o --exclude=*.ko --exclude=*.cmd --exclude=Documentation --exclude=firmware --exclude .config.old --exclude .missing-syscalls.d\""
1222174d292SMike Marciniszynecho "tar "'$EXCLUDES'" -cf- . | (cd "'$RPM_BUILD_ROOT'"/usr/src/kernels/$KERNELRELEASE;tar xvf -)"
1232174d292SMike Marciniszynecho 'cd $RPM_BUILD_ROOT'"/lib/modules/$KERNELRELEASE"
1242174d292SMike Marciniszynecho "ln -sf /usr/src/kernels/$KERNELRELEASE build"
1252174d292SMike Marciniszynecho "ln -sf /usr/src/kernels/$KERNELRELEASE source"
126b9a54424SJérôme Glissefi
1272174d292SMike Marciniszyn
1281da177e4SLinus Torvaldsecho ""
1291da177e4SLinus Torvaldsecho "%clean"
130a2ebcc7aSJosh Huntecho 'rm -rf $RPM_BUILD_ROOT'
1311da177e4SLinus Torvaldsecho ""
1323c9c7a14SMike Marciniszynecho "%post"
1333c9c7a14SMike Marciniszynecho "if [ -x /sbin/installkernel -a -r /boot/vmlinuz-$KERNELRELEASE -a -r /boot/System.map-$KERNELRELEASE ]; then"
134c8b08ca5SJiri Kosinaecho "cp /boot/vmlinuz-$KERNELRELEASE /boot/.vmlinuz-$KERNELRELEASE-rpm"
135c8b08ca5SJiri Kosinaecho "cp /boot/System.map-$KERNELRELEASE /boot/.System.map-$KERNELRELEASE-rpm"
1363c9c7a14SMike Marciniszynecho "rm -f /boot/vmlinuz-$KERNELRELEASE /boot/System.map-$KERNELRELEASE"
137c8b08ca5SJiri Kosinaecho "/sbin/installkernel $KERNELRELEASE /boot/.vmlinuz-$KERNELRELEASE-rpm /boot/.System.map-$KERNELRELEASE-rpm"
138c8b08ca5SJiri Kosinaecho "rm -f /boot/.vmlinuz-$KERNELRELEASE-rpm /boot/.System.map-$KERNELRELEASE-rpm"
1393c9c7a14SMike Marciniszynecho "fi"
1403c9c7a14SMike Marciniszynecho ""
1411da177e4SLinus Torvaldsecho "%files"
1421da177e4SLinus Torvaldsecho '%defattr (-, root, root)'
1431da177e4SLinus Torvaldsecho "/lib/modules/$KERNELRELEASE"
1442174d292SMike Marciniszynecho "%exclude /lib/modules/$KERNELRELEASE/build"
1452174d292SMike Marciniszynecho "%exclude /lib/modules/$KERNELRELEASE/source"
14641612378SMike Marciniszynecho "/lib/firmware/$KERNELRELEASE"
1471da177e4SLinus Torvaldsecho "/boot/*"
1481da177e4SLinus Torvaldsecho ""
1490bd41dfcSArun Sharmaecho "%files headers"
1500bd41dfcSArun Sharmaecho '%defattr (-, root, root)'
1510bd41dfcSArun Sharmaecho "/usr/include"
1520bd41dfcSArun Sharmaecho ""
153b9a54424SJérôme Glisseif ! $PREBUILT; then
1542174d292SMike Marciniszynecho "%files devel"
1552174d292SMike Marciniszynecho '%defattr (-, root, root)'
1562174d292SMike Marciniszynecho "/usr/src/kernels/$KERNELRELEASE"
1572174d292SMike Marciniszynecho "/lib/modules/$KERNELRELEASE/build"
1582174d292SMike Marciniszynecho "/lib/modules/$KERNELRELEASE/source"
1592174d292SMike Marciniszynecho ""
160b9a54424SJérôme Glissefi
161