setup 18 KB

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