Make used WINE binary configurable
authorJoachim Breitner <joachim.breitner@itomig.de>
Wed, 17 Jun 2009 13:04:17 +0000 (15:04 +0200)
committerJoachim Breitner <joachim.breitner@itomig.de>
Wed, 17 Jun 2009 13:04:17 +0000 (15:04 +0200)
In the wrapper script, one now can use the WINE= variable to specify
what wine binary (/usr/bin/wine, /opt/wine/wine-3.2.1/bin/wine) to be
used. This field will also be read by debian/rules to put the correct
Depends: line into debian/control.

wine-app-packager
wine-app-packager.1

index 6cb7560..a27177b 100755 (executable)
@@ -156,6 +156,10 @@ __END__
        echo "Writing \"$DEBDIR/debian/rules\""
        cat >"$DEBDIR/debian/rules" <<__END__
 #!/usr/bin/make -f
+
+WINEBINARY := \$(shell awk 'BEGIN { FS="=" } \$\$1 == "WINE" {print \$\$2}' < $APPNAME)
+WINEPKG := \$(word 1,\$(subst :, ,\$(shell dpkg-query -S \$\$(readlink -f \${WINEBINARY}))))
+
 build:
        
 
@@ -173,7 +177,12 @@ install: build
        if grep -q "^EXE='c:.Programme.Please Adjust.start.exe'" $APPNAME ; \
        then echo "Please update the EXE variable in the script $APPNAME"; \
             exit 1; \
-       fi;
+       fi
+
+       if ! -x \${WINEBINARY}; \
+       then echo "File referenced by WINE=\${WINEBINARY} in the script $APPNAME does not exist."; \
+            exit 1;\
+       fi
 
 binary-arch: install
        # nothing to do here
@@ -193,7 +202,7 @@ binary-indep: install
        dh_fixperms
        dh_installdeb
        dh_shlibdeps
-       dh_gencontrol -- -Vwine:Depends="\$\$(dpkg-query -S \$\$(readlink -f /usr/bin/wine) | cut -d: -f1)"
+       dh_gencontrol -- -Vwine:Depends=\${WINEPKG}
        dh_md5sums
        dh_builddeb
 
@@ -227,6 +236,7 @@ __END__
 
 # This variable need to be set:
 EXE='c:\\Programme\\Please Adjust\\start.exe'
+WINE=/usr/bin/wine
 
 # These are already filled correctly
 APPNAME="$APPNAME"
@@ -243,7 +253,7 @@ fi
 
 
 export WINEPREFIX="\$WINE_HOME"
-exec wine "\$EXE"
+exec "\$WINE" "\$EXE"
 __END__
        chmod +x "$DEBDIR/$APPNAME" 
        echo "Generating \"$DEBDIR/debian/changelog\""
@@ -253,7 +263,8 @@ __END__
        cat <<__END__
 Done preparing the source package. You can review the contents of these files
 now, or go ahead with wine-app-packager prepare, from within the created source
-directory in $DEBDIR.
+directory in $DEBDIR. Do not forget to set the variable \$EXE and possibly the variable \$WINE 
+in the wrapper script $DEBDIR/$APPNAME.
 __END__
 
 elif [ "$1" = "prepare" ]
index 509b6de..4ea0253 100644 (file)
@@ -18,11 +18,13 @@ guides you in wrapping a Windows program in a Debian package,
 based on wine. It will create a template Debian source package for you and
 include the \fIC:\\\fR directory tree of your program.
 .PP
-The produced packages will install the provided \fIdrive_c/\fR directory to
-\fI/opt/wineapps/wine-<application>\fR and a copy of the wine configuration as
-\fI/opt/wineapps/wine-<application>/wine-config.tar.gz\fR. A wrapper will be
-placed in \fI/usr/bin/<application>\fR. The package will depend on the
-currently used wine package, i.e. the package that ships \fI/usr/bin/wine\fR. If that file happens to be a symlink, it will be followed.
+The produced packages will install the provided \fIdrive_c/\fR directory  and a
+copy of the wine configuration to the appropriate places (see below). A wrapper
+will be placed in \fI/usr/bin/<application>\fR. This wrapper also contains the
+name of the actual \fI.exe\fR file to be used.
+.PP
+The package will depend on the
+currently used wine package, i.e. the package that ships the wine binary configured in the the wrapper script (default: \fI/usr/bin/wine\fR). If that file happens to be a symlink, it will be followed.
 
 .SH OPTIONS
 .TP
@@ -47,17 +49,20 @@ or
 .nf
 wine-app-packager run wine C:\\\\Applications\\\\DemoApplication\\\\DemoApplication.exe
 .fi
+If you want to use a wine installation that is not in the default path, you
+need to specify the full path to the wine binary here. In this case, you also
+need to update the \fB$WINE\fR variable in the wrapper script.
 
 .TP
 .B wine-app-packager\fR commit
 takes the changes you made in \fI~/.wine-<application>-master\fR and puts them
-back into the Debian source package. Ususally, this will be followed by
+back into the Debian source package. Usually, this will be followed by
 calls to \fBdebchange\fR and \fBdebuild\fR to build the package.
 Removes \fI~/.wine-<application>-master\fR afterwards.
 
 .TP
 .B wine-app-packager\fR abort
-Just removes \fI~/.wine-<application>-master\fR, throwing away all changes.
+just removes \fI~/.wine-<application>-master\fR, throwing away all changes.
 
 .SH "FILES"
 
@@ -67,8 +72,8 @@ The resulting \fBwine-<application>\fR packages use the following files and dire
 \fI/usr/bin/<application>\fR
 Shell wrapper that creates the users dedicated \fB$WINEPREFIX\fR as
 \fI~/.wine-<application>\fR, fills it with the provided wine configuration and
-symlinks to the \fIdrive_c/\fR and starts the application, using the wine
-binary found at \fI/usr/bin/wine\fR.
+symlinks to the \fIdrive_c/\fR and starts the application, using the configured wine
+binary (default: \fI/usr/bin/wine\fR).
 
 .TP
 \fI/opt/wineapps/wine-<application>\fR
@@ -88,9 +93,9 @@ $ wine-app-packager init
 1.2.3
 $ cd 7z-1.2.3
 $ wine-app-packager prepare
-$ wine-app-packager run /tmp/7z465.exe
+$ wine-app-packager run /opt/wine/wine-3.4.5/bin/wine /tmp/7z465.exe
 $ wine-app-packager commit
-$ edit ./z7 # set the EXE= variable
+$ edit ./z7 # set the EXE= variable, possibly the WINE= variable, too
 $ debuild -uc -us
 $ sudo debi
 $ 7z