mirror of
https://github.com/reactos/wine.git
synced 2025-02-16 10:59:45 +00:00
Make wineinstall use wineprefixcreate instead of duplicating the
functionality.
This commit is contained in:
parent
0d33e5e32d
commit
1c5b8b1ae7
@ -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
|
bindir=$prefix/bin # where winelib apps will be (or are) installed
|
||||||
libdir=$prefix/lib # where libwine.so will be (or is) installed
|
libdir=$prefix/lib # where libwine.so will be (or is) installed
|
||||||
exdir=documentation/samples # where the sample system.ini resides
|
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
|
LCONF=~/.wine/config # default path of the local config file
|
||||||
BINDIST=no # whether called from a binary package config script
|
BINDIST=no # whether called from a binary package config script
|
||||||
DOGLOBALCONF=auto # whether to autogenerate wine.conf
|
|
||||||
DOLOCALCONF=auto # whether to autogenerate localconf
|
DOLOCALCONF=auto # whether to autogenerate localconf
|
||||||
DOWCHK=auto # whether to autoconfigure existing-windows installation
|
DOWCHK=auto # whether to autoconfigure existing-windows installation
|
||||||
DOWINE=auto # whether to autoconfigure no-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
|
# this is only for no-windows installs
|
||||||
WINEINI=$exdir/config # path to the default wine config file (also used by wineconf)
|
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)
|
# CROOT=/var/wine # path of the fake Drive C (asks user if not set)
|
||||||
#--- end of defaults
|
#--- end of defaults
|
||||||
|
|
||||||
@ -92,54 +88,6 @@ function conf_string_answer {
|
|||||||
read 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...
|
# startup...
|
||||||
|
|
||||||
echo "WINE Installer v0.74"
|
echo "WINE Installer v0.74"
|
||||||
@ -356,25 +304,6 @@ then {
|
|||||||
fi # BINDIST
|
fi # BINDIST
|
||||||
|
|
||||||
# now check whether we should generate wine.conf
|
# 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' ]
|
if [ "$DOLOCALCONF" = 'auto' ]
|
||||||
then {
|
then {
|
||||||
# see if the user is root, if so, explicitly ask them if they want a
|
# see if the user is root, if so, explicitly ask them if they want a
|
||||||
@ -491,7 +420,7 @@ if [ "$DOWINE" = 'yes' ]
|
|||||||
then {
|
then {
|
||||||
# set an appropriate DCROOT
|
# set an appropriate DCROOT
|
||||||
if [ `whoami` != 'root' ]
|
if [ `whoami` != 'root' ]
|
||||||
then DCROOT=~/c
|
then DCROOT=~/.wine/drive_c
|
||||||
else DCROOT=/c
|
else DCROOT=/c
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -519,8 +448,23 @@ then {
|
|||||||
done
|
done
|
||||||
echo "Configuring Wine for a no-windows install in $CROOT..."
|
echo "Configuring Wine for a no-windows install in $CROOT..."
|
||||||
|
|
||||||
create_windows_directories
|
if [ ! -d ~/.wine/dosdevices ]
|
||||||
configure_wine_applications
|
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
|
# create $LCONF using the default config file $WINEINI
|
||||||
if [ "$DOLOCALCONF" = 'yes' ]
|
if [ "$DOLOCALCONF" = 'yes' ]
|
||||||
@ -553,83 +497,6 @@ else
|
|||||||
DOREG=no
|
DOREG=no
|
||||||
fi
|
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
|
# make root's registry global, if desired
|
||||||
if [ `whoami` = 'root' ] && [ "$DOREG" = 'yes' ] && [ "$SYSREG" = 'yes' ]
|
if [ `whoami` = 'root' ] && [ "$DOREG" = 'yes' ] && [ "$SYSREG" = 'yes' ]
|
||||||
then {
|
then {
|
||||||
|
@ -91,12 +91,22 @@ else
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
WINEPREFIX=`cd "$WINEPREFIX" && pwd`
|
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
|
# Create the directory tree
|
||||||
|
|
||||||
for i in \
|
for i in \
|
||||||
"$CROOT" \
|
|
||||||
"$CROOT/windows" \
|
"$CROOT/windows" \
|
||||||
"$CROOT/windows/command" \
|
"$CROOT/windows/command" \
|
||||||
"$CROOT/windows/fonts" \
|
"$CROOT/windows/fonts" \
|
||||||
@ -114,15 +124,6 @@ do
|
|||||||
[ -d "$i" ] || mkdir "$i"
|
[ -d "$i" ] || mkdir "$i"
|
||||||
done
|
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
|
# Create the application symlinks
|
||||||
|
|
||||||
link_app()
|
link_app()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user