include Makefile.config

.PHONY: all $(DIRS) install clean stage2 full_stage2 verify_c 

all: TAGS $(DIRS)

TAGS: $(PMS)
	etags -o - $^ | ./perl2etags > $@

clean:
	for i in $(DIRS); do $(MAKE) -C $$i clean; done
	rm -rf auto
	find . -name "*~" -o -name ".#*" -o -name "TAGS" -o -name "*.old" | xargs rm -f

tar-drakxtools: clean
	$(MAKE) -C ../tools clean
	cd .. ; rm -rf drakxtools ; cp -af perl-install drakxtools ; cp -af tools/ddcprobe tools/pnp_serial drakxtools	
	cd ../drakxtools ; rm -rf install* pkgs.pm ftp.pm t.pm */CVS ; mv Makefile.drakxtools Makefile ; mv -f standalone/* share/* .
	cd .. ; tar cfy drakxtools.tar.bz2 --exclude CVS $(patsubst %,drakxtools/%,Makefile Makefile.config MonitorsDB CardsNames Newt c ddcprobe pnp_serial po pci_probing resize_fat diskdrake.rc $(STANDALONEPMS) icons *.pm)
	cd .. ; rm -rf drakxtools

$(DIRS):
	install -d auto
	$(MAKE) -C $@

test_pms: verify_c
	./perl2fcalls -excludec -excluderesize_fat::c_rewritten install2
	for i in install2 install_steps_*.pm; do perl -cw -I. $$i; done

test_all: test_pms
	for i in $(PMS); do perl -cw -I. $$i; done

verify_c:
	./verify_c $(PMS)

install_pms: $(DIRS)
	for i in `perl -ne 's/sub (\w+?)_? {.*/$$1/ and print' commands.pm` sync; do ln -sf commands $(DEST)/usr/bin/$$i; done

	install -d $(DESTREP4PMS)
	for i in $(PMS); do \
		dest=$(DESTREP4PMS)/`dirname $$i`; \
		install -d $$dest; \
		perl -ne 'print' $$i > $(DESTREP4PMS)/$$i; \
		perl -pe 's/#[-+].*//; $$_ = "\n" if (/^=head/ .. /^=cut/) || /use (diagnostics|vars|strict)/' $$i > $(DESTREP4PMS)/$$i; \
	done
#		perl -pe 's/#-.*//; $$_ = "\n" if (/^=head/ .. /^=cut/) || /use (diagnostics)/' $$i > $(DESTREP4PMS)/$$i; \

	cp share/*.rc $(DESTREP4PMS)
	install -d $(DESTREP4PMS)/po
	cp -f share/po/*.po* $(DESTREP4PMS)/po ||:
	chmod a+x $(DESTREP4PMS)/install2
	chmod a+x $(DESTREP4PMS)/commands
	chmod a+x $(DESTREP4PMS)/standalone/*
	chmod a+x $(DESTREP4PMS)/g_auto_install

get_needed_files: $(DIRS)
#	export PERL_INSTALL_TEST=1 ; strace -f -e trace=file -o '| grep -v "(No such file or directory)" | sed -e "s/[^\"]*\"//" -e "s/\".*//" | grep "^/" | grep -v -e "^/tmp" -e "^/home" -e "^/proc" -e "^/var" -e "^/dev" -e "^/etc" -e "^/usr/lib/rpm" > /tmp/list ' $(PERL) -d install2 < /dev/null
	perl -pe "s/ARCH/$(ARCH)/g" share/list > /tmp/list
