Linux Audio

Check our new training course

Loading...
v6.2
  1#!/bin/sh
  2#
  3#	Output a simple RPM spec file.
  4#	This version assumes a minimum of RPM 4.13
  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
 36test -n "$LOCALVERSION" && MAKE="$MAKE LOCALVERSION=$LOCALVERSION"
 
 
 
 
 
 
 
 
 
 37
 38# We can label the here-doc lines for conditional output to the spec file
 39#
 40# Labels:
 41#  $S: this line is enabled only when building source package
 42#  $M: this line is enabled only when CONFIG_MODULES is enabled
 43sed -e '/^DEL/d' -e 's/^\t*//' <<EOF
 44	Name: kernel
 45	Summary: The Linux Kernel
 46	Version: $__KERNELRELEASE
 47	Release: $(cat .version 2>/dev/null || echo 1)
 48	License: GPL
 49	Group: System Environment/Kernel
 50	Vendor: The Linux Community
 51	URL: https://www.kernel.org
 52$S	Source: kernel-$__KERNELRELEASE.tar.gz
 53	Provides: $PROVIDES
 54$S	BuildRequires: bc binutils bison dwarves
 55$S	BuildRequires: (elfutils-libelf-devel or libelf-devel) flex
 56$S	BuildRequires: gcc make openssl openssl-devel perl python3 rsync
 57
 58	# $UTS_MACHINE as a fallback of _arch in case
 59	# /usr/lib/rpm/platform/*/macros was not included.
 60	%define _arch %{?_arch:$UTS_MACHINE}
 61	%define __spec_install_post /usr/lib/rpm/brp-compress || :
 62	%define debug_package %{nil}
 63
 64	%description
 65	The Linux Kernel, the operating system core itself
 66
 67	%package headers
 68	Summary: Header files for the Linux kernel for use by glibc
 69	Group: Development/System
 70	Obsoletes: kernel-headers
 71	Provides: kernel-headers = %{version}
 72	%description headers
 73	Kernel-headers includes the C header files that specify the interface
 74	between the Linux kernel and userspace libraries and programs.  The
 75	header files define structures and constants that are needed for
 76	building most standard programs and are also needed for rebuilding the
 77	glibc package.
 78
 79$S$M	%package devel
 80$S$M	Summary: Development package for building kernel modules to match the $__KERNELRELEASE kernel
 81$S$M	Group: System Environment/Kernel
 82$S$M	AutoReqProv: no
 83$S$M	%description -n kernel-devel
 84$S$M	This package provides kernel headers and makefiles sufficient to build modules
 85$S$M	against the $__KERNELRELEASE kernel package.
 86$S$M
 87$S	%prep
 88$S	%setup -q
 89$S	rm -f scripts/basic/fixdep scripts/kconfig/conf
 90$S	rm -f tools/objtool/{fixdep,objtool}
 91$S
 92$S	%build
 93$S	$MAKE %{?_smp_mflags} KBUILD_BUILD_VERSION=%{release}
 94$S
 95	%install
 96	mkdir -p %{buildroot}/boot
 97	%ifarch ia64
 98	mkdir -p %{buildroot}/boot/efi
 99	cp \$($MAKE -s image_name) %{buildroot}/boot/efi/vmlinuz-$KERNELRELEASE
100	ln -s efi/vmlinuz-$KERNELRELEASE %{buildroot}/boot/
101	%else
102	cp \$($MAKE -s image_name) %{buildroot}/boot/vmlinuz-$KERNELRELEASE
103	%endif
104$M	$MAKE %{?_smp_mflags} INSTALL_MOD_PATH=%{buildroot} modules_install
105	$MAKE %{?_smp_mflags} INSTALL_HDR_PATH=%{buildroot}/usr headers_install
106	cp System.map %{buildroot}/boot/System.map-$KERNELRELEASE
107	cp .config %{buildroot}/boot/config-$KERNELRELEASE
108$S$M	rm -f %{buildroot}/lib/modules/$KERNELRELEASE/build
109$S$M	rm -f %{buildroot}/lib/modules/$KERNELRELEASE/source
110$S$M	mkdir -p %{buildroot}/usr/src/kernels/$KERNELRELEASE
111$S$M	tar cf - $EXCLUDES . | tar xf - -C %{buildroot}/usr/src/kernels/$KERNELRELEASE
112$S$M	cd %{buildroot}/lib/modules/$KERNELRELEASE
113$S$M	ln -sf /usr/src/kernels/$KERNELRELEASE build
114$S$M	ln -sf /usr/src/kernels/$KERNELRELEASE source
115
116	%clean
117	rm -rf %{buildroot}
118
119	%post
120	if [ -x /sbin/installkernel -a -r /boot/vmlinuz-$KERNELRELEASE -a -r /boot/System.map-$KERNELRELEASE ]; then
121	cp /boot/vmlinuz-$KERNELRELEASE /boot/.vmlinuz-$KERNELRELEASE-rpm
122	cp /boot/System.map-$KERNELRELEASE /boot/.System.map-$KERNELRELEASE-rpm
123	rm -f /boot/vmlinuz-$KERNELRELEASE /boot/System.map-$KERNELRELEASE
124	/sbin/installkernel $KERNELRELEASE /boot/.vmlinuz-$KERNELRELEASE-rpm /boot/.System.map-$KERNELRELEASE-rpm
125	rm -f /boot/.vmlinuz-$KERNELRELEASE-rpm /boot/.System.map-$KERNELRELEASE-rpm
126	fi
127
128	%preun
129	if [ -x /sbin/new-kernel-pkg ]; then
130	new-kernel-pkg --remove $KERNELRELEASE --rminitrd --initrdfile=/boot/initramfs-$KERNELRELEASE.img
131	elif [ -x /usr/bin/kernel-install ]; then
132	kernel-install remove $KERNELRELEASE
133	fi
134
135	%postun
136	if [ -x /sbin/update-bootloader ]; then
137	/sbin/update-bootloader --remove $KERNELRELEASE
138	fi
139
140	%files
141	%defattr (-, root, root)
142$M	/lib/modules/$KERNELRELEASE
143$M	%exclude /lib/modules/$KERNELRELEASE/build
144$M	%exclude /lib/modules/$KERNELRELEASE/source
145	/boot/*
146
147	%files headers
148	%defattr (-, root, root)
149	/usr/include
150$S$M
151$S$M	%files devel
152$S$M	%defattr (-, root, root)
153$S$M	/usr/src/kernels/$KERNELRELEASE
154$S$M	/lib/modules/$KERNELRELEASE/build
155$S$M	/lib/modules/$KERNELRELEASE/source
156EOF
v3.1
  1#!/bin/sh
  2#
  3#	Output a simple RPM spec file that uses no fancy features requiring
  4#	RPM v4. This is intended to work with any RPM distro.
  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	PREBUILT=true
 
 15else
 16	PREBUILT=false
 17fi
 18
 19# starting to output the spec
 20if [ "`grep CONFIG_DRM=y .config | cut -f2 -d\=`" = "y" ]; then
 
 
 
 
 
 21	PROVIDES=kernel-drm
 22fi
 23
 24PROVIDES="$PROVIDES kernel-$KERNELRELEASE"
 25__KERNELRELEASE=`echo $KERNELRELEASE | sed -e "s/-/_/g"`
 
 
 
 26
 27echo "Name: kernel"
 28echo "Summary: The Linux Kernel"
 29echo "Version: $__KERNELRELEASE"
 30# we need to determine the NEXT version number so that uname and
 31# rpm -q will agree
 32echo "Release: `. $srctree/scripts/mkversion`"
 33echo "License: GPL"
 34echo "Group: System Environment/Kernel"
 35echo "Vendor: The Linux Community"
 36echo "URL: http://www.kernel.org"
 37
 38if ! $PREBUILT; then
 39echo "Source: kernel-$__KERNELRELEASE.tar.gz"
 40fi
 41
 42echo "BuildRoot: %{_tmppath}/%{name}-%{PACKAGE_VERSION}-root"
 43echo "Provides: $PROVIDES"
 44echo "%define __spec_install_post /usr/lib/rpm/brp-compress || :"
 45echo "%define debug_package %{nil}"
 46echo ""
 47echo "%description"
 48echo "The Linux Kernel, the operating system core itself"
 49echo ""
 50echo "%package headers"
 51echo "Summary: Header files for the Linux kernel for use by glibc"
 52echo "Group: Development/System"
 53echo "Obsoletes: kernel-headers"
 54echo "Provides: kernel-headers = %{version}"
 55echo "%description headers"
 56echo "Kernel-headers includes the C header files that specify the interface"
 57echo "between the Linux kernel and userspace libraries and programs.  The"
 58echo "header files define structures and constants that are needed for"
 59echo "building most standard programs and are also needed for rebuilding the"
 60echo "glibc package."
 61echo ""
 62
 63if ! $PREBUILT; then
 64echo "%prep"
 65echo "%setup -q"
 66echo ""
 67fi
 68
 69echo "%build"
 70
 71if ! $PREBUILT; then
 72echo "make clean && make %{?_smp_mflags}"
 73echo ""
 74fi
 75
 76echo "%install"
 77echo "%ifarch ia64"
 78echo 'mkdir -p $RPM_BUILD_ROOT/boot/efi $RPM_BUILD_ROOT/lib/modules'
 79echo 'mkdir -p $RPM_BUILD_ROOT/lib/firmware'
 80echo "%else"
 81echo 'mkdir -p $RPM_BUILD_ROOT/boot $RPM_BUILD_ROOT/lib/modules'
 82echo 'mkdir -p $RPM_BUILD_ROOT/lib/firmware'
 83echo "%endif"
 84
 85echo 'INSTALL_MOD_PATH=$RPM_BUILD_ROOT make %{?_smp_mflags} KBUILD_SRC= modules_install'
 86echo "%ifarch ia64"
 87echo 'cp $KBUILD_IMAGE $RPM_BUILD_ROOT'"/boot/efi/vmlinuz-$KERNELRELEASE"
 88echo 'ln -s '"efi/vmlinuz-$KERNELRELEASE" '$RPM_BUILD_ROOT'"/boot/"
 89echo "%else"
 90echo "%ifarch ppc64"
 91echo "cp vmlinux arch/powerpc/boot"
 92echo "cp arch/powerpc/boot/"'$KBUILD_IMAGE $RPM_BUILD_ROOT'"/boot/vmlinuz-$KERNELRELEASE"
 93echo "%else"
 94echo 'cp $KBUILD_IMAGE $RPM_BUILD_ROOT'"/boot/vmlinuz-$KERNELRELEASE"
 95echo "%endif"
 96echo "%endif"
 97
 98echo 'make %{?_smp_mflags} INSTALL_HDR_PATH=$RPM_BUILD_ROOT/usr headers_install'
 99echo 'cp System.map $RPM_BUILD_ROOT'"/boot/System.map-$KERNELRELEASE"
100
101echo 'cp .config $RPM_BUILD_ROOT'"/boot/config-$KERNELRELEASE"
102
103echo "%ifnarch ppc64"
104echo 'cp vmlinux vmlinux.orig'
105echo 'bzip2 -9 vmlinux'
106echo 'mv vmlinux.bz2 $RPM_BUILD_ROOT'"/boot/vmlinux-$KERNELRELEASE.bz2"
107echo 'mv vmlinux.orig vmlinux'
108echo "%endif"
109
110echo ""
111echo "%clean"
112echo 'rm -rf $RPM_BUILD_ROOT'
113echo ""
114echo "%files"
115echo '%defattr (-, root, root)'
116echo "%dir /lib/modules"
117echo "/lib/modules/$KERNELRELEASE"
118echo "/lib/firmware"
119echo "/boot/*"
120echo ""
121echo "%files headers"
122echo '%defattr (-, root, root)'
123echo "/usr/include"
124echo ""