View | Details | Raw Unified | Return to bug 244547
Collapse All | Expand All

(-)files/nvidia.sh (-15 / +35 lines)
Lines 167-188 Link Here
167
167
168
NVIDIA=${NV}
168
NVIDIA=${NV}
169
NV=`echo ${NV} | cut -f 1 -d _ | cut -f 1 -d ,`
169
NV=`echo ${NV} | cut -f 1 -d _ | cut -f 1 -d ,`
170
NVmajor=`echo $NV | sed -E 's/([0-9]+)\.[0-9]+/\1/'`
170
171
171
if [ ! -f NVIDIA-FreeBSD-x86-${NV}.tar.gz ] || !(tar -tf NVIDIA-FreeBSD-x86-${NV}.tar.gz > /dev/null 2>&1)
172
# nvidia-driver v390.132 was the last one shipping 
173
# 32-bit library package, after that only x86_64 is shipped containing 
174
# both 32-bit and 64-bit GL libraries
175
if [ ${NVmajor} -gt 390 ] ; then
176
    downloadFilename=NVIDIA-FreeBSD-x86_64-${NV}.tar.gz  
177
    downloadDirectory=FreeBSD-x86_64
178
else
179
    downloadFilename=NVIDIA-FreeBSD-x86-${NV}.tar.gz
180
    downloadDirectory=FreeBSD-x86
181
fi
182
183
if [ ! -f ${downloadFilename} ] || !(tar -tf ${downloadFilename} > /dev/null 2>&1)
172
then
184
then
173
  [ -n "$NO_FETCH" ] \
185
  [ -n "$NO_FETCH" ] \
174
    && terminate 8 "NVIDIA-FreeBSD-x86-${NV}.tar.gz unavailable"
186
    && terminate 8 "${downloadFilename} unavailable"
175
  echo "=> Downloading NVIDIA-FreeBSD-x86-${NV}.tar.gz from https://download.nvidia.com..."
187
  echo "=> Downloading ${downloadFilename} from https://download.nvidia.com..."
176
  rm -f NVIDIA-FreeBSD-x86-${NV}.tar.gz
188
  rm -f ${downloadFilename}
177
  fetch -aRr https://download.nvidia.com/XFree86/FreeBSD-x86/${NV}/NVIDIA-FreeBSD-x86-${NV}.tar.gz \
189
  fetch -aRr https://download.nvidia.com/XFree86/${downloadDirectory}/${NV}/${downloadFilename} \
178
    || terminate 2 "Failed to download NVIDIA-FreeBSD-x86-${NV}.tar.gz"
190
    || terminate 2 "Failed to download ${downloadFilename}"
179
  echo "=> Downloaded NVIDIA-FreeBSD-x86-${NV}.tar.gz"
191
  echo "=> Downloaded ${downloadFilename}"
180
  echo "Please check the following information against /usr/ports/x11/nvidia-driver/distinfo"
192
  echo "Please check the following information against /usr/ports/x11/nvidia-driver/distinfo"
181
  sha256 NVIDIA-FreeBSD-x86-${NV}.tar.gz
193
  sha256 ${downloadFilename}
182
  echo "SIZE (NVIDIA-FreeBSD-x86-${NV}.tar.gz) = `stat -f "%z" NVIDIA-FreeBSD-x86-${NV}.tar.gz`"
194
  echo "SIZE (${downloadFilename}) = `stat -f "%z" ${downloadFilename}`"
183
fi
195
fi
184
196
185
echo "=> Extracting NVIDIA-FreeBSD-x86-${NV}.tar.gz to $PREFIX/lib32..."
197
echo "=> Extracting ${downloadFilename} to $PREFIX/lib32..."
186
EXTRACT_LIST="libGL.so.1"
198
EXTRACT_LIST="libGL.so.1"
187
case $NV in
199
case $NV in
188
  195*|173*|96*|71*)
200
  195*|173*|96*|71*)
Lines 196-215 Link Here
196
EXTRACT_ARGS="--no-same-owner --no-same-permissions --strip-components 2 -C $PREFIX/lib32"
208
EXTRACT_ARGS="--no-same-owner --no-same-permissions --strip-components 2 -C $PREFIX/lib32"
197
for i in $EXTRACT_LIST
209
for i in $EXTRACT_LIST
198
do
210
do
199
  EXTRACT_ARGS="$EXTRACT_ARGS --include NVIDIA-FreeBSD-x86-${NV}/obj/$i"
211
  if [ ${NVmajor} -ge 390 ] ; then
212
      if [ $i == "libGL.so.1" ] ; then	
213
          EXTRACT_ARGS="$EXTRACT_ARGS --include NVIDIA-FreeBSD-x86_64-${NV}/obj/libglvnd/32/$i"
214
      else   
215
          EXTRACT_ARGS="$EXTRACT_ARGS --include NVIDIA-FreeBSD-x86_64-${NV}/obj/32/$i"
216
      fi
217
  else
218
          EXTRACT_ARGS="$EXTRACT_ARGS --include NVIDIA-FreeBSD-x86-${NV}/obj/$i"
219
  fi 
200
done
220
done
201
umask 0333
221
umask 0333
202
tar $EXTRACT_ARGS -xvf NVIDIA-FreeBSD-x86-${NV}.tar.gz \
222
tar $EXTRACT_ARGS -xvf ${downloadFilename} \
203
  || terminate 3 "Failed to extract NVIDIA-FreeBSD-x86-${NV}.tar.gz"
223
  || terminate 3 "Failed to extract ${downloadFilename}"
204
mkdir -m 0755 -p ${PREFIX}/lib32/.nvidia \
224
mkdir -m 0755 -p ${PREFIX}/lib32/.nvidia \
205
  || terminate 9 "Failed to create .nvidia shadow directory"
225
  || terminate 9 "Failed to create .nvidia shadow directory"
206
mv ${PREFIX}/lib32/libGL.so.1 ${PREFIX}/lib32/.nvidia/ \
226
mv ${PREFIX}/lib32/libGL.so.1 ${PREFIX}/lib32/.nvidia/ \
207
  || terminate 10 "Failed to move libGL.so.1 to .nvidia/ shadow directory"
227
  || terminate 10 "Failed to move libGL.so.1 to .nvidia/ shadow directory"
208
ln -s .nvidia/libGL.so.1 ${PREFIX}/lib32/libGL.so.1 \
228
ln -s .nvidia/libGL.so.1 ${PREFIX}/lib32/libGL.so.1 \
209
  || terminate 11 "Failed to link to .nvidia/libGL.so.1 in the shadow directory"
229
  || terminate 11 "Failed to link to .nvidia/libGL.so.1 in the shadow directory" 
210
230
211
echo "=> Cleaning up..."
231
echo "=> Cleaning up..."
212
[ -n "$NO_REMOVE_NVIDIA" ] || rm -vf NVIDIA-FreeBSD-x86-${NV}.tar.gz \
232
[ -n "$NO_REMOVE_NVIDIA" ] || rm -vf ${downloadFilename} \
213
  || terminate 6 "Failed to remove files"
233
  || terminate 6 "Failed to remove files"
214
234
215
echo "===> i386-wine-${WINE} successfully patched for nvidia-driver-${NVIDIA}"
235
echo "===> i386-wine-${WINE} successfully patched for nvidia-driver-${NVIDIA}"

Return to bug 244547