# # spec file for package kernel-obs-build # # Copyright (c) @YEAR@ SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # # needsrootforbuild #!BuildIgnore: post-build-checks %define patchversion @PATCHVERSION@ %define variant @VARIANT@%{nil} %include %_sourcedir/kernel-spec-macros Name: kernel-obs-build BuildRequires: coreutils BuildRequires: device-mapper BuildRequires: util-linux %if 0%{?suse_version} BuildRequires: kernel-default %define kernel_flavor -default %endif %if 0%{?rhel_version} BuildRequires: kernel %define kernel_flavor "" %endif %ifarch %ix86 x86_64 BuildRequires: kernel-xen %endif ExclusiveArch: @ARCHS@ %if 0%{?suse_version} < 1315 # For SLE 11 BuildRequires: mkinitrd BuildRequires: perl-Bootloader BuildRoot: %{_tmppath}/%{name}-%{version}-build %else BuildRequires: dracut %endif Summary: package kernel and initrd for OBS VM builds License: GPL-2.0 Group: SLES Version: @RPMVERSION@ %if 0%{?is_kotd} Release: .g@COMMIT@ %else Release: @RELEASE@ %endif %description This package is repackaging already compiled kernels to make them usable inside of Open Build Service (OBS) VM builds. An initrd with some basic kernel modules is generated as well, but further kernel modules can be loaded during build when installing the kernel package. %prep %build mkdir -p /usr/lib/dracut/modules.d/80obs cat > /usr/lib/dracut/modules.d/80obs/module-setup.sh < /usr/lib/dracut/modules.d/80obs/setup_obs.sh <> /usr/lib/dracut/modules.d/80obs/setup_obs.sh done ROOT="" [ -e "/dev/vda" ] && ROOT="-d /dev/vda" [ -e /dev/hda1 ] && ROOT="-d /dev/hda1" # for xen builds %define kernel_name vmlinu? %ifarch s390 s390x %define kernel_name image %endif %ifarch %arm %define kernel_name zImage %endif %ifarch aarch64 %define kernel_name Image %endif %if 0%{?suse_version} && 0%{?suse_version} < 1315 # For SLE 11 /sbin/mkinitrd $ROOT \ -m "$KERNEL_MODULES" \ -k /boot/%{kernel_name}-*-default -M /boot/System.map-*-default -i /tmp/initrd.kvm -B %ifarch %ix86 x86_64 /sbin/mkinitrd $ROOT \ -m "$KERNEL_MODULES" \ -k /boot/vmlinuz-xen -M /boot/System.map-*-xen -i /tmp/initrd.xen %endif %else dracut --host-only --drivers="$KERNEL_MODULES" --force /tmp/initrd.kvm `echo /boot/%{kernel_name}-*%{kernel_flavor} | sed -n -e 's,[^-]*-\(.*'%{kernel_flavor}'\),\1,p'` %ifarch %ix86 x86_64 dracut --host-only --drivers="$KERNEL_MODULES xenblk" --force /tmp/initrd.xen `echo /boot/%{kernel_name}-*-xen | sed -n -e 's,[^-]*-\(.*-xen\),\1,p'` %endif %endif #cleanup rm -rf /usr/lib/dracut/modules.d/80obs %install install -d -m 0755 $RPM_BUILD_ROOT cp -v /boot/%{kernel_name}-*%{kernel_flavor} $RPM_BUILD_ROOT/.build.kernel.kvm cp -v /tmp/initrd.kvm $RPM_BUILD_ROOT/.build.initrd.kvm %ifarch %ix86 x86_64 cp -v /boot/%{kernel_name}-*-xen $RPM_BUILD_ROOT/.build.kernel.xen cp -v /tmp/initrd.xen $RPM_BUILD_ROOT/.build.initrd.xen %endif #inform worker about arch #see obs-build commit e47399d738e51 uname -m > $RPM_BUILD_ROOT/.build.hostarch.kvm %files %defattr(-,root,root) /.build.kernel.* /.build.initrd.* /.build.hostarch.* %changelog