All,
Wanted to mention bug and give bugfix for bad code in i40e-1.5.18/i40e.spec
file.
Here is the the bad code:
FL="/usr/share/doc/i40e-1.5.18/file.list
/usr/share/doc/i40e/file.list"
FL=$(for d in $FL ; do if [ -e $d ]; then echo $d; break; fi; done)
...
for k in $(sed 's/\/lib\/modules\/\([0-9a-zA-Z_\.\-\+]*\).*/\1/' $FL) ;
do
d_drivers=/lib/modules/$k
d_usr=/usr/local/share/i40e/$k
mkdir -p $d_usr
cd $d_drivers; find . -name i40e.*o -exec cp --parents {} $d_usr \;
-exec rm -f {} \;
....
done
Specifically, that sed pattern is wrong; it doesn't match dashes.
Consider for example a i40e.ko.new deposited via RPM payload as:
/lib/modules/3.10.0-229.el7.x86_64/updates/drivers/net/ethernet/intel/i40e/i40e.ko.new
What that sed command is wanting to do is set k == 3.10.0-229.el7.x86_64.
What it really does is set k == 3.10.0. And then d_drivers ==
/lib/modules/3.10.0
Then it does this:
cd $d_drivers; find . -name i40e.*o -exec cp --parents {} $d_usr \; -exec
rm -f {} \;
The first part fails, because it translates to cd /lib/modules/3.10.0 , which
doesn't exist. So it does a find from /, which scours all NAS shares, etc.
Here's correct sed code that matches dashes:
for k in $(sed 's/\/lib\/modules\/\([-0-9a-zA-Z_\.\+]*\).*/\1/'
$FL) ;
and then all the %post section code works.
Spike White
------------------------------------------------------------------------------
Attend Shape: An AT&T Tech Expo July 15-16. Meet us at AT&T Park in San
Francisco, CA to explore cutting-edge tech and listen to tech luminaries
present their vision of the future. This family event has something for
everyone, including kids. Get more information and register today.
http://sdm.link/attshape
_______________________________________________
E1000-devel mailing list
E1000-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel® Ethernet, visit
http://communities.intel.com/community/wired