#	perl -pi -e 's/00503/5.660/g' /tmp/list
	cat `../tools/specific_arch share/list` >> /tmp/list
	find auto -follow -name "*.so" >> /tmp/list

	for i in $(LOCALFILES) `cat /tmp/list` ; do \
		ldd $$i 2>/dev/null | grep -v "not a dynamic" | sed -e 's/.*=> //' -e 's/ .*//' | uniq | sort >> /tmp/list; \
	done

	install -d $(DEST)/etc
	install -d $(DEST)/lib
	install -d $(DEST)/bin
	install -d $(DEST)/usr/bin
	install -d $(DEST)/usr/lib
	install -d $(DEST)/usr/share
	install -d $(DEST)/usr/share/gtk
	install -d $(DEST)/usr/share/xmodmap
	install -d $(DEST)/usr/X11R6/lib/X11
	install -d $(ROOTDEST)/Mandrake/base
	install -s $(LOCALFILES) $(DEST)/usr/bin
#	cp -f $(LOCALFILES2) $(DEST)/usr/bin
ifeq (sparc,$(ARCH))
	cp -a /usr/X11R6/lib/X11/xkb $(DEST)/usr/X11R6/lib/X11
	rm -f $(DEST)/usr/X11R6/lib/X11/xkb/compiled
	ln -s /tmp $(DEST)/usr/X11R6/lib/X11/xkb/compiled
	ln -s /usr/X11R6/lib/X11 $(DEST)/usr/lib/X11
	ln -s /usr/X11R6/lib/X11/xkb/xkbcomp $(DEST)/usr/bin/xkbcomp
