From 1c5b8b1ae71e6e1f8aa3c03658345ee79a30f4c6 Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Fri, 14 May 2004 00:43:50 +0000 Subject: [PATCH] Make wineinstall use wineprefixcreate instead of duplicating the functionality. --- tools/wineinstall | 169 ++++---------------------------------- tools/wineprefixcreate.in | 23 +++--- 2 files changed, 30 insertions(+), 162 deletions(-) diff --git a/tools/wineinstall b/tools/wineinstall index eff2781751f..9fed197d56c 100755 --- a/tools/wineinstall +++ b/tools/wineinstall @@ -26,10 +26,8 @@ sysconfdir=$prefix/etc # where wine.conf and the global registry are supp bindir=$prefix/bin # where winelib apps will be (or are) installed libdir=$prefix/lib # where libwine.so will be (or is) installed exdir=documentation/samples # where the sample system.ini resides -GCONF=$sysconfdir/wine.conf # default path of the wine.conf global config file LCONF=~/.wine/config # default path of the local config file BINDIST=no # whether called from a binary package config script -DOGLOBALCONF=auto # whether to autogenerate wine.conf DOLOCALCONF=auto # whether to autogenerate localconf DOWCHK=auto # whether to autoconfigure existing-windows installation DOWINE=auto # whether to autoconfigure no-windows installation @@ -42,8 +40,6 @@ WINECONF=tools/wineconf # path to the wineconf perl script # this is only for no-windows installs WINEINI=$exdir/config # path to the default wine config file (also used by wineconf) -RUNDLL32=programs/rundll32/rundll32 # path to the rundll32 winelib application -INFSCRIPT=tools/wine.inf # path to the default .inf script # CROOT=/var/wine # path of the fake Drive C (asks user if not set) #--- end of defaults @@ -92,54 +88,6 @@ function conf_string_answer { read ANSWER } -function create_windows_directories { - for tdir in "$CROOT/windows" "$CROOT/windows/system" \ - "$CROOT/windows/command" \ - "$CROOT/windows/Start Menu" "$CROOT/windows/Start Menu/Programs" \ - "$CROOT/Program Files" "$CROOT/Program Files/Common Files" \ - "$CROOT/windows/Profiles" "$CROOT/windows/Profiles/Administrator" \ - "$CROOT/windows/Fonts" "$CROOT/windows/Start Menu/Programs/Startup" - do [ -d "$tdir" ] || mkdir "$tdir" - done - cp $INFSCRIPT "$CROOT/windows/system/wine.inf" -} - -#creates symbolic link in windows directory to installed winelib application -#parameters: -# - name of the installed winelib application -# - full path to application in the winelib directory -function link_app { - if [ "$WINEINSTALLED" = 'no' ] - then { - ln -sf $PWD/programs/$1/$1.exe.so $2 - } - else { - ln -sf $libdir/wine/$1.exe.so $2 - } - fi -} - -#puts windows applications replacements to windows directories, -#configures them -function configure_wine_applications { - link_app start "$CROOT/windows/command/start.exe" - link_app notepad "$CROOT/windows/notepad.exe" - link_app regedit "$CROOT/windows/regedit.exe" - link_app rundll32 "$CROOT/windows/rundll32.exe" - link_app wcmd "$CROOT/windows/system/wcmd.exe" - link_app control "$CROOT/windows/system/control.exe" - link_app winhelp "$CROOT/windows/system/help.exe" - link_app notepad "$CROOT/windows/system/notepad.exe" - link_app progman "$CROOT/windows/system/progman.exe" - link_app regsvr32 "$CROOT/windows/system/regsvr32.exe" - link_app winemine "$CROOT/windows/system/winmine.exe" - link_app winver "$CROOT/windows/system/winver.exe" - link_app uninstaller "$CROOT/windows/uninstall.exe" - link_app winhelp "$CROOT/windows/winhelp.exe" - link_app winhelp "$CROOT/windows/winhlp32.exe" - link_app winebrowser "$CROOT/windows/winebrowser.exe" -} - # startup... echo "WINE Installer v0.74" @@ -356,25 +304,6 @@ then { fi # BINDIST # now check whether we should generate wine.conf -if [ -z "$DOGLOBALCONF" ] -then - DOGLOBALCONF=auto -fi - -if [ "$DOGLOBALCONF" = 'auto' ] -then { - # see if we already have a system wine.conf - if [ ! -f $GCONF ] && [ `whoami` = 'root' ] - then - DOGLOBALCONF=no - echo "Creation of a global config file is not supported in wineinstall at this" - echo "time. When the configuration architecture is cleaned up this functionality" - echo "will be restored to wineinstall." - echo - fi -} -fi - if [ "$DOLOCALCONF" = 'auto' ] then { # see if the user is root, if so, explicitly ask them if they want a @@ -491,7 +420,7 @@ if [ "$DOWINE" = 'yes' ] then { # set an appropriate DCROOT if [ `whoami` != 'root' ] - then DCROOT=~/c + then DCROOT=~/.wine/drive_c else DCROOT=/c fi @@ -519,8 +448,23 @@ then { done echo "Configuring Wine for a no-windows install in $CROOT..." - create_windows_directories - configure_wine_applications + if [ ! -d ~/.wine/dosdevices ] + then + mkdir ~/.wine/dosdevices + ln -s /mnt/fd0 ~/.wine/dosdevices/a: + ln -s $CROOT ~/.wine/dosdevices/c: + ln -s /cdrom ~/.wine/dosdevices/d: + ln -s /tmp ~/.wine/dosdevices/e: + ln -s ~ ~/.wine/dosdevices/f: + ln -s / ~/.wine/dosdevices/z: + fi + + if [ "$WINEINSTALLED" = 'no' ] + then + tools/wineprefixcreate --update --use-wine-tree . + else + wineprefixcreate --update + fi # create $LCONF using the default config file $WINEINI if [ "$DOLOCALCONF" = 'yes' ] @@ -553,83 +497,6 @@ else DOREG=no fi -#install the global config file $GCONF -if [ "$DOGLOBALCONF" = 'yes' ] -then - if [ ! -f $sysconfdir ] - then - mkdir -p $sysconfdir - fi - - cp $TMPCONF $GCONF > /dev/null -fi - -# check whether we need to install default registry -# (not to be done if windows registry exists) -if [ "$DOREG" = 'auto' ] -then { - CROOT=`sed -n '/^\[Drive C\]$/,/^\[.*\]$/ s/^\"Path\" = \"\(.*\)\"/\1/p' $LCONF` - echo "Checking for real Windows registry..." - if [ -f "$CROOT/windows/system.dat" ] - then DOREG=no - elif [ -f "$CROOT/windows/system32/config/system" ] - then DOREG=no - elif [ -f "$CROOT/WINNT/system32/config/system" ] - then DOREG=no - else DOREG=yes - fi - if [ "$DOREG" = 'yes' ] - then echo "Not found, default Wine registry will be installed." - else echo "Windows registry found, will not install default Wine registry." - fi - echo -} -fi - -# install default registry entries -if [ "$DOREG" = 'yes' ] -then { - if [ "$BINDIST" = 'no' ] - then { - echo "Compiling rundll32..." - (cd programs/rundll32; make) - echo - } - fi - echo "Preparing to install default Wine registry entries..." - - # Check if dosdevices exists and create it if necessary - if [ ! -d ~/.wine/dosdevices ] - then - mkdir ~/.wine/dosdevices - ln -s /mnt/fd0 ~/.wine/dosdevices/a: - ln -s $CROOT ~/.wine/dosdevices/c: - ln -s /cdrom ~/.wine/dosdevices/d: - ln -s /tmp ~/.wine/dosdevices/e: - ln -s ~ ~/.wine/dosdevices/f: - ln -s / ~/.wine/dosdevices/z: - fi - - echo "Installing default Wine registry entries..." - echo - if ! $RUNDLL32 setupapi.dll,InstallHinfSection DefaultInstall 128 $INFSCRIPT > /dev/null - then { - echo "Registry install failed." - conf_reset_question regedit_error - conf_question high regedit_error - exit 1 - } - else { - echo - echo "Registry entries successfully installed." - } - fi - if [ "$SYSREG" = 'auto' ] - then SYSREG=yes - fi -} -fi - # make root's registry global, if desired if [ `whoami` = 'root' ] && [ "$DOREG" = 'yes' ] && [ "$SYSREG" = 'yes' ] then { diff --git a/tools/wineprefixcreate.in b/tools/wineprefixcreate.in index bb887118f65..72c6b1a7564 100644 --- a/tools/wineprefixcreate.in +++ b/tools/wineprefixcreate.in @@ -91,12 +91,22 @@ else fi WINEPREFIX=`cd "$WINEPREFIX" && pwd` -CROOT="$WINEPREFIX/drive_c" + +# Create the drive symlinks + +if [ ! -d "$WINEPREFIX/dosdevices" ] +then + mkdir "$WINEPREFIX/dosdevices" + [ -d "$WINEPREFIX/drive_c" ] || mkdir "$WINEPREFIX/drive_c" + ln -s "../drive_c" "$WINEPREFIX/dosdevices/c:" + ln -s "/" "$WINEPREFIX/dosdevices/z:" +fi + +CROOT="$WINEPREFIX/dosdevices/c:" # Create the directory tree for i in \ - "$CROOT" \ "$CROOT/windows" \ "$CROOT/windows/command" \ "$CROOT/windows/fonts" \ @@ -114,15 +124,6 @@ do [ -d "$i" ] || mkdir "$i" done -# Create the drive symlinks - -if [ ! -d "$WINEPREFIX/dosdevices" ] -then - mkdir "$WINEPREFIX/dosdevices" - ln -s "../drive_c" "$WINEPREFIX/dosdevices/c:" - ln -s "/" "$WINEPREFIX/dosdevices/z:" -fi - # Create the application symlinks link_app()