svn commit: r258267 - in head/usr.sbin/bsdconfig/share: media packages
Devin Teske
dteske at FreeBSD.org
Sun Nov 17 17:53:56 UTC 2013
Author: dteske
Date: Sun Nov 17 17:53:55 2013
New Revision: 258267
URL: http://svnweb.freebsd.org/changeset/base/258267
Log:
Fix package installation from physical media such as DVD.
Discussed with: re (gjb)
MFC after: 3 days
Modified:
head/usr.sbin/bsdconfig/share/media/http.subr
head/usr.sbin/bsdconfig/share/packages/index.subr
head/usr.sbin/bsdconfig/share/packages/packages.subr
Modified: head/usr.sbin/bsdconfig/share/media/http.subr
==============================================================================
--- head/usr.sbin/bsdconfig/share/media/http.subr Sun Nov 17 17:48:55 2013 (r258266)
+++ head/usr.sbin/bsdconfig/share/media/http.subr Sun Nov 17 17:53:55 2013 (r258267)
@@ -502,6 +502,7 @@ f_media_init_http()
setvar $VAR_HTTP_PATH "$hp/$PKG_ABI/latest"
if [ "$PKG_ABI" ] && f_http_check_access; then
http_found=$SUCCESS
+ setvar $VAR_HTTP_PATH "$hp"
else
for fdir in $HTTP_DIRS; do
setvar $VAR_HTTP_PATH "$hp/$fdir/$rel"
Modified: head/usr.sbin/bsdconfig/share/packages/index.subr
==============================================================================
--- head/usr.sbin/bsdconfig/share/packages/index.subr Sun Nov 17 17:48:55 2013 (r258266)
+++ head/usr.sbin/bsdconfig/share/packages/index.subr Sun Nov 17 17:53:55 2013 (r258267)
@@ -106,16 +106,21 @@ f_index_initialize()
device_media get type __type
device_media get private __data
case "$__type" in
- $DEVICE_TYPE_UFS|$DEVICE_TYPE_DISK) __site="file://$MOUNTPOINT" ;;
- $DEVICE_TYPE_DIRECTORY) __site="file://$__data" ;;
- $DEVICE_TYPE_FLOPPY) __site="file://${__data:-$MOUNTPOINT}" ;;
- $DEVICE_TYPE_FTP) f_getvar $VAR_FTP_PATH __site ;;
- $DEVICE_TYPE_HTTP_PROXY) f_getvar $VAR_HTTP_PROXY_PATH __site ;;
- $DEVICE_TYPE_HTTP) f_getvar $VAR_HTTP_PATH __site ;;
- $DEVICE_TYPE_CDROM) __site="file://$MOUNTPOINT" ;;
- $DEVICE_TYPE_USB) __site="file://$MOUNTPOINT" ;;
- $DEVICE_TYPE_DOS) __site="file://$MOUNTPOINT" ;;
- $DEVICE_TYPE_NFS) __site="file://$MOUNTPOINT" ;;
+ $DEVICE_TYPE_DIRECTORY)
+ __site="file://$__data/packages/$PKG_ABI" ;;
+ $DEVICE_TYPE_FLOPPY)
+ __site="file://${__data:-$MOUNTPOINT}/packages/$PKG_ABI" ;;
+ $DEVICE_TYPE_FTP)
+ f_getvar $VAR_FTP_PATH __site
+ __site="$__site/packages/$PKG_ABI" ;;
+ $DEVICE_TYPE_HTTP)
+ f_getvar $VAR_HTTP_PATH __site
+ __site="$__site/$PKG_ABI/latest" ;;
+ $DEVICE_TYPE_HTTP_PROXY)
+ f_getvar $VAR_HTTP_PROXY_PATH __site
+ __site="$__site/packages/$PKG_ABI" ;;
+ *) # UFS, DISK, CDROM, USB, DOS, NFS, etc.
+ __site="file://$MOUNTPOINT/packages/$PKG_ABI"
esac
export PACKAGESITE="$__site"
Modified: head/usr.sbin/bsdconfig/share/packages/packages.subr
==============================================================================
--- head/usr.sbin/bsdconfig/share/packages/packages.subr Sun Nov 17 17:48:55 2013 (r258266)
+++ head/usr.sbin/bsdconfig/share/packages/packages.subr Sun Nov 17 17:53:55 2013 (r258267)
@@ -971,10 +971,16 @@ f_package_extract()
f_getvar $VAR_PKG_TMPDIR:-/var/tmp tmpdir
f_quietly mkdir -p -m 1777 "$tmpdir"
- local path
+ local path device_type
+ device_$device get type device_type
case "$name" in
*/*) path="$name" ;;
- *) path="All/$name" ;;
+ *)
+ if [ "$device_type" = "$DEVICE_TYPE_HTTP" ]; then
+ path="$PKG_ABI/latest/All/$name"
+ else
+ path="packages/$PKG_ABI/All/$name"
+ fi
esac
# We have a path, call the device strategy routine to check the file
@@ -982,12 +988,20 @@ f_package_extract()
for pkg_ext in "" $PACKAGE_EXTENSIONS; do
if f_device_get $device "$path$pkg_ext" $PROBE_EXIST; then
path="$path$pkg_ext"
- f_dprintf "$funcname: found path=[%s] dev=[%s]" \
- "$path" "$device"
+ found=1
+ break
+ elif [ "$device_type" = "$DEVICE_TYPE_HTTP" ] &&
+ f_device_get $device \
+ "packages/$PKG_ABI/All/$name$pkg_ext" $PROBE_EXIST
+ then
+ # Mirroring physical media over HTTP
+ path="packages/$PKG_ABI/All/$name$pkg_ext"
found=1
break
fi
done
+ [ "$found" ] && f_dprintf "$funcname: found path=[%s] dev=[%s]" \
+ "$path" "$device"
local alert=f_show_msg no_confirm=
f_getvar $VAR_NO_CONFIRM no_confirm
More information about the svn-src-head
mailing list