xref: /openbmc/linux/scripts/package/mkspec (revision 5289c322)
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
135289c322SMasahiro Yamadaif [ "$1" = prebuilt ]; then
141da177e4SLinus Torvalds	PREBUILT=true
151da177e4SLinus Torvaldselse
161da177e4SLinus Torvalds	PREBUILT=false
171da177e4SLinus Torvaldsfi
181da177e4SLinus Torvalds
195289c322SMasahiro Yamadaif grep -q CONFIG_DRM=y .config; then
201da177e4SLinus Torvalds	PROVIDES=kernel-drm
211da177e4SLinus Torvaldsfi
221da177e4SLinus Torvalds
231da177e4SLinus TorvaldsPROVIDES="$PROVIDES kernel-$KERNELRELEASE"
245289c322SMasahiro Yamada__KERNELRELEASE=$(echo $KERNELRELEASE | sed -e "s/-/_/g")
255289c322SMasahiro YamadaEXCLUDES="$RCS_TAR_IGNORE --exclude=.tmp_versions --exclude=*vmlinux* \
265289c322SMasahiro Yamada--exclude=*.o --exclude=*.ko --exclude=*.cmd --exclude=Documentation \
275289c322SMasahiro Yamada--exclude=.config.old --exclude=.missing-syscalls.d"
281da177e4SLinus Torvalds
291da177e4SLinus Torvaldsecho "Name: kernel"
301da177e4SLinus Torvaldsecho "Summary: The Linux Kernel"
311da177e4SLinus Torvaldsecho "Version: $__KERNELRELEASE"
3225b080bdSMasahiro Yamadaecho "Release: $(cat .version 2>/dev/null || echo 1)"
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
421da177e4SLinus Torvaldsecho "Provides: $PROVIDES"
431da177e4SLinus Torvaldsecho "%define __spec_install_post /usr/lib/rpm/brp-compress || :"
441da177e4SLinus Torvaldsecho "%define debug_package %{nil}"
451da177e4SLinus Torvaldsecho ""
461da177e4SLinus Torvaldsecho "%description"
471da177e4SLinus Torvaldsecho "The Linux Kernel, the operating system core itself"
481da177e4SLinus Torvaldsecho ""
490bd41dfcSArun Sharmaecho "%package headers"
500bd41dfcSArun Sharmaecho "Summary: Header files for the Linux kernel for use by glibc"
510bd41dfcSArun Sharmaecho "Group: Development/System"
520bd41dfcSArun Sharmaecho "Obsoletes: kernel-headers"
530bd41dfcSArun Sharmaecho "Provides: kernel-headers = %{version}"
540bd41dfcSArun Sharmaecho "%description headers"
550bd41dfcSArun Sharmaecho "Kernel-headers includes the C header files that specify the interface"
560bd41dfcSArun Sharmaecho "between the Linux kernel and userspace libraries and programs.  The"
570bd41dfcSArun Sharmaecho "header files define structures and constants that are needed for"
580bd41dfcSArun Sharmaecho "building most standard programs and are also needed for rebuilding the"
590bd41dfcSArun Sharmaecho "glibc package."
600bd41dfcSArun Sharmaecho ""
615289c322SMasahiro Yamada
625289c322SMasahiro Yamadaif ! $PREBUILT; then
632174d292SMike Marciniszynecho "%package devel"
642174d292SMike Marciniszynecho "Summary: Development package for building kernel modules to match the $__KERNELRELEASE kernel"
652174d292SMike Marciniszynecho "Group: System Environment/Kernel"
662174d292SMike Marciniszynecho "AutoReqProv: no"
672174d292SMike Marciniszynecho "%description -n kernel-devel"
682174d292SMike Marciniszynecho "This package provides kernel headers and makefiles sufficient to build modules"
692174d292SMike Marciniszynecho "against the $__KERNELRELEASE kernel package."
702174d292SMike Marciniszynecho ""
711da177e4SLinus Torvaldsecho "%prep"
721da177e4SLinus Torvaldsecho "%setup -q"
731da177e4SLinus Torvaldsecho ""
741da177e4SLinus Torvaldsecho "%build"
755289c322SMasahiro Yamadaecho "make %{?_smp_mflags} KBUILD_BUILD_VERSION=%{release}"
761da177e4SLinus Torvaldsecho ""
771da177e4SLinus Torvaldsfi
781da177e4SLinus Torvalds
791da177e4SLinus Torvaldsecho "%install"
805289c322SMasahiro Yamadaecho 'mkdir -p $RPM_BUILD_ROOT/boot'
81d2cb1a95SGreg Edwardsecho "%ifarch ia64"
825289c322SMasahiro Yamadaecho 'mkdir -p $RPM_BUILD_ROOT/boot/efi'
835289c322SMasahiro Yamadaecho 'cp $(make image_name) $RPM_BUILD_ROOT'"/boot/efi/vmlinuz-$KERNELRELEASE"
84d2cb1a95SGreg Edwardsecho 'ln -s '"efi/vmlinuz-$KERNELRELEASE" '$RPM_BUILD_ROOT'"/boot/"
85d2cb1a95SGreg Edwardsecho "%else"
865289c322SMasahiro Yamadaecho 'cp $(make image_name) $RPM_BUILD_ROOT'"/boot/vmlinuz-$KERNELRELEASE"
87d2cb1a95SGreg Edwardsecho "%endif"
885289c322SMasahiro Yamadaecho 'make %{?_smp_mflags} INSTALL_MOD_PATH=$RPM_BUILD_ROOT KBUILD_SRC= modules_install'
89e0367a61SDavid R. Bildecho 'make %{?_smp_mflags} INSTALL_HDR_PATH=$RPM_BUILD_ROOT/usr KBUILD_SRC= headers_install'
901da177e4SLinus Torvaldsecho 'cp System.map $RPM_BUILD_ROOT'"/boot/System.map-$KERNELRELEASE"
911da177e4SLinus Torvaldsecho 'cp .config $RPM_BUILD_ROOT'"/boot/config-$KERNELRELEASE"
9292f43c45SBorislav Petkovecho 'bzip2 -9 --keep vmlinux'
93fc370ecfSJosh Huntecho 'mv vmlinux.bz2 $RPM_BUILD_ROOT'"/boot/vmlinux-$KERNELRELEASE.bz2"
94fc370ecfSJosh Hunt
95b9a54424SJérôme Glisseif ! $PREBUILT; then
9651a5f810SAnton Tikhomirovecho 'rm -f $RPM_BUILD_ROOT'"/lib/modules/$KERNELRELEASE/build"
9751a5f810SAnton Tikhomirovecho 'rm -f $RPM_BUILD_ROOT'"/lib/modules/$KERNELRELEASE/source"
982174d292SMike Marciniszynecho "mkdir -p "'$RPM_BUILD_ROOT'"/usr/src/kernels/$KERNELRELEASE"
995289c322SMasahiro Yamadaecho "tar cf - . $EXCLUDES | tar xf - -C "'$RPM_BUILD_ROOT'"/usr/src/kernels/$KERNELRELEASE"
1002174d292SMike Marciniszynecho 'cd $RPM_BUILD_ROOT'"/lib/modules/$KERNELRELEASE"
1012174d292SMike Marciniszynecho "ln -sf /usr/src/kernels/$KERNELRELEASE build"
1022174d292SMike Marciniszynecho "ln -sf /usr/src/kernels/$KERNELRELEASE source"
103b9a54424SJérôme Glissefi
1042174d292SMike Marciniszyn
1051da177e4SLinus Torvaldsecho ""
1061da177e4SLinus Torvaldsecho "%clean"
107a2ebcc7aSJosh Huntecho 'rm -rf $RPM_BUILD_ROOT'
1081da177e4SLinus Torvaldsecho ""
1093c9c7a14SMike Marciniszynecho "%post"
1103c9c7a14SMike Marciniszynecho "if [ -x /sbin/installkernel -a -r /boot/vmlinuz-$KERNELRELEASE -a -r /boot/System.map-$KERNELRELEASE ]; then"
111c8b08ca5SJiri Kosinaecho "cp /boot/vmlinuz-$KERNELRELEASE /boot/.vmlinuz-$KERNELRELEASE-rpm"
112c8b08ca5SJiri Kosinaecho "cp /boot/System.map-$KERNELRELEASE /boot/.System.map-$KERNELRELEASE-rpm"
1133c9c7a14SMike Marciniszynecho "rm -f /boot/vmlinuz-$KERNELRELEASE /boot/System.map-$KERNELRELEASE"
114c8b08ca5SJiri Kosinaecho "/sbin/installkernel $KERNELRELEASE /boot/.vmlinuz-$KERNELRELEASE-rpm /boot/.System.map-$KERNELRELEASE-rpm"
115c8b08ca5SJiri Kosinaecho "rm -f /boot/.vmlinuz-$KERNELRELEASE-rpm /boot/.System.map-$KERNELRELEASE-rpm"
1163c9c7a14SMike Marciniszynecho "fi"
1173c9c7a14SMike Marciniszynecho ""
1186ef41e22SPaolo Abeniecho "%preun"
1196ef41e22SPaolo Abeniecho "if [ -x /sbin/new-kernel-pkg ]; then"
1206ef41e22SPaolo Abeniecho "new-kernel-pkg --remove $KERNELRELEASE --rminitrd --initrdfile=/boot/initramfs-$KERNELRELEASE.img"
1216ef41e22SPaolo Abeniecho "fi"
1226ef41e22SPaolo Abeniecho ""
12327c3bffdSJiri Kosinaecho "%postun"
12427c3bffdSJiri Kosinaecho "if [ -x /sbin/update-bootloader ]; then"
12527c3bffdSJiri Kosinaecho "/sbin/update-bootloader --remove $KERNELRELEASE"
12627c3bffdSJiri Kosinaecho "fi"
12727c3bffdSJiri Kosinaecho ""
1281da177e4SLinus Torvaldsecho "%files"
1291da177e4SLinus Torvaldsecho '%defattr (-, root, root)'
1301da177e4SLinus Torvaldsecho "/lib/modules/$KERNELRELEASE"
1312174d292SMike Marciniszynecho "%exclude /lib/modules/$KERNELRELEASE/build"
1322174d292SMike Marciniszynecho "%exclude /lib/modules/$KERNELRELEASE/source"
1331da177e4SLinus Torvaldsecho "/boot/*"
1341da177e4SLinus Torvaldsecho ""
1350bd41dfcSArun Sharmaecho "%files headers"
1360bd41dfcSArun Sharmaecho '%defattr (-, root, root)'
1370bd41dfcSArun Sharmaecho "/usr/include"
138b9a54424SJérôme Glisseif ! $PREBUILT; then
1395289c322SMasahiro Yamadaecho ""
1402174d292SMike Marciniszynecho "%files devel"
1412174d292SMike Marciniszynecho '%defattr (-, root, root)'
1422174d292SMike Marciniszynecho "/usr/src/kernels/$KERNELRELEASE"
1432174d292SMike Marciniszynecho "/lib/modules/$KERNELRELEASE/build"
1442174d292SMike Marciniszynecho "/lib/modules/$KERNELRELEASE/source"
145b9a54424SJérôme Glissefi
146