Skip to contentSkip to conversation

wine: New package

PATCH Superseded André Hentschel 2 participants 3 messages Feb 18, 2015 – Feb 19, 2015

v6 of 9 Superseded Latest is v9 →

lore
Share & tools
lore
#0 lore raw

PATCH v6 1/1 wine: New package

Adds new package: wine

Wine is a compatibility layer capable of running Windows applications on Linux.

---
I hope i addressed all the comments in the correct manner
try 2: Fix issue spotted by baruch
try 3: Added comments, added hash file, fixed X11 check, depend on internal toolchain, added bison and flex to host dependencies try 4: instead of depending on internal toolchains add the expected tuple via --host
try 5: Added 64-bit check for host-wine and restricted wine build to x86 for now. Also added more comments try 6: Implemented ideas by Yann E. MORIN and added his suggested code. Including:
* download from sourceforge
* reduction of host-wine build process
* improved fix for the gcc wrapper problem

 package/Config.in      |   1 +
 package/wine/Config.in |  24 ++++
 package/wine/wine.hash |   2 +
 package/wine/wine.mk   | 292 +++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 319 insertions(+)
package/Config.in +1 -0
index 5f6ebc2..db2c75a 100644
@@ -1015,6 +1015,7 @@ menu "Miscellaneous"
 	source "package/snowball-init/Config.in"
 	source "package/sound-theme-borealis/Config.in"
 	source "package/sound-theme-freedesktop/Config.in"
+	source "package/wine/Config.in"
 endmenu
 
 menu "Networking applications"
package/wine/Config.in new file +24 -0
new file mode 100644
index 0000000..9ac0a83
@@ -0,0 +1,24 @@
+config BR2_PACKAGE_WINE
+	bool "wine"
+	depends on BR2_INET_IPV6
+	depends on BR2_TOOLCHAIN_HAS_THREADS
+	depends on BR2_TOOLCHAIN_USES_GLIBC
+	# Wine only builds on certain architectures
+	depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
+	# Wine has much CPU specific code and mostly makes sense on x86
+	depends on BR2_i386
+	help
+	  Wine is a compatibility layer capable of running Windows
+	  applications on Linux. Instead of simulating internal
+	  Windows logic like a virtual machine or emulator, Wine
+	  translates Windows API calls into POSIX calls on-the-fly,
+	  eliminating the performance and memory penalties of other
+	  methods.
+
+	  http://www.winehq.org
+
+comment "wine needs a (e)glibc toolchain w/ IPv6, threads"
+	depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
+	depends on BR2_i386
+	depends on !BR2_INET_IPV6 || !BR2_TOOLCHAIN_HAS_THREADS
+	depends on !BR2_TOOLCHAIN_USES_GLIBC
package/wine/wine.hash new file +2 -0
new file mode 100644
index 0000000..2c1ab61
@@ -0,0 +1,2 @@
+# Locally computed
+sha256 f0ab9eede5a0ccacbf6e50682649f9377b9199e49cf55641f1787cf72405acbe wine-1.6.2.tar.bz2
package/wine/wine.mk new file +292 -0

292 lines not on this page · raw message

#1 lore raw

PATCH v6 1/1 wine: New package

Andre, All,

On 2015-02-18 22:35 +0100, Andr? Hentschel spake thusly:

Quoted 1 line

Adds new package: wine

[--SNIP--]

Quoted 13 lines
package/wine/wine.mk new file +7 -0
new file mode 100644
index 0000000..387ee5d
@@ -0,0 +1,292 @@
+################################################################################
+#
+# wine
+#
+################################################################################
+
+WINE_VERSION = 1.6.2

package/wine/wine.mk line 17

Quoted 10 lines
package/wine/wine.mk new file +10 -0
+WINE_SOURCE = wine-$(WINE_VERSION).tar.bz2
+WINE_SITE = http://downloads.sourceforge.net/project/wine/Source/
+WINE_LICENSE = LGPLv2.1+
+WINE_LICENSE_FILES = COPYING.LIB LICENSE
+WINE_DEPENDENCIES = host-bison host-flex host-wine
+
+# Wine needs to enable 64-bit build tools on 64-bit host
+ifeq ($(HOSTARCH),x86_64)
+	HOST_WINE_CONF_OPTS += --enable-win64
+endif

Please, keep all host-related stuff together. In this patch, you have some configure options here and at the end, and build+install commands here. Just move evrything host-related together (preferrably at the bottom of the file).

package/wine/wine.mk line 28

Quoted 10 lines
package/wine/wine.mk new file +10 -0
+# Wine only needs the host tools to be built, so cut-down the
+# build time by building just what we need.
+HOST_WINE_BUILD_CMDS = \
+	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \
+	tools \
+	tools/widl \
+	tools/winebuild \
+	tools/winegcc \
+	tools/wmc \
+	tools/wrc

We use macros to define build commands:

    define HOST_WINE_BUILD_CMDS
        $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \
            tools \
            tools/widl \
            tools/winebuild \
            tools/winegcc \
            tools/wmc \
            tools/wrc
    endef

Why TARGET_MAKE_ENV? You should use HOST_MAKE_ENV, since you're building a host package at that point.

Otherwise, looks good. I'm queueing that for further inspection + tests this WE.

Regards,
Yann E. MORIN.

Signature · 6 lines
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'
#2 lore raw

PATCH v6 1/1 wine: New package

Hi Yann, All,

Am 18.02.2015 um 23:09 schrieb Yann E. MORIN:

Quoted 14 lines

Andre, All,

On 2015-02-18 22:35 +0100, Andr? Hentschel spake thusly:

package/wine/wine.mk line 17

Quoted 6 lines
package/wine/wine.mk new file +6 -0
+WINE_DEPENDENCIES = host-bison host-flex host-wine
+
+# Wine needs to enable 64-bit build tools on 64-bit host
+ifeq ($(HOSTARCH),x86_64)
+	HOST_WINE_CONF_OPTS += --enable-win64
+endif

Please, keep all host-related stuff together. In this patch, you have some configure options here and at the end, and build+install commands here. Just move evrything host-related together (preferrably at the bottom of the file).

done for v7

Quoted 13 lines

package/wine/wine.mk line 28

Quoted 10 lines
package/wine/wine.mk new file +10 -0
+# Wine only needs the host tools to be built, so cut-down the
+# build time by building just what we need.
+HOST_WINE_BUILD_CMDS = \
+	$(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \
+	tools \
+	tools/widl \
+	tools/winebuild \
+	tools/winegcc \
+	tools/wmc \
+	tools/wrc

We use macros to define build commands:

Quoted 9 lines
    define HOST_WINE_BUILD_CMDS
        $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) \
            tools \
            tools/widl \
            tools/winebuild \
            tools/winegcc \
            tools/wmc \
            tools/wrc
    endef

done for v7

Quoted 3 lines

Why TARGET_MAKE_ENV? You should use HOST_MAKE_ENV, since you're building a host package at that point.

fixed in v7, i copy&pasted to much from you ;)

Quoted 2 lines

Otherwise, looks good. I'm queueing that for further inspection + tests this WE.

thx