#!/bin/sh
#
#	Output a RPM spec file to generate intel-i915 dkms source
#

PKG_NAME="intel-i915-dkms-prerelease"
PKG_VER="1.0"
REL_NAME="1"
REL_TYPE=""
DEP_PKG_NAME=""
BUILD_TYPE=""
CUSTOM_KERN_ID=""

helpFunction()
{
	echo ""
	echo "Usage: $0 -n packagename -v packageversion -r releaseversion -p prerelease/opensource -s buildversion"
	echo -e "\t-n packagename"
	echo -e "\t-v packageversion"
	echo -e "\t-r releaseversion"
	echo -e "\t-p Release Type : prerelease/opensource"
	echo -e "\t-s buildversion"
	echo -e "\t-t custom kernel id"
	exit 1
}

while getopts "n:v:r:p:s:t:" opt
do
	case "$opt" in
		n ) PKG_NAME="$OPTARG" ;;
		v ) PKG_VER="$OPTARG" ;;
		r ) REL_NAME="$OPTARG" ;;
		p ) REL_TYPE="$OPTARG" ;;
		s ) BUILD_TYPE="$OPTARG" ;;
		t ) CUSTOM_KERN_ID="$OPTARG" ;;
		? ) helpFunction ;; # Print helpFunction
	esac
done

if [ "$BUILD_TYPE" != "nodrm" ]; then
       NO_DRM=
else
       NO_DRM=DEL
fi

if [ "$REL_TYPE" = "opensource" ]; then
	DEP_PKG_NAME="intel-dmabuf-dkms"
else
	DEP_PKG_NAME="intel-dmabuf-dkms-$REL_TYPE"
fi

sed -e '/^DEL/d' -e 's/^\t*//' <<EOF
	%define module $PKG_NAME
	%define version $PKG_VER
	%define release $REL_NAME
$NO_DRM	%define deppkg $DEP_PKG_NAME
	%define _build_id_links none
	
	Summary: I915 Backports Module DKMS Package
	Name: %{module}
	Version: %{version}
	Release: %{release}
	License: GPL
	Group: System Environment/Base
	BuildArch: x86_64
	Vendor: Intel
	Provides: %{module}
	Packager: linux-graphics@intel.com
	Requires: dkms gcc bash sed
$NO_DRM	Requires: %{deppkg} = %{version}
	Obsoletes: intel-platform-vsec-dkms intel-platform-cse-dkms
	# There is no Source# line for dkms.conf since it has been placed
	# into the source tarball of SOURCE0
	Source0: %{module}-%{version}-src.tar.gz
	BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root/

	%description
	Out of tree i915 driver for Redhat Kernel Version 4.18.0.
	Installed as dkms module.

	%prep
	rm -rf %{module}-%{version}
	mkdir %{module}-%{version}
	cd %{module}-%{version}
	tar xvzf \$RPM_SOURCE_DIR/%{module}-%{version}-src.tar.gz

	%install
	if [ "%{buildroot}" != "/" ]; then
		rm -rf %{buildroot}
	fi
	mkdir -p %{buildroot}/usr/src/%{module}-%{version}/
	cp -rf %{module}-%{version}/* %{buildroot}/usr/src/%{module}-%{version}

	%clean
	if [ "%{buildroot}" != "/" ]; then
		rm -rf %{buildroot}
	fi

	%files
	%defattr (-, root, root)
	/usr/src/%{module}-%{version}/

	%pre

	%post
	/usr/sbin/dkms add -m %module -v %version --rpm_safe_upgrade
	/usr/sbin/dkms build --force -m %module -v %version
	/usr/sbin/dkms install --force -m %module -v %version
	echo -e
	echo -e "Creating initramfs for :\$(uname -r)"
	if [ -e /boot/vmlinuz-\$(uname -r) ] && [ -e /sbin/depmod ] && [ -x %{_bindir}/dracut ]; then
		/sbin/depmod -a "\$(uname -r)"
		%{_bindir}/dracut -f --kver "\$(uname -r)"
	else
		echo -e "Unable to create initramfs for :\$(uname -r)"
	fi
	exit 0

	%preun
	echo -e
	echo -e "Uninstall of %{module} module (version %{version}) beginning:"
	/usr/sbin/dkms remove -m %{module} -v %{version} --all --rpm_safe_upgrade
	echo -e "Creating initramfs for :\$(uname -r)"
	if [ -e /boot/vmlinuz-\$(uname -r) ] && [ -e /sbin/depmod ] && [ -x %{_bindir}/dracut ]; then
		/sbin/depmod -a "\$(uname -r)"
		%{_bindir}/dracut -f --kver "\$(uname -r)"
	else
		echo -e "Unable to create initramfs for :\$(uname -r)"
	fi
	exit 0
EOF

