⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 e1000.spec

📁 e1000最新官方源码
💻 SPEC
字号:
Name: e1000Summary: Intel(R) PRO/1000 driver for LinuxVersion: 7.3.15Release: 1Source: %{name}-%{version}.tar.gzVendor: Intel CorporationLicense: GPLExclusiveOS: linuxGroup: System Environment/KernelProvides: %{name}URL: http://support.intel.com/support/go/linux/e1000.htmBuildRoot: %{_tmppath}/%{name}-%{version}-root# macros for finding system files to update at install time (pci.ids, pcitable)%define find() %(for f in %*; do if [ -e $f ]; then echo $f; break; fi; done)%define _pciids   /usr/share/pci.ids        /usr/share/hwdata/pci.ids%define _pcitable /usr/share/kudzu/pcitable /usr/share/hwdata/pcitable /dev/null%define pciids    %find %{_pciids}%define pcitable  %find %{_pcitable}Requires: kernel, fileutils, findutils, gawk, bash%descriptionThis package contains the Linux driver for theIntel(R) PRO/1000 Family of Server Adapters.%prep%setup%buildmkdir -p %{buildroot}KV=$(uname -r)KA=%{_arch}KV_BASE=$(echo $KV | sed '{ s/hugemem//g; s/smp//g; s/enterprise//g; }' )if [ -e /usr/src/kernels ] && [ $(echo $KV_BASE | grep "^2.6") ]; then	if [ -e /etc/redhat-release ]; then		KSP=$(ls /lib/modules | grep $KV_BASE)		for K in $KSP ; do			if [ $KA == "x86_64" ] && \			   [ $(echo $K | grep hugemem) ]; then				# Include path for x86_64 hugemem is broken				# on RHEL4				continue			fi			make -C src clean			make -C src KSP=/lib/modules/$K/build \				INSTALL_MOD_PATH=%{buildroot} \				KVERSION=$k \				MANDIR=%{_mandir} \				CFLAGS_EXTRA="$CFLAGS_EXTRA" install		done	else		make -C src clean		make -C src INSTALL_MOD_PATH=%{buildroot} \			MANDIR=%{_mandir} install	fielse	SwitchRHKernel () {		CFLAGS_EXTRA=""		for K in $2 ; do			if [ $K == $1 ] ; then				CFLAGS_EXTRA="$CFLAGS_EXTRA -D__BOOT_KERNEL_$K=1"			else				CFLAGS_EXTRA="$CFLAGS_EXTRA -D__BOOT_KERNEL_$K=0"			fi		done	}	KSP="/lib/modules/$KV/build	     /usr/src/linux-$KV	     /usr/src/linux-$(echo $KV | sed 's/-.*//')	     /usr/src/kernel-headers-$KV	     /usr/src/kernel-source-$KV	     /usr/src/linux-$(echo $KV | sed 's/\([0-9]*\.[0-9]*\)\..*/\1/')	     /usr/src/linux"	KSRC=$(for d in $KSP ; do [ -e $d/include/linux ] && echo $d; echo;  done)	KSRC=$(echo $KSRC | awk '{ print $1 }')	if [ -e $KSRC/include/linux/rhconfig.h ] ; then		RHKL=$(grep 'BOOT_KERNEL_.* [01]' /boot/kernel.h |		       sed 's/.*BOOT_KERNEL_\(.*\) [01]/\1/')		if echo $RHKL | grep BIGMEM		then			RHKL=$(echo $RHKL | sed 's/ENTERPRISE//')		fi		if echo $RHKL | grep HUGEMEM		then			RHKL=$(echo $RHKL | sed 's/BIGMEM//')		fi		for K in $RHKL ; do			SwitchRHKernel $K "$RHKL"			make -C src clean			if [ $KA == "x86_64" ] ; then				CFLAGS_EXTRA="$CFLAGS_EXTRA -D__MODULE_KERNEL_x86_64=0 -D__MODULE_KERNEL_ia32e=1"			fi			make -C src INSTALL_MOD_PATH=%{buildroot} \				MANDIR=%{_mandir} CFLAGS_EXTRA="$CFLAGS_EXTRA" install		done	else		make -C src clean		make -C src INSTALL_MOD_PATH=%{buildroot} MANDIR=%{_mandir} install	fifi%install# Append .new to driver name to avoid conflict with kernel RPMcd %{buildroot}find lib -name "e1000.*o" -exec mv {} {}.new \; \         -fprintf %{_builddir}/%{name}-%{version}/file.list "/%p.new\n"%cleanrm -rf %{buildroot}%files -f %{_builddir}/%{name}-%{version}/file.list%defattr(-,root,root)%{_mandir}/man7/e1000.7.gz%doc COPYING%doc README%doc ldistrib.txt%doc file.list%doc pci.updates%postFL="%{_docdir}/%{name}-%{version}/file.list    %{_docdir}/%{name}/file.list"FL=$(for d in $FL ; do if [ -e $d ]; then echo $d; break; fi;  done)if [ -d /usr/local/lib/%{name} ]; then	rm -rf /usr/local/lib/%{name}fiif [ -d /usr/local/share/%{name} ]; then	rm -rf /usr/local/share/%{name}fi# Save old drivers (aka .o and .o.gz)echo "original pci.ids saved in /usr/local/share/%{name}";if [ "%{pcitable}" != "/dev/null" ]; then	echo "original pcitable saved in /usr/local/share/%{name}";fifor k in $(sed 's/\/lib\/modules\/\([0-9a-zA-Z_\.\-]*\).*/\1/' $FL) ; do	d_drivers=/lib/modules/$k	d_usr=/usr/local/share/%{name}/$k	mkdir -p $d_usr	cd $d_drivers; find . -name %{name}.*o -exec cp --parents {} $d_usr \; -exec rm -f {} \;	cd $d_drivers; find . -name %{name}_*.*o -exec cp --parents {} $d_usr \; -exec rm -f {} \;	cd $d_drivers; find . -name %{name}.*o.gz -exec cp --parents {} $d_usr \; -exec rm -f {} \;	cd $d_drivers; find . -name %{name}_*.*o.gz -exec cp --parents {} $d_usr \; -exec rm -f {} \;	cp --parents %{pciids} /usr/local/share/%{name}/	if [ "%{pcitable}" != "/dev/null" ]; then		cp --parents %{pcitable} /usr/local/share/%{name}/	fidone# Add driver linkfor f in $(sed 's/\.new$//' $FL) ; do	ln -f $f.new $f done# Check if kernel version rpm was built on IS the same as running kernelBK_LIST=$(sed 's/\/lib\/modules\/\([0-9a-zA-Z_\.\-]*\).*/\1/' $FL)MATCH=nofor i in $BK_LISTdo	if [ $(uname -r) == $i ] ; then		MATCH=yes		break	fidoneif [ $MATCH == no ] ; then	echo -n "WARNING: Running kernel is $(uname -r).  "	echo -n "RPM supports kernels (  "	for i in $BK_LIST	do		echo -n "$i  "	done	echo ")"fiLD="%{_docdir}/%{name}";if [ -d %{_docdir}/%{name}-%{version} ]; then	LD="%{_docdir}/%{name}-%{version}";fi#Yes, this really needs bashbash -s %{pciids} \	%{pcitable} \	$LD/pci.updates \	$LD/pci.ids.new \	$LD/pcitable.new \	%{name} \<<"END"#! /bin/bash# $1 = system pci.ids file to update# $2 = system pcitable file to update# $3 = file with new entries in pci.ids file format# $4 = pci.ids output file# $5 = pcitable output file# $6 = driver name for use in pcitable fileexec 3<$1exec 4<$2exec 5<$3exec 6>$4exec 7>$5driver=$6IFS=# pattern matching stringsID="[[:xdigit:]][[:xdigit:]][[:xdigit:]][[:xdigit:]]"VEN="${ID}*"DEV="	${ID}*"SUB="		${ID}*"TABLE_DEV="0x${ID}	0x${ID}	\"*"TABLE_SUB="0x${ID}	0x${ID}	0x${ID}	0x${ID}	\"*"line=table_line=ids_in=table_in=vendor=device=ids_device=table_device=subven=ids_subven=table_subven=subdev=ids_subdev=table_subdev=ven_str=dev_str=sub_str=# force a sub-shell to fork with a new stdin# this is needed if the shell is reading these instructions from stdinwhile truedo	# get the first line of each data file to jump start things	exec 0<&3	read -r ids_in	if [ "$2" != "/dev/null" ];then	exec 0<&4	read -r table_in	fi	# outer loop reads lines from the updates file	exec 0<&5	while read -r line	do		# vendor entry		if [[ $line == $VEN ]]		then			vendor=0x${line:0:4}			ven_str=${line#${line:0:6}}			# add entry to pci.ids			exec 0<&3			exec 1>&6			while [[ $ids_in != $VEN ||				 0x${ids_in:0:4} < $vendor ]]			do				echo "$ids_in"				read -r ids_in			done			echo "$line"			if [[ 0x${ids_in:0:4} == $vendor ]]			then				read -r ids_in			fi		# device entry		elif [[ $line == $DEV ]]		then			device=`echo ${line:1:4} | tr [:upper:] [:lower:]`			table_device=0x${line:1:4}			dev_str=${line#${line:0:7}}			ids_device=`echo ${ids_in:1:4} | tr [:upper:] [:lower:]`			table_line="$vendor	$table_device	\"$driver\"	\"$ven_str|$dev_str\""			# add entry to pci.ids			exec 0<&3			exec 1>&6			while [[ $ids_in != $DEV ||				 $ids_device < $device ]]			do				if [[ $ids_in == $VEN ]]				then					break				fi				if [[ $ids_device != ${ids_in:1:4} ]]				then					echo "${ids_in:0:1}$ids_device${ids_in#${ids_in:0:5}}"				else					echo "$ids_in"				fi				read -r ids_in				ids_device=`echo ${ids_in:1:4} | tr [:upper:] [:lower:]`			done			if [[ $device != ${line:1:4} ]]			then				echo "${line:0:1}$device${line#${line:0:5}}"			else				echo "$line"			fi			if [[ $ids_device == $device ]]			then				read -r ids_in			fi			# add entry to pcitable			if [ "$2" != "/dev/null" ];then			exec 0<&4			exec 1>&7			while [[ $table_in != $TABLE_DEV ||				 ${table_in:0:6} < $vendor ||				 ( ${table_in:0:6} == $vendor &&				   ${table_in:7:6} < $table_device ) ]]			do				echo "$table_in"				read -r table_in			done			echo "$table_line"			if [[ ${table_in:0:6} == $vendor &&			      ${table_in:7:6} == $table_device ]]			then				read -r table_in			fi			fi		# subsystem entry		elif [[ $line == $SUB ]]		then			subven=`echo ${line:2:4} | tr [:upper:] [:lower:]`			subdev=`echo ${line:7:4} | tr [:upper:] [:lower:]`			table_subven=0x${line:2:4}			table_subdev=0x${line:7:4}			sub_str=${line#${line:0:13}}			ids_subven=`echo ${ids_in:2:4} | tr [:upper:] [:lower:]`			ids_subdev=`echo ${ids_in:7:4} | tr [:upper:] [:lower:]`			table_line="$vendor	$table_device	$table_subven	$table_subdev	\"$driver\"	\"$ven_str|$sub_str\""			# add entry to pci.ids			exec 0<&3			exec 1>&6			while [[ $ids_in != $SUB ||				 $ids_subven < $subven ||				 ( $ids_subven == $subven && 				   $ids_subdev < $subdev ) ]]			do				if [[ $ids_in == $VEN ||				      $ids_in == $DEV ]]				then					break				fi				if [[ ! (${ids_in:2:4} == "1014" &&					 ${ids_in:7:4} == "052C") ]]				then					if [[ $ids_subven != ${ids_in:2:4} || $ids_subdev != ${ids_in:7:4} ]]					then						echo "${ids_in:0:2}$ids_subven $ids_subdev${ids_in#${ids_in:0:11}}"					else						echo "$ids_in"					fi				fi				read -r ids_in				ids_subven=`echo ${ids_in:2:4} | tr [:upper:] [:lower:]`				ids_subdev=`echo ${ids_in:7:4} | tr [:upper:] [:lower:]`			done			if [[ $subven != ${line:2:4} || $subdev != ${line:7:4} ]]			then				echo "${line:0:2}$subven $subdev${line#${line:0:11}}"			else				echo "$line"			fi			if [[ $ids_subven == $subven  &&			      $ids_subdev == $subdev ]]			then				read -r ids_in			fi			# add entry to pcitable			if [ "$2" != "/dev/null" ];then			exec 0<&4			exec 1>&7			while [[ $table_in != $TABLE_SUB ||				 ${table_in:14:6} < $table_subven ||				 ( ${table_in:14:6} == $table_subven &&				   ${table_in:21:6} < $table_subdev ) ]]			do				if [[ $table_in == $TABLE_DEV ]]				then					break				fi				if [[ ! (${table_in:14:6} == "0x1014" &&					 ${table_in:21:6} == "0x052C") ]]				then					echo "$table_in"				fi				read -r table_in			done			echo "$table_line"			if [[ ${table_in:14:6} == $table_subven &&			      ${table_in:21:6} == $table_subdev ]]			then				read -r table_in			fi			fi		fi		exec 0<&5	done	# print the remainder of the original files	exec 0<&3	exec 1>&6	echo "$ids_in"	while read -r ids_in	do		echo "$ids_in"	done	if [ "$2" != "/dev/null" ];then	exec 0>&4	exec 1>&7	echo "$table_in"	while read -r table_in	do		echo "$table_in"	done	fi	breakdone <&5exec 3<&-exec 4<&-exec 5<&-exec 6>&-exec 7>&-ENDmv -f $LD/pci.ids.new  %{pciids}if [ "%{pcitable}" != "/dev/null" ]; thenmv -f $LD/pcitable.new %{pcitable}fiuname -r | grep BOOT || /sbin/depmod -a > /dev/null 2>&1 || true%preun# If doing RPM un-installif [ $1 -eq 0 ] ; then	FL="%{_docdir}/%{name}-%{version}/file.list    		%{_docdir}/%{name}/file.list"	FL=$(for d in $FL ; do if [ -e $d ]; then echo $d; break; fi;  done)	# Remove driver link	for f in $(sed 's/\.new$//' $FL) ; do		rm -f $f	done	# Restore old drivers	if [ -d /usr/local/share/%{name} ]; then		cd /usr/local/share/%{name}; find . -name '%{name}.*o*' -exec cp --parents {} /lib/modules/ \;		cd /usr/local/share/%{name}; find . -name '%{name}_*.*o*' -exec cp --parents {} /lib/modules/ \;		rm -rf /usr/local/share/%{name}	fifi%postununame -r | grep BOOT || /sbin/depmod -a > /dev/null 2>&1 || true

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -