cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

mkspec (4820B)


      1#!/bin/sh
      2#
      3#	Output a simple RPM spec file.
      4#	This version assumes a minimum of RPM 4.0.3.
      5#
      6#	The only gothic bit here is redefining install_post to avoid
      7#	stripping the symbols from files in the kernel which we want
      8#
      9#	Patched for non-x86 by Opencon (L) 2002 <opencon@rio.skydome.net>
     10#
     11
     12# how we were called determines which rpms we build and how we build them
     13if [ "$1" = prebuilt ]; then
     14	S=DEL
     15	MAKE="$MAKE -f $srctree/Makefile"
     16else
     17	S=
     18fi
     19
     20if grep -q CONFIG_MODULES=y .config; then
     21	M=
     22else
     23	M=DEL
     24fi
     25
     26if grep -q CONFIG_DRM=y .config; then
     27	PROVIDES=kernel-drm
     28fi
     29
     30PROVIDES="$PROVIDES kernel-$KERNELRELEASE"
     31__KERNELRELEASE=$(echo $KERNELRELEASE | sed -e "s/-/_/g")
     32EXCLUDES="$RCS_TAR_IGNORE --exclude=*vmlinux* --exclude=*.mod \
     33--exclude=*.o --exclude=*.ko --exclude=*.cmd --exclude=Documentation \
     34--exclude=.config.old --exclude=.missing-syscalls.d --exclude=*.s"
     35
     36# We can label the here-doc lines for conditional output to the spec file
     37#
     38# Labels:
     39#  $S: this line is enabled only when building source package
     40#  $M: this line is enabled only when CONFIG_MODULES is enabled
     41sed -e '/^DEL/d' -e 's/^\t*//' <<EOF
     42	Name: kernel
     43	Summary: The Linux Kernel
     44	Version: $__KERNELRELEASE
     45	Release: $(cat .version 2>/dev/null || echo 1)
     46	License: GPL
     47	Group: System Environment/Kernel
     48	Vendor: The Linux Community
     49	URL: https://www.kernel.org
     50$S	Source: kernel-$__KERNELRELEASE.tar.gz
     51	Provides: $PROVIDES
     52	%define __spec_install_post /usr/lib/rpm/brp-compress || :
     53	%define debug_package %{nil}
     54
     55	%description
     56	The Linux Kernel, the operating system core itself
     57
     58	%package headers
     59	Summary: Header files for the Linux kernel for use by glibc
     60	Group: Development/System
     61	Obsoletes: kernel-headers
     62	Provides: kernel-headers = %{version}
     63	%description headers
     64	Kernel-headers includes the C header files that specify the interface
     65	between the Linux kernel and userspace libraries and programs.  The
     66	header files define structures and constants that are needed for
     67	building most standard programs and are also needed for rebuilding the
     68	glibc package.
     69
     70$S$M	%package devel
     71$S$M	Summary: Development package for building kernel modules to match the $__KERNELRELEASE kernel
     72$S$M	Group: System Environment/Kernel
     73$S$M	AutoReqProv: no
     74$S$M	%description -n kernel-devel
     75$S$M	This package provides kernel headers and makefiles sufficient to build modules
     76$S$M	against the $__KERNELRELEASE kernel package.
     77$S$M
     78$S	%prep
     79$S	%setup -q
     80$S
     81$S	%build
     82$S	$MAKE %{?_smp_mflags} KBUILD_BUILD_VERSION=%{release}
     83$S
     84	%install
     85	mkdir -p %{buildroot}/boot
     86	%ifarch ia64
     87	mkdir -p %{buildroot}/boot/efi
     88	cp \$($MAKE image_name) %{buildroot}/boot/efi/vmlinuz-$KERNELRELEASE
     89	ln -s efi/vmlinuz-$KERNELRELEASE %{buildroot}/boot/
     90	%else
     91	cp \$($MAKE image_name) %{buildroot}/boot/vmlinuz-$KERNELRELEASE
     92	%endif
     93$M	$MAKE %{?_smp_mflags} INSTALL_MOD_PATH=%{buildroot} modules_install
     94	$MAKE %{?_smp_mflags} INSTALL_HDR_PATH=%{buildroot}/usr headers_install
     95	cp System.map %{buildroot}/boot/System.map-$KERNELRELEASE
     96	cp .config %{buildroot}/boot/config-$KERNELRELEASE
     97	bzip2 -9 --keep vmlinux
     98	mv vmlinux.bz2 %{buildroot}/boot/vmlinux-$KERNELRELEASE.bz2
     99$S$M	rm -f %{buildroot}/lib/modules/$KERNELRELEASE/build
    100$S$M	rm -f %{buildroot}/lib/modules/$KERNELRELEASE/source
    101$S$M	mkdir -p %{buildroot}/usr/src/kernels/$KERNELRELEASE
    102$S$M	tar cf - $EXCLUDES . | tar xf - -C %{buildroot}/usr/src/kernels/$KERNELRELEASE
    103$S$M	cd %{buildroot}/lib/modules/$KERNELRELEASE
    104$S$M	ln -sf /usr/src/kernels/$KERNELRELEASE build
    105$S$M	ln -sf /usr/src/kernels/$KERNELRELEASE source
    106
    107	%clean
    108	rm -rf %{buildroot}
    109
    110	%post
    111	if [ -x /sbin/installkernel -a -r /boot/vmlinuz-$KERNELRELEASE -a -r /boot/System.map-$KERNELRELEASE ]; then
    112	cp /boot/vmlinuz-$KERNELRELEASE /boot/.vmlinuz-$KERNELRELEASE-rpm
    113	cp /boot/System.map-$KERNELRELEASE /boot/.System.map-$KERNELRELEASE-rpm
    114	rm -f /boot/vmlinuz-$KERNELRELEASE /boot/System.map-$KERNELRELEASE
    115	/sbin/installkernel $KERNELRELEASE /boot/.vmlinuz-$KERNELRELEASE-rpm /boot/.System.map-$KERNELRELEASE-rpm
    116	rm -f /boot/.vmlinuz-$KERNELRELEASE-rpm /boot/.System.map-$KERNELRELEASE-rpm
    117	fi
    118
    119	%preun
    120	if [ -x /sbin/new-kernel-pkg ]; then
    121	new-kernel-pkg --remove $KERNELRELEASE --rminitrd --initrdfile=/boot/initramfs-$KERNELRELEASE.img
    122	elif [ -x /usr/bin/kernel-install ]; then
    123	kernel-install remove $KERNELRELEASE
    124	fi
    125
    126	%postun
    127	if [ -x /sbin/update-bootloader ]; then
    128	/sbin/update-bootloader --remove $KERNELRELEASE
    129	fi
    130
    131	%files
    132	%defattr (-, root, root)
    133$M	/lib/modules/$KERNELRELEASE
    134$M	%exclude /lib/modules/$KERNELRELEASE/build
    135$M	%exclude /lib/modules/$KERNELRELEASE/source
    136	/boot/*
    137
    138	%files headers
    139	%defattr (-, root, root)
    140	/usr/include
    141$S$M
    142$S$M	%files devel
    143$S$M	%defattr (-, root, root)
    144$S$M	/usr/src/kernels/$KERNELRELEASE
    145$S$M	/lib/modules/$KERNELRELEASE/build
    146$S$M	/lib/modules/$KERNELRELEASE/source
    147EOF