endif

	for i in `cat /tmp/list`; do \
		if (echo $$i | grep -q "lib/[^/]*\.so"); then \
		  install -s $$i $(DEST)/lib; \
		else \
		  d=$$i; \
	          (echo $$d | grep -q "^[^/]") && d="$(REP4PMS)/$$d"; \
		  d=`echo $(DEST)/$$d | sed 's/\/usr\/local\//\/usr\//'`; \
		  install -d `dirname $$d` && \
		  if (echo $$i | grep -q "\.pm"); then \
		     perl -pe '$$_ =~ /^__END__/ and exit(0);' $$i > $$d; \
		  elif (echo $$i | grep -q "\.so"); then \
			  install -s $$i $$d; \
		  else \
		  	  cp -f $$i $$d; \
		  fi; \
		fi; \
	done
	mv -f $(DEST)/lib/libimlib-png.so $(DEST)/usr/lib

	mv -f $(DEST)/bin/* $(DEST)/sbin/* $(DEST)/usr/bin
	cd $(DEST)/usr/bin ; mv insmod insmod_
	rmdir $(DEST)/bin $(DEST)/sbin

	perl -ane 'symlink "$$F[1]", "$(DEST)/usr/bin/$$F[0]"' aliases

	for i in fonts keyboards locales gconv; do tar xfy `../tools/specific_arch share/$$i.tar.bz2` -C $(DEST); done

	cp -a modparm.lst $(DEST)/usr/share
	cd share ; cp -a keymaps $(DEST)/usr/share
	cd share ; cp -a consolefonts $(DEST)/usr/share
	cd share ; cp template.in/*.in $(DEST)/usr/share
	cd share ; cp MonitorsDB CardsNames $(DEST)/usr/X11R6/lib/X11
	cd share ; cp *.xpm $(DEST)/usr/share
	cd share ; cp -a themes $(DEST)/usr/share/gtk
	cd share ; cp compss compssUsers compssList $(ROOTDEST)/Mandrake/base

	if [ -f "../modules/modules.cz2" ]; then \
		cp -f ../modules/modules.cz2 $(DEST)/lib/; \
	else \
		cp -f ../modules/modules.cpio.bz2 $(DEST)/lib/; \
		install -d $(DEST)/lib/modules; \
		cp -f ../modules/pristine/* $(DEST)/lib/modules ||: ; \
	fi

#	echo -e '#!/bin/sh\n\nexec "/usr/bin/sh"' > $(DEST)/usr/bin/runinstall2
#	chmod a+x $(DEST)/usr/bin/runinstall2

ifeq (i386,$(ARCH))
	tar xyC $(DEST) -f ../install/install1_pcmcia.$(ARCH).tar.bz2 ./etc/pcmcia
endif

	find $(DEST) -name CVS | xargs rm -rf

full_stage2:
	if [ `id -u` = 0 ]; then rm -rf $(DEST); else $(SUDO) rm -rf $(DEST); fi
	mkdir -p $(DEST)
	$(MAKE) get_needed_files 
	$(MAKE) stage2

stage2:
	$(MAKE) install_pms
	$(ROOTDEST)/misc/make_mdkinst_stage2 $(DEST) $(ROOTDEST)/Mandrake/base/mdkinst_stage2
/log/perl-install/install_steps_auto_install.pm'>
<input type='hidden' name='h' value='15.9'/><input type='hidden' name='id' value='348d706236d2bf7e09bc8214b657faef0b0a30c5'/><select name='qt'>
<option value='grep'>log msg</option>
<option value='author'>author</option>
<option value='committer'>committer</option>
<option value='range'>range</option>
</select>
<input class='txt' type='search' size='10' name='q' value=''/>
<input type='submit' value='search'/>
</form>
</td></tr></table>
<div class='path'>path: <a href='/software/drakx/tree/?h=15.9&amp;id=348d706236d2bf7e09bc8214b657faef0b0a30c5'>root</a>/<a href='/software/drakx/tree/perl-install?h=15.9&amp;id=348d706236d2bf7e09bc8214b657faef0b0a30c5'>perl-install</a>/<a href='/software/drakx/tree/perl-install/install_steps_auto_install.pm?h=15.9&amp;id=348d706236d2bf7e09bc8214b657faef0b0a30c5'>install_steps_auto_install.pm</a></div><div class='content'>blob: 3fadfc6adf5dff7e8879804ce7f65a56dfd5534c (<a href='/software/drakx/plain/perl-install/install_steps_auto_install.pm?h=15.9&amp;id=348d706236d2bf7e09bc8214b657faef0b0a30c5'>plain</a>)
<table summary='blob content' class='blob'>
<tr><td class='linenumbers'><pre><a id='n1' href='#n1'>1</a>
<a id='n2' href='#n2'>2</a>
<a id='n3' href='#n3'>3</a>
<a id='n4' href='#n4'>4</a>
<a id='n5' href='#n5'>5</a>
<a id='n6' href='#n6'>6</a>
<a id='n7' href='#n7'>7</a>
<a id='n8' href='#n8'>8</a>
<a id='n9' href='#n9'>9</a>
<a id='n10' href='#n10'>10</a>
<a id='n11' href='#n11'>11</a>
<a id='n12' href='#n12'>12</a>
<a id='n13' href='#n13'>13</a>
<a id='n14' href='#n14'>14</a>
<a id='n15' href='#n15'>15</a>
<a id='n16' href='#n16'>16</a>
<a id='n17' href='#n17'>17</a>
<a id='n18' href='#n18'>18</a>
<a id='n19' href='#n19'>19</a>
<a id='n20' href='#n20'>20</a>
<a id='n21' href='#n21'>21</a>
<a id='n22' href='#n22'>22</a>
<a id='n23' href='#n23'>23</a>
<a id='n24' href='#n24'>24</a>
<a id='n25' href='#n25'>25</a>
<a id='n26' href='#n26'>26</a>
<a id='n27' href='#n27'>27</a>
<a id='n28' href='#n28'>28</a>
<a id='n29' href='#n29'>29</a>
<a id='n30' href='#n30'>30</a>
<a id='n31' href='#n31'>31</a>
<a id='n32' href='#n32'>32</a>
<a id='n33' href='#n33'>33</a>
<a id='n34' href='#n34'>34</a>
<a id='n35' href='#n35'>35</a>
<a id='n36' href='#n36'>36</a>
<a id='n37' href='#n37'>37</a>
<a id='n38' href='#n38'>38</a>
<a id='n39' href='#n39'>39</a>
<a id='n40' href='#n40'>40</a>
<a id='n41' href='#n41'>41</a>
<a id='n42' href='#n42'>42</a>
<a id='n43' href='#n43'>43</a>
<a id='n44' href='#n44'>44</a>
<a id='n45' href='#n45'>45</a>
<a id='n46' href='#n46'>46</a>
<a id='n47' href='#n47'>47</a>
<a id='n48' href='#n48'>48</a>
<a id='n49' href='#n49'>49</a>
<a id='n50' href='#n50'>50</a>
<a id='n51' href='#n51'>51</a>
<a id='n52' href='#n52'>52</a>
<a id='n53' href='#n53'>53</a>
<a id='n54' href='#n54'>54</a>
<a id='n55' href='#n55'>55</a>
<a id='n56' href='#n56'>56</a>
<a id='n57' href='#n57'>57</a>
<a id='n58' href='#n58'>58</a>
<a id='n59' href='#n59'>59</a>
<a id='n60' href='#n60'>60</a>
<a id='n61' href='#n61'>61</a>
<a id='n62' href='#n62'>62</a>
<a id='n63' href='#n63'>63</a>
<a id='n64' href='#n64'>64</a>
<a id='n65' href='#n65'>65</a>
<a id='n66' href='#n66'>66</a>
<a id='n67' href='#n67'>67</a>
<a id='n68' href='#n68'>68</a>
<a id='n69' href='#n69'>69</a>
<a id='n70' href='#n70'>70</a>
<a id='n71' href='#n71'>71</a>
<a id='n72' href='#n72'>72</a>
<a id='n73' href='#n73'>73</a>
<a id='n74' href='#n74'>74</a>
<a id='n75' href='#n75'>75</a>
<a id='n76' href='#n76'>76</a>
<a id='n77' href='#n77'>77</a>
<a id='n78' href='#n78'>78</a>
<a id='n79' href='#n79'>79</a>
<a id='n80' href='#n80'>80</a>
<a id='n81' href='#n81'>81</a>
<a id='n82' href='#n82'>82</a>
<a id='n83' href='#n83'>83</a>
<a id='n84' href='#n84'>84</a>
<a id='n85' href='#n85'>85</a>
<a id='n86' href='#n86'>86</a>
<a id='n87' href='#n87'>87</a>
<a id='n88' href='#n88'>88</a>
<a id='n89' href='#n89'>89</a>
<a id='n90' href='#n90'>90</a>
<a id='n91' href='#n91'>91</a>
<a id='n92' href='#n92'>92</a>
<a id='n93' href='#n93'>93</a>
<a id='n94' href='#n94'>94</a>
<a id='n95' href='#n95'>95</a>
<a id='n96' href='#n96'>96</a>
<a id='n97' href='#n97'>97</a>
<a id='n98' href='#n98'>98</a>
<a id='n99' href='#n99'>99</a>
</pre></td>
<td class='lines'><pre><code><span class="hl kwa">package</span> install_steps_auto_install<span class="hl opt">;</span> <span class="hl slc"># $Id$</span>

<span class="hl kwa">use</span> diagnostics<span class="hl opt">;</span>
<span class="hl kwa">use</span> strict<span class="hl opt">;</span>
<span class="hl kwa">use</span> lang<span class="hl opt">;</span>
<span class="hl kwa">use</span> vars <span class="hl str">qw(</span><span class="hl ipl">&#64;ISA</span> <span class="hl str"></span><span class="hl ipl">$graphical</span> <span class="hl str"></span><span class="hl ipl">&#64;graphical_steps</span><span class="hl str">)</span><span class="hl opt">;</span>

<span class="hl kwb">&#64;ISA</span> <span class="hl opt">=</span> <span class="hl str">qw(install_steps)</span><span class="hl opt">;</span>

<span class="hl kwb">&#64;graphical_steps</span> <span class="hl opt">=</span> <span class="hl str">qw(enteringStep installPackages)</span><span class="hl opt">;</span>

<span class="hl kwa">use</span> modules<span class="hl opt">;</span>


<span class="hl slc">#-######################################################################################</span>
<span class="hl slc">#- misc imports</span>
<span class="hl slc">#-######################################################################################</span>
<span class="hl kwa">use</span> common <span class="hl str">qw(:common :functional)</span><span class="hl opt">;</span>
<span class="hl kwa">use</span> install_steps<span class="hl opt">;</span>
<span class="hl kwa">use</span> <span class="hl kwc">log</span><span class="hl opt">;</span>

<span class="hl kwa">sub</span> new <span class="hl opt">{</span>
    <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$type, $o</span><span class="hl opt">) =</span> <span class="hl kwb">&#64;_</span><span class="hl opt">;</span>

    <span class="hl kwa">if</span> <span class="hl opt">(</span><span class="hl kwb">$graphical</span><span class="hl opt">) {</span>
	<span class="hl kwa">require</span> install_steps_gtk<span class="hl opt">;</span>
	<span class="hl kwc">push</span> <span class="hl kwb">&#64;ISA,</span> <span class="hl str">&apos;interactive_gtk&apos;</span><span class="hl opt">;</span>
	<span class="hl kwa">foreach</span> <span class="hl kwc">my</span> <span class="hl kwb">$f</span> <span class="hl opt">(</span><span class="hl kwb">&#64;graphical_steps</span><span class="hl opt">) {</span>
	    <span class="hl kwa">no</span> strict <span class="hl str">&apos;refs&apos;</span><span class="hl opt">;</span>
	    <span class="hl kwc">my</span> <span class="hl kwb">$pkg</span> <span class="hl opt">=</span> <span class="hl kwb">$install_steps_gtk</span><span class="hl opt">::{</span><span class="hl kwb">$f</span><span class="hl opt">}</span> ? <span class="hl str">&apos;install_steps_gtk&apos;</span> <span class="hl opt">:</span> <span class="hl str">&apos;install_steps_interactive&apos;</span><span class="hl opt">;</span>
	    <span class="hl kwc">log</span><span class="hl opt">::</span>l<span class="hl opt">(</span><span class="hl str">&quot;install_steps_auto_install: adding function &quot;</span><span class="hl opt">,</span> <span class="hl kwb">$pkg,</span> <span class="hl str">&quot;::&quot;</span><span class="hl opt">,</span> <span class="hl kwb">$f</span><span class="hl opt">);</span>
	    <span class="hl opt">*{</span><span class="hl str">&quot;install_steps_auto_install::</span><span class="hl ipl">$f</span><span class="hl str">&quot;</span><span class="hl opt">} =</span> <span class="hl kwa">sub</span> <span class="hl opt">{</span>
		<span class="hl kwc">local</span> <span class="hl kwb">&#64;ISA</span> <span class="hl opt">= (</span><span class="hl str">&apos;install_steps_gtk&apos;</span><span class="hl opt">,</span> <span class="hl kwb">&#64;ISA</span><span class="hl opt">);</span>
		<span class="hl opt">&amp;{</span><span class="hl kwb">$pkg</span> <span class="hl opt">.</span> <span class="hl str">&apos;::&apos;</span> <span class="hl opt">.</span> <span class="hl kwb">$f</span><span class="hl opt">};</span>
	    <span class="hl opt">};</span>
	<span class="hl opt">}</span>
	<span class="hl kwa">goto</span> <span class="hl opt">&amp;</span>install_steps_gtk<span class="hl opt">::</span>new<span class="hl opt">;</span>
    <span class="hl opt">}</span> <span class="hl kwa">else</span> <span class="hl opt">{</span>
	<span class="hl opt">(</span><span class="hl kwc">bless</span> <span class="hl opt">{},</span> <span class="hl kwc">ref</span> <span class="hl kwb">$type</span> <span class="hl opt">||</span> <span class="hl kwb">$type</span><span class="hl opt">)-&gt;</span><span class="hl kwd">SUPER</span><span class="hl opt">::</span>new<span class="hl opt">(</span><span class="hl kwb">$o</span><span class="hl opt">);</span>
    <span class="hl opt">}</span>
<span class="hl opt">}</span>

<span class="hl kwa">sub</span> configureNetwork <span class="hl opt">{</span>
    <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$o</span><span class="hl opt">) =</span> <span class="hl kwb">&#64;_</span><span class="hl opt">;</span>
    modules<span class="hl opt">::</span>load_thiskind<span class="hl opt">(</span><span class="hl str">&apos;net&apos;</span><span class="hl opt">);</span>
    <span class="hl kwa">goto</span> <span class="hl opt">&amp;</span>install_steps<span class="hl opt">::</span>configureNetwork<span class="hl opt">;</span>
<span class="hl opt">}</span>

<span class="hl kwa">sub</span> enteringStep<span class="hl opt">(</span><span class="hl kwb">$$$</span><span class="hl opt">) {</span>
    <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$o, $step</span><span class="hl opt">) =</span> <span class="hl kwb">&#64;_</span><span class="hl opt">;</span>
    <span class="hl kwc">print</span> _<span class="hl opt">(</span><span class="hl str">&quot;Entering step `</span><span class="hl ipl">%s</span><span class="hl str">&apos;</span><span class="hl esc">\n</span><span class="hl str">&quot;</span><span class="hl opt">,</span> translate<span class="hl opt">(</span><span class="hl kwb">$o</span><span class="hl opt">-&gt;{</span>steps<span class="hl opt">}{</span><span class="hl kwb">$step</span><span class="hl opt">}{</span>text<span class="hl opt">}));</span>
    <span class="hl kwb">$o</span><span class="hl opt">-&gt;</span><span class="hl kwd">SUPER</span><span class="hl opt">::</span>enteringStep<span class="hl opt">(</span><span class="hl kwb">$step</span><span class="hl opt">);</span>
<span class="hl opt">}</span>

<span class="hl kwa">sub</span> ask_warn <span class="hl opt">{</span>
    <span class="hl kwc">log</span><span class="hl opt">::</span>l<span class="hl opt">(</span><span class="hl kwc">ref</span> <span class="hl kwb">$_</span><span class="hl opt">[</span><span class="hl num">1</span><span class="hl opt">]</span> ? <span class="hl kwc">join</span> <span class="hl str">&quot; &quot;</span><span class="hl opt">, &#64;{</span><span class="hl kwb">$_</span><span class="hl opt">[</span><span class="hl num">1</span><span class="hl opt">]} :</span> <span class="hl kwb">$_</span><span class="hl opt">[</span><span class="hl num">1</span><span class="hl opt">]);</span>
<span class="hl opt">}</span>
<span class="hl kwa">sub</span> wait_message <span class="hl opt">{}</span>

<span class="hl kwa">sub</span> errorInStep <span class="hl opt">{</span>
    <span class="hl kwc">print</span> <span class="hl str">&quot;error :(</span><span class="hl esc">\n</span><span class="hl str">&quot;</span><span class="hl opt">;</span> 
    <span class="hl kwc">print</span> <span class="hl str">&quot;switch to console f2 for a shell</span><span class="hl esc">\n</span><span class="hl str">&quot;</span><span class="hl opt">;</span>
    <span class="hl kwc">print</span> <span class="hl str">&quot;Press &lt;Enter&gt; to reboot</span><span class="hl esc">\n</span><span class="hl str">&quot;</span><span class="hl opt">;</span>
    <span class="hl opt">&lt;</span>STDIN<span class="hl opt">&gt;;</span>
    c<span class="hl opt">::</span>_exit<span class="hl opt">(</span><span class="hl num">0</span><span class="hl opt">);</span>
<span class="hl opt">}</span>


<span class="hl slc">#-######################################################################################</span>
<span class="hl slc">#- Steps Functions</span>
<span class="hl slc">#-######################################################################################</span>
<span class="hl kwa">sub</span> selectLanguage <span class="hl opt">{</span>
    <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$o</span><span class="hl opt">) =</span> <span class="hl kwb">&#64;_</span><span class="hl opt">;</span>
    <span class="hl kwb">$o</span><span class="hl opt">-&gt;</span><span class="hl kwd">SUPER</span><span class="hl opt">::</span>selectLanguage<span class="hl opt">;</span>
    lang<span class="hl opt">::</span>load_console_font<span class="hl opt">(</span><span class="hl kwb">$o</span><span class="hl opt">-&gt;{</span>lang<span class="hl opt">});</span>
<span class="hl opt">}</span>

<span class="hl kwa">sub</span> installPackages <span class="hl opt">{</span>
    <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$o, $packages</span><span class="hl opt">) =</span> <span class="hl kwb">&#64;_</span><span class="hl opt">;</span>
    catch_cdie <span class="hl opt">{</span> <span class="hl kwb">$o</span><span class="hl opt">-&gt;</span><span class="hl kwd">install_steps</span><span class="hl opt">::</span>installPackages<span class="hl opt">(</span><span class="hl kwb">$packages</span><span class="hl opt">) }</span> <span class="hl kwa">sub</span> <span class="hl opt">{</span> <span class="hl kwc">print</span> <span class="hl str">&quot;</span><span class="hl ipl">$&#64;\n</span><span class="hl str">&quot;</span><span class="hl opt">;</span> <span class="hl num">1</span> <span class="hl opt">}</span>
<span class="hl opt">}</span>

<span class="hl kwa">sub</span> exitInstall <span class="hl opt">{</span>
    <span class="hl kwc">my</span> <span class="hl opt">(</span><span class="hl kwb">$o, $alldone</span><span class="hl opt">) =</span> <span class="hl kwb">&#64;_</span><span class="hl opt">;</span>
    <span class="hl kwa">return if</span> <span class="hl kwb">$o</span><span class="hl opt">-&gt;{</span>autoExitInstall<span class="hl opt">};</span>

    <span class="hl kwa">if</span> <span class="hl opt">(</span><span class="hl kwb">$graphical</span><span class="hl opt">) {</span>
	<span class="hl kwc">my</span> <span class="hl kwb">$O</span> <span class="hl opt">=</span> <span class="hl kwc">bless</span> <span class="hl kwb">$o,</span> <span class="hl str">&quot;install_steps_gtk&quot;</span><span class="hl opt">;</span>
	<span class="hl kwb">$O</span><span class="hl opt">-&gt;</span><span class="hl kwd">exitInstall</span><span class="hl opt">(</span><span class="hl kwb">$alldone</span><span class="hl opt">);</span>
    <span class="hl opt">}</span> <span class="hl kwa">else</span> <span class="hl opt">{</span>
	install_steps<span class="hl opt">::</span>exitInstall<span class="hl opt">(</span><span class="hl kwb">$o</span><span class="hl opt">);</span>
	<span class="hl kwc">print</span> <span class="hl str">&quot;</span><span class="hl esc">\a</span><span class="hl str">&quot;</span><span class="hl opt">;</span>
	<span class="hl kwc">print</span> <span class="hl str">&quot;Auto installation complete (the postInstall is not done yet though)</span><span class="hl esc">\n</span><span class="hl str">&quot;</span><span class="hl opt">;</span>
	<span class="hl kwc">print</span> <span class="hl str">&quot;Press &lt;Enter&gt; to reboot</span><span class="hl esc">\n</span><span class="hl str">&quot;</span><span class="hl opt">;</span>
	<span class="hl opt">&lt;</span>STDIN<span class="hl opt">&gt;;</span>
    <span class="hl opt">}</span>
<span class="hl opt">}</span>

<span class="hl num">1</span><span class="hl opt">;</span>
</code></pre></td></tr></table>
</div> <!-- class=content -->
<div class='footer'>generated by <a href='https://git.zx2c4.com/cgit/about/'>cgit v1.2.1</a> (<a href='https://git-scm.com/'>git 2.21.0</a>) at 2025-03-12 11:15:09 +0000</div>
</div> <!-- id=cgit -->
</body>
</html>