setup 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686
  1. #!/bin/sh
  2. #
  3. # The ‘multicd’ package was initially written by Heiko Schlittermann
  4. # <heiko@lotte.sax.de> based on builtin access methods written by Ian
  5. # Jackson <ian@chiark.greenend.org.uk>. The final packaging as well as
  6. # cleanups were made by Martin Schulze <joey@infodrom.north.de> who also
  7. # put this package together for the slink release (Debian GNU/Linux
  8. # 2.1).
  9. # Copyright © 1995-1998 Ian Jackson <ian@chiark.greenend.org.uk>
  10. # Copyright © 1998 Heiko Schlittermann <heiko@lotte.sax.de>
  11. #
  12. # This program is free software; you can redistribute it and/or modify
  13. # it under the terms of the GNU General Public License as published by
  14. # the Free Software Foundation; version 2 dated June, 1991.
  15. #
  16. # This program is distributed in the hope that it will be useful,
  17. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  18. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  19. # GNU General Public License for more details.
  20. #
  21. # You should have received a copy of the GNU General Public License
  22. # along with this program. If not, see <http://www.gnu.org/licenses/>.
  23. set -e
  24. vardir="$1"
  25. method=$2
  26. option=$3
  27. test -d "$vardir/methods/$method" || mkdir "$vardir/methods/$method"
  28. cd "$vardir/methods/$method"
  29. tp=/tmp/ddm$$
  30. iarch=`dpkg --print-architecture`
  31. dist=stable
  32. xit=1
  33. trap '
  34. rm -f $tp.?
  35. if [ -n "$umount" ]
  36. then
  37. umount "$umount" >/dev/null 2>&1
  38. fi
  39. exit $xit
  40. ' 0
  41. if ls -d "$tp.?" >/dev/null 2>&1
  42. then
  43. rm $tp.?
  44. fi
  45. #debug() { echo "DEBUG: $@"; }
  46. debug() { true; }
  47. ismulti() { debug $1 $2; test -e "$1/.disk/info" || test -e "$1$2/.disk/info"; }
  48. # 1/ mountpoint
  49. # 2/ hierarchy
  50. getdisklabel () {
  51. debug "$1" "$2"
  52. if [ -f $1/.disk/info ]
  53. then
  54. echo -n `head -1 "$1/.disk/info"`
  55. else
  56. if [ -f $1$2/.disk/info ]
  57. then
  58. echo -n `head -1 "$1$2/.disk/info"`
  59. else
  60. echo -n 'Non-Debian disc'
  61. fi
  62. fi
  63. }
  64. yesno () {
  65. while true
  66. do
  67. echo -n "$2 [$1] "
  68. read response
  69. if [ -z "$response" ]
  70. then
  71. response="$1"
  72. fi
  73. case "$response" in
  74. [Nn]*) yesno=no ; return ;;
  75. [Yy]*) yesno=yes ; return ;;
  76. esac
  77. done
  78. }
  79. getblockdev () {
  80. mountpoint="$vardir/methods/mnt"
  81. if [ -z "$defaultdevice" ]
  82. then
  83. defaultdevice="$newdefaultdevice"
  84. elif [ "$defaultdevice" != "$newdefaultdevice" ]
  85. then
  86. echo \
  87. "Last time you specified installation from $defaultdevice."
  88. fi
  89. promptstring="$1"
  90. while [ -z "$blockdevice" ]
  91. do
  92. echo -n "$promptstring [$defaultdevice]: "
  93. read response
  94. if [ -z "$response" ]
  95. then
  96. response="$defaultdevice"
  97. fi
  98. if [ ! -b "$response" ]
  99. then
  100. echo "$response is not a block device - will try as loopback.";
  101. loop=",loop"
  102. fi
  103. tryblockdevice="$response"
  104. if [ $option = multi_cd ]
  105. then
  106. fstype=iso9660
  107. elif [ $option = harddisk2 ]
  108. then
  109. blockbase="`echo \"$tryblockdevice\" | sed -e 's/[0-9]\{1,\}$//'`"
  110. set +e
  111. printf 'p\nq\n' | fdisk "$blockbase" 2>/dev/null >$tp.f
  112. set -e
  113. proposeddevice="$tryblockdevice" perl -ne '
  114. next unless /^ *Device +Boot +Begin +Start +End +Blocks +Id +System *$/i .. !/\S/;
  115. next unless s:^/\S+:: && $& eq $ENV{"proposeddevice"};
  116. next unless s/^ +(\* +)?\d+ +\d+ +\d+ +\d+\+? +//;
  117. next unless m/^([0-9a-f]{1,2}) /i;
  118. %types= ( "1","msdos", "4","msdos", "6","msdos", "7","hpfs", "80","minix",
  119. "81","minix", "83","ext2" );
  120. print $types{$1}; exit(0); ' <$tp.f >$tp.m
  121. defaultfstype="`cat $tp.m`"
  122. if [ -n "$defaultfstype" ]
  123. then
  124. cat <<END
  125. The partition table for $blockbase claims that $tryblockdevice
  126. contains filesystem type $defaultfstype.
  127. END
  128. if ! grep " $defaultfstype$" /proc/filesystems >/dev/null
  129. then
  130. echo \
  131. "Your kernel does not appear to support that filesystem type."
  132. defaultfstype=""
  133. fi
  134. fi
  135. echo -n "Supported filesystems: "
  136. sed -e 's/^.* / /' /proc/filesystems | tr '\n' ' '
  137. echo -n "
  138. Enter filesystem type (for $tryblockdevice) [$defaultfstype]: "
  139. read fstype
  140. if [ -z "$fstype" ]
  141. then
  142. fstype="$defaultfstype"
  143. fi
  144. fi
  145. umount="$mountpoint"
  146. if mount -rt "$fstype" -o nosuid,nodev$loop "$tryblockdevice" "$mountpoint"
  147. then
  148. echo
  149. blockdevice="$tryblockdevice"
  150. else
  151. umount=""
  152. echo \
  153. "Unable to mount $tryblockdevice on $mountpoint, type $fstype."
  154. fi
  155. done
  156. }
  157. outputparam () {
  158. echo "$2" | sed -e "s/'/'\\\\''/; s/^/$1='/; s/$/'/" >&3
  159. }
  160. ## MAIN
  161. intrkey="`stty -a | sed -n 's/.*intr = \([^;]*\);.*/\1/p'`"
  162. echo "
  163. If you make a mistake, use the interrupt key ($intrkey) to abort.
  164. "
  165. # State variables, “best first”
  166. # {main,ctb,nf,nonus,nonusctb,nonusnf,lcl}_{packages,binary}
  167. # Empty before we've found them or if they're not available,
  168. # set to the relevant bit under mountpoint otherwise.
  169. # hierbase
  170. # A directory containing a Debian FTP site mirror tree.
  171. # mountpoint
  172. # The mountpoint for the filesystem containing the stuff
  173. # empty or unset if we don't know yet, or if we haven't mounted anything;
  174. # may also be empty if ‘directory’ was set.
  175. # blockdevice
  176. # The actual block device to mount.
  177. # fstype
  178. # The filesystem type to use.
  179. # defaultdevice
  180. # The default block device to mount.
  181. p_usedevel=no
  182. if [ -f shvar.$option ]
  183. then
  184. . ./shvar.$option
  185. defaultdevice="$p_blockdev"
  186. defaultnfsserver="$p_nfsserver"
  187. defaultnfsrempath="$p_nfsrempath"
  188. usedevel="$p_usedevel"
  189. fi
  190. if [ $option = multi_cd ]
  191. then
  192. mount >$tp.m
  193. sed -n 's/ ([^)]*)$//; s/^[^ ]* on //; s/ type iso9660$//p' <$tp.m >$tp.l
  194. ncdroms=`wc -l <$tp.l`
  195. if [ $ncdroms -gt 1 ]
  196. then
  197. response=""
  198. while [ -z "$response" ]
  199. do
  200. echo \
  201. 'Several CD-ROMs (or other ISO9660 filesystems) are mounted:'
  202. egrep 'type iso9660 \([^)]*\)$' <$tp.m | nl
  203. echo -n \
  204. "Is it any of these ? Type a number, or 'n' for none. "
  205. read response
  206. response="`echo \"$response\" | sed -e 's/[ ]*$//'`"
  207. if expr "$response" : '[0-9][0-9]*$' >/dev/null && \
  208. [ $response -ge 1 -a $response -le $ncdroms ]
  209. then
  210. mountpoint="`sed -n $response'p' <$tp.l`"
  211. echo
  212. elif expr "$response" : '[Nn]' >/dev/null
  213. then
  214. mountpoint=""
  215. else
  216. response=""
  217. fi
  218. done
  219. elif [ $ncdroms = 1 ]
  220. then
  221. mountpoint="`cat $tp.l`"
  222. perl -ne 'print if s/ type iso9660 \([^)]*\)$// && s/ on .*$//;' \
  223. <$tp.m >$tp.d
  224. blockdevice="`cat $tp.d`"
  225. yesno yes \
  226. "I see a CD-ROM: $blockdevice, mounted on $mountpoint. Is it the right one ?"
  227. if [ $yesno = no ]
  228. then
  229. echo 'Unmounting it ...'
  230. umount="$mountpoint"
  231. while true
  232. do
  233. echo -n \
  234. 'Please insert the right disc, and hit return: '
  235. read response
  236. if mount -rt iso9660 -o nosuid,nodev \
  237. "$blockdevice" "$mountpoint"
  238. then
  239. echo
  240. break
  241. fi
  242. done
  243. fi
  244. fi
  245. if [ -z "$mountpoint" ]
  246. then
  247. if [ -b /dev/cdrom ]
  248. then
  249. echo \
  250. 'I see that /dev/cdrom exists and is a block device.'
  251. newdefaultdevice=/dev/cdrom
  252. fi
  253. getblockdev 'Insert the CD-ROM and enter the block device name'
  254. fi
  255. fi
  256. if [ $option = multi_nfs ]
  257. then
  258. mountpoint="$vardir/methods/mnt"
  259. while [ -z "$nfsserver" ]
  260. do
  261. echo -n \
  262. "What is the name of the NFS server ? [$defaultnfsserver] "
  263. read response
  264. if [ -z "$response" -a -n "$defaultnfsserver" ]
  265. then
  266. response="$defaultnfsserver"
  267. fi
  268. if [ -z "$response" ]; then continue; fi
  269. if [ -x "`which rpcinfo`" ]
  270. then
  271. if rpcinfo -u "$response" mountd >/dev/null
  272. then
  273. nfsserver="$response"
  274. else
  275. echo "$response appears not to be an NFS server."
  276. fi
  277. elif [ -x "`which ping`" ]
  278. then
  279. if ping -q -c 1 "$response" | grep -q ', 1 packets received'
  280. then
  281. nfsserver="$response"
  282. else
  283. echo "$response appears to be down or nonexistent."
  284. fi
  285. else
  286. echo \
  287. "(I can't check that now because there is no rpcinfo or ping.)"
  288. nfsserver="$response"
  289. fi
  290. done
  291. while [ -z "$nfsrempath" ]
  292. do
  293. echo -n "
  294. What is the pathname on the NFS server of the filesystem with
  295. the Debian files ? [$defaultnfsrempath] "
  296. read response
  297. if [ -z "$response" -a -n "$defaultnfsrempath" ]
  298. then
  299. response="$defaultnfsrempath"
  300. else
  301. response="`echo \"$response\" | sed -e 's:/$::; s:^/*:/:'`"
  302. fi
  303. umount="$mountpoint"
  304. if mount -rt nfs -o nosuid,nodev "$nfsserver:$response" "$mountpoint"
  305. then
  306. echo
  307. nfsrempath="$response"
  308. else
  309. umount=""
  310. echo \
  311. "Unable to mount NFS filesystem $nfsserver:$response."
  312. fi
  313. done
  314. nfs="$nfsserver:$nfsrempath"
  315. fi
  316. if [ $option = harddisk2 ]
  317. then
  318. set +e
  319. printf 'p\nq\n' | fdisk /dev/hda 2>/dev/null >$tp.f
  320. if [ $? != 0 ]
  321. then
  322. printf 'p\nq\n' | fdisk /dev/sda 2>/dev/null >$tp.f
  323. fi
  324. set -e
  325. perl -ne '
  326. next unless /^ *Device +Boot +Begin +Start +End +Blocks +Id +System *$/i .. !/\S/;
  327. next unless / [146] +DOS \d+-bit \S+$/;
  328. next unless m:^/\S+:;
  329. print $&; ' <$tp.f >$tp.d
  330. newdefaultdevice="`cat $tp.d`"
  331. echo "
  332. I need to know which disk partition contains the distribution files;
  333. disk partitions are specified by the block device name in Linux."
  334. if [ -n "$newdefaultdevice" ]
  335. then
  336. echo \
  337. "By the way, $newdefaultdevice looks like a DOS partition."
  338. fi
  339. getblockdev "Enter the partition's block device name"
  340. fi
  341. if [ -n "$mountpoint" ]
  342. then
  343. # We must have $mountpoint
  344. if [ $option = multi_cd ]
  345. then
  346. echo \
  347. 'All directory names should be entered relative to the root of the CD-ROM.
  348. '
  349. elif [ $option = multi_nfs ]
  350. then
  351. echo \
  352. "All directory names should be entered relative to the root of the NFS
  353. filesystem, ie relative to $nfsrempath on the server.
  354. "
  355. else
  356. echo \
  357. "All directory names should be entered relative to the root of the
  358. $fstype filesystem on $blockdevice.
  359. "
  360. fi
  361. fi
  362. # now try to get the users idea where the debian
  363. # hierarchy start below the mointpoint
  364. debug "mountpoint: $mountpoint"
  365. while true
  366. do
  367. if ismulti "${mountpoint}" "${hierbase}"; then
  368. multi=yes
  369. fi
  370. if [ $option = multi_cd ]
  371. then
  372. echo \
  373. "I would like to know where on the CD-ROM the top level of the Debian
  374. distribution is - this will usually contain the 'dists' directory.
  375. If the CD-ROM is badly organized and doesn't have a straightforward copy of
  376. the distribution you may answer 'none' and we'll go through the parts
  377. I need individually."
  378. else
  379. echo \
  380. "In order to make it easy for me to find the relevant files I'd ideally
  381. like to install from a straightforward copy of the Debian distribution.
  382. To use this I'll need to know where the top level of that copy of the
  383. distribution is - this directory usually contains the Packages-Master file.
  384. If you do not have a straightforward copy of the distribution available
  385. just answer 'none' and we'll go through the parts I need individually."
  386. fi
  387. defhierbase=none
  388. if [ -n "$p_hierbase" ]; then
  389. if [ -d "$mountpoint/$p_hierbase/dists/$dist/main/binary-$iarch" \
  390. -o -n "$multi" ]; then
  391. echo "Last time you said '$p_hierbase', and that looks plausible."
  392. defhierbase="$p_hierbase"
  393. else
  394. echo "
  395. Last time you said '$p_hierbase', but that doesn't look plausible,
  396. since '$p_hierbase/dists/$dist/main/binary-$iarch' doesn't seem to exist.
  397. And I can't get the impression that you're using a multi-CD set."
  398. fi
  399. fi
  400. # at this point defhierbase is set if it looks plausible
  401. # if ‘none’ was entered, we assume a CD with a debian/ directory
  402. if [ none = "$defhierbase" -a -d "$mountpoint/debian/dists/$dist/main/binary-$iarch" ]
  403. then
  404. echo "'/debian' exists and looks plausible, so that's the default."
  405. defhierbase=/debian
  406. fi
  407. echo -n "Distribution top level ? [$defhierbase] "
  408. read response
  409. if [ -z "$response" ]; then response="$defhierbase"; fi
  410. if [ none = "$response" ]; then
  411. hierbase=""
  412. break
  413. elif ismulti "$mountpoint" "$response" && [ -z "$multi" ]; then
  414. multi=yes
  415. fi
  416. if ! [ -d "$mountpoint/$response/dists/$dist/main/binary-$iarch" \
  417. -o -n "$multi" ]; then
  418. echo \
  419. "Neither $response/dists/$dist/main/binary-$iarch does not exist,
  420. nor are you using a multi-CD set"
  421. break
  422. fi
  423. hierbase="`echo \"$response\" | sed -e 's:/$::; s:^/*:/:; s:/\+:/:g;'`"
  424. debug "hierbase: [$hierbase]"
  425. if [ -n "$multi" ]; then
  426. disklabel=`getdisklabel "$mountpoint" "/$response"`
  427. echo "Ok, this is disc"
  428. echo " $disklabel"
  429. #echo "Updating multi CD contents file cache ..."
  430. #multi_contentsfile="${mountpoint}/${response}/.disk/contents.gz"
  431. #zcat "$multi_contentsfile" > disk-contents.$option
  432. fi
  433. break;
  434. done
  435. distribution=$dist
  436. if [ -n "$hierbase" ]
  437. then
  438. if [ -d "$mountpoint/$hierbase/dists/unstable/binary-$iarch" ]
  439. then
  440. echo \
  441. '
  442. Both a stable released distribution and a work-in-progress
  443. development tree are available for installation. Would you like to
  444. use the unreleased development tree (this is only recommended for
  445. experts who like to live dangerously and want to help with testing) ?'
  446. yesno "$p_usedevel" 'Use unreleased development distribution ?'
  447. usedevel="$yesno"
  448. if [ "$usedevel" = yes ]
  449. then
  450. distribution=development
  451. fi
  452. else
  453. usedevel=no
  454. fi
  455. echo
  456. fi
  457. case "$hierbase" in
  458. /* ) ;;
  459. '' ) ;;
  460. * ) hierbase="/$hierbase" ;;
  461. esac
  462. check_binary () {
  463. # args: area-in-messages directory
  464. debug "check_binary($@)"
  465. if [ ! -d "${mountpoint}$2" -a -z "$multi" ]
  466. then
  467. echo "'$2' does not exist."
  468. return
  469. fi
  470. # In this special case it is ok for a sub-distribution to not contain any
  471. # .deb files. Each CD should contain all Packages.cd files but doesn't
  472. # need to contain the .deb files.
  473. #
  474. # if ! { find -L "$mountpoint$2" -name '*.deb' -print \
  475. # | head -1 | grep . ; } >/dev/null 2>&1 && [ -z "$multi" ];
  476. # then
  477. # echo "'$2' does not contain any *.deb packages."
  478. # return
  479. # fi
  480. this_binary="$2"
  481. echo -n "Using '$this_binary' as $1 binary dir"
  482. if [ -n "$multi" ]; then
  483. this_disk=`getdisklabel ${mountpoint} "/$hierbase"`
  484. echo " from disc"
  485. echo " '$this_disk'"
  486. else
  487. echo ""
  488. fi
  489. }
  490. find_area () {
  491. # args: area-in-messages area-in-vars subdirectory-in-hier
  492. # last-time-binary last-time-packages
  493. debug "find_area($@)"
  494. this_binary=''
  495. this_packages=''
  496. this_disk=''
  497. if [ -n "$hierbase" ]
  498. then
  499. check_binary $1 `echo "$hierbase/dists/$3/$1/binary-$iarch" | sed 's:/\+:/:g'`
  500. debug "THIS_BINARY $this_binary"
  501. fi
  502. if [ $option = multi_cd -a $2 = nf -a -z "$this_binary" ]
  503. then
  504. echo "
  505. Note: most CD-ROM distributions of Debian do not include programs
  506. available in the 'non-free' directory of the distribution site.
  507. This is because these programs have copyrights that prevent
  508. distribution for profit on a CD-ROM - ie they are not free software.
  509. If you wish to install these programs you'll have to get them from an
  510. alternative source."
  511. fi
  512. while [ -z "$this_binary" ]
  513. do
  514. defaultbinary="$4"
  515. echo "
  516. Which directory contains the *.deb packages from the $1 distribution
  517. area (this directory is named '$3/binary' on the distribution site) ?
  518. Say 'none' if this area is not available."
  519. if [ $2 != main -a -z "$defaultbinary" ]
  520. then
  521. defaultbinary=none
  522. fi
  523. echo -n \
  524. "Enter _$1_ binary dir. [$4]
  525. ? "
  526. read response
  527. if [ -z "$response" -a -n "$defaultbinary" ]
  528. then
  529. response="$defaultbinary"
  530. fi
  531. if [ none = "$response" ]
  532. then
  533. break
  534. fi
  535. case "$response" in
  536. '' | none) continue ;;
  537. esac
  538. check_binary $1 "`echo \"$response\" | sed -e 's:/$::; s:^/*:/:'`"
  539. done
  540. if [ -n "$this_binary" ]
  541. then
  542. if [ "$multi" = "yes" ]; then
  543. for f in Packages.cd.gz packages.cd.gz Packages.cd packages.cd
  544. do
  545. if [ -f "$mountpoint/$this_binary/$f" ]
  546. then
  547. this_packages="$this_binary/$f"
  548. echo "Using '$this_packages' for $1."
  549. break
  550. fi
  551. done
  552. else
  553. if [ -f "${mountpoint}${hierbase}/.disk/packages/$1/Packages.gz" ]; then
  554. this_packages=`echo "${hierbase}/.disk/packages/$1/Packages.gz"|sed 's:/\+:/:g'`
  555. echo "Using '${this_packages}' for $1."
  556. fi
  557. fi
  558. while [ -z "$this_packages" ]
  559. do
  560. echo -n "
  561. I can't find the $1 'Packages.cd' file. The information in the
  562. 'Packages.cd' file is important for package selection during new
  563. installations, and is very useful for upgrades.
  564. If you overlooked it when downloading you should do get it now and
  565. return to this installation procedure when you have done so: you will
  566. find one Packages.cd file and one Packages.cd.gz file -- either will do --
  567. in the 'binary' subdirectory of each area on the FTP sites and
  568. CD-ROMs. Alternatively (and this will be rather slow) I can scan the
  569. packages in the distribution area - say 'scan' if you want me to do so.
  570. You need a separate Packages.cd file from each of the distribution areas
  571. you wish to install.
  572. Where is the _$1_ 'Packages.cd' file (if none is available, say 'none')
  573. [$5]
  574. ? "
  575. read response
  576. if [ -z "$response" -a -n "$5" ]
  577. then
  578. response="$5"
  579. fi
  580. case "$response" in
  581. '') break ;;
  582. none) break ;;
  583. scan) this_packages=scan ;;
  584. /*) this_packages="$response" ;;
  585. *) this_packages="/$response" ;;
  586. esac
  587. done
  588. fi
  589. eval $2'_binary="$this_binary"'
  590. eval $2'_packages="$this_packages"'
  591. eval $2'_disk="$this_disk"'
  592. }
  593. find_area main main "$distribution" "$p_main_binary" "$p_main_packages"
  594. find_area contrib ctb "$distribution" "$p_ctb_binary" "$p_ctb_packages"
  595. find_area non-free nf "$distribution" "$p_nf_binary" "$p_nf_packages"
  596. find_area non-US/main nonus "$distribution" "$p_nonus_binary" "$p_nonus_packages"
  597. find_area non-US/contrib nonusctb "$distribution" "$p_nonusctb_binary" "$p_nonusctb_packages"
  598. find_area non-US/non-free nonusnf "$distribution" "$p_nonusnf_binary" "$p_nonusnf_packages"
  599. find_area local lcl local "$p_lcl_binary" "$p_lcl_packages"
  600. echo -n '
  601. Hit RETURN to continue. '
  602. read response
  603. exec 3>shvar.$option.new
  604. outputparam p_blockdev "$blockdevice"
  605. outputparam p_fstype "$fstype"
  606. outputparam p_mountpoint "$mountpoint"
  607. outputparam p_nfsserver "$nfsserver"
  608. outputparam p_nfsrempath "$nfsrempath"
  609. outputparam p_nfs "$nfs"
  610. outputparam p_hierbase "$hierbase"
  611. outputparam p_usedevel "$usedevel"
  612. outputparam p_main_packages "$main_packages"
  613. outputparam p_main_binary "$main_binary"
  614. outputparam p_main_disk "$main_disk"
  615. outputparam p_ctb_packages "$ctb_packages"
  616. outputparam p_ctb_binary "$ctb_binary"
  617. outputparam p_ctb_disk "$ctb_disk"
  618. outputparam p_nf_packages "$nf_packages"
  619. outputparam p_nf_binary "$nf_binary"
  620. outputparam p_nf_disk "$nf_disk"
  621. outputparam p_nonus_binary "$nonus_binary"
  622. outputparam p_nonus_packages "$nonus_packages"
  623. outputparam p_nonus_disk "$nonus_disk"
  624. outputparam p_nonusctb_binary "$nonusctb_binary"
  625. outputparam p_nonusctb_packages "$nonusctb_packages"
  626. outputparam p_nonusctb_disk "$nonusctb_disk"
  627. outputparam p_nonusnf_binary "$nonusnf_binary"
  628. outputparam p_nonusnf_packages "$nonusnf_packages"
  629. outputparam p_nonusnf_disk "$nonusnf_disk"
  630. outputparam p_lcl_packages "$lcl_packages"
  631. outputparam p_lcl_binary "$lcl_binary"
  632. outputparam p_multi "$multi"
  633. outputparam p_multi_contentsfile "$multi_contentsfile"
  634. mv shvar.$option.new shvar.$option
  635. xit=0
  636. # vim:ts=4:sw=4:aw:ai: