mirror of
git://source.winehq.org/git/wine.git
synced 2024-09-06 03:50:21 +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
|
||||
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 {
|
||||
|
|
|
@ -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()
|
||||
|
|
Loading…
Reference in a new issue