wine: New package
PATCH 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
package/Config.in | 1 + package/wine/Config.in | 21 ++++ package/wine/wine.hash | 2 + package/wine/wine.mk | 270 +++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 294 insertions(+)
package/Config.in +1 -0
@@ -1013,6 +1013,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 +21 -0
@@ -0,0 +1,21 @@ +config BR2_PACKAGE_WINE + bool "wine" + depends on BR2_INET_IPV6 + depends on BR2_TOOLCHAIN_HAS_THREADS + depends on BR2_TOOLCHAIN_USES_GLIBC + # Wine has much CPU specific code + depends on BR2_i386 || BR2_x86_64 + 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_i386 || BR2_x86_64 + depends on BR2_TOOLCHAIN_BUILDROOT + depends on !BR2_INET_IPV6 || !BR2_TOOLCHAIN_HAS_THREADS + depends on !BR2_TOOLCHAIN_USES_GLIBC
package/wine/wine.hash new file +2 -0
@@ -0,0 +1,2 @@ +# Locally computed +sha256 0f46dd29b278a3352206b49680f0ac3bfa107e65cb40cb4af51c137f0ebeb271 wine-1.6.2.tar.bz2
package/wine/wine.mk new file +270 -0
270 lines not on this page · raw message
PATCH 1/1 wine: New package
Hi Andr?,
Le 20/01/2015 23:09, Andr? Hentschel a ?crit :
Quoted 17 lines
Adds new package: wine
Wine is a compatibility layer capable of running Windows applications on Linux.
Signed-off-by Andr? Hentschel <[email protected]>---
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 --hostpackage/Config.in | 1 + package/wine/Config.in | 21 ++++ package/wine/wine.hash | 2 + package/wine/wine.mk | 270 +++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 294 insertions(+)
[...]
package/wine/wine.mk line 58
Quoted 11 lines
package/wine/wine.mk new file +11
-0+ +# To support freetype in wine we also need freetype in host-wine for the cross compiling tools +ifeq ($(BR2_PACKAGE_FREETYPE),y) + WINE_CONF_OPTS += --with-freetype + HOST_WINE_CONF_OPTS += --with-freetype + WINE_DEPENDENCIES += freetype + HOST_WINE_DEPENDENCIES += host-freetype +else + WINE_CONF_OPTS += --without-freetype + HOST_WINE_CONF_OPTS += --without-freetype +endif
I'm building your wine package on my 64bits host and the build fail because freetype library in HOST_DIR is build for it, but wine is build for 32bits host.
see my config.log output:
configure:10886: checking for -lfreetype
configure:10911: /usr/bin/gcc -m32 -o conftest -O2 -I/home/naourr/git/buildroot/test/wine/host/usr/include -I/home/naourr/git/buildroot/test/wine/host/usr/include -I/home/naourr/git/buildroot/test/wine/host/usr/include/freetype2 -L/home/naourr/git/buildroot/test/wine/host/lib -L/home/naourr/git/buildroot/test/wine/host/usr/lib -Wl,-rpath,/home/naourr/git/buildroot/test/wine/host/usr/lib conftest.c -lfreetype -L/home/naourr/git/buildroot/test/wine/host/usr/lib -lfreetype >&5/usr/bin/ld: skipping incompatible /home/naourr/git/buildroot/test/wine/host/usr/lib/libfreetype.so when searching for -lfreetype /usr/bin/ld: skipping incompatible /home/naourr/git/buildroot/test/wine/host/usr/lib/libfreetype.so when searching for -lfreetype /usr/bin/ld: skipping incompatible /usr/lib64/libfreetype.so when searching for -lfreetype/usr/bin/ld: cannot find -lfreetype/usr/bin/ld: skipping incompatible /home/naourr/git/buildroot/test/wine/host/usr/lib/libfreetype.so when searching for -lfreetype /usr/bin/ld: skipping incompatible /home/naourr/git/buildroot/test/wine/host/usr/lib/libfreetype.so when searching for -lfreetype /usr/bin/ld: skipping incompatible /usr/lib64/libfreetype.so when searching for -lfreetype/usr/bin/ld: cannot find -lfreetype
collect2: error: ld returned 1 exit status
It seems that --enable-win64 must be added to HOST_WINE_CONF_OPTS for 64bits host.
Best regards,
Romain Naour
[...]
PATCH 1/1 wine: New package
Am 22.01.2015 um 00:07 schrieb Romain Naour:
Quoted 17 lines
I'm building your wine package on my 64bits host and the build fail because freetype library in
HOST_DIRis build for it, but wine is build for 32bits host.see my config.log output:
configure:10886: checking for -lfreetype
configure:10911:/usr/bin/gcc-m32 -o conftest -O2 -I/home/naourr/git/buildroot/test/wine/host/usr/include -I/home/naourr/git/buildroot/test/wine/host/usr/include -I/home/naourr/git/buildroot/test/wine/host/usr/include/freetype2 -L/home/naourr/git/buildroot/test/wine/host/lib -L/home/naourr/git/buildroot/test/wine/host/usr/lib -Wl,-rpath,/home/naourr/git/buildroot/test/wine/host/usr/libconftest.c-lfreetype -L/home/naourr/git/buildroot/test/wine/host/usr/lib -lfreetype >&5/usr/bin/ld: skipping incompatible/home/naourr/git/buildroot/test/wine/host/usr/lib/libfreetype.sowhen searching for -lfreetype/usr/bin/ld: skipping incompatible/home/naourr/git/buildroot/test/wine/host/usr/lib/libfreetype.sowhen searching for -lfreetype/usr/bin/ld: skipping incompatible/usr/lib64/libfreetype.sowhen searching for -lfreetype/usr/bin/ld: cannot find -lfreetype/usr/bin/ld: skipping incompatible/home/naourr/git/buildroot/test/wine/host/usr/lib/libfreetype.sowhen searching for -lfreetype/usr/bin/ld: skipping incompatible/home/naourr/git/buildroot/test/wine/host/usr/lib/libfreetype.sowhen searching for -lfreetype/usr/bin/ld: skipping incompatible/usr/lib64/libfreetype.sowhen searching for -lfreetype/usr/bin/ld: cannot find -lfreetype
collect2: error: ld returned 1 exit status
Quoted 2 lines
It seems that --enable-win64 must be added to
HOST_WINE_CONF_OPTSfor 64bits host.
Wow, good catch, thanks!
Guess it didn't failed on my machine because i also have 32-bit freetype installed on the host.
PATCH 1/1 wine: New package
In reply to André HentschelAndr?, All,
On 2015-01-20 23:09 +0100, Andr? Hentschel spake thusly:
Quoted 1 line
Adds new package: wine
Sorry for jumoing late in the wagon, but here are some minor comments...
[--SNIP--]
Quoted 15 lines
package/wine/Config.in new file +9
-0@@ -0,0 +1,21 @@ +config BR2_PACKAGE_WINE + bool "wine" + depends on BR2_INET_IPV6 + depends on BR2_TOOLCHAIN_HAS_THREADS + depends on BR2_TOOLCHAIN_USES_GLIBC + # Wine has much CPU specific code + depends on BR2_i386 || BR2_x86_64 + help + Wine is a compatibility layer capable of running
package/wine/Config.in line 19
Quoted 10 lines
package/wine/Config.in new file +10
-0+ 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_i386 || BR2_x86_64 + depends on BR2_TOOLCHAIN_BUILDROOT
Did you forget to remove that dependency for the comment?
Quoted 32 lines
package/wine/Config.in new file +2
-0+ depends on !BR2_INET_IPV6 || !BR2_TOOLCHAIN_HAS_THREADS + depends on !BR2_TOOLCHAIN_USES_GLIBCpackage/wine/wine.hash new file +2
-0@@ -0,0 +1,2 @@ +# Locally computed +sha256 0f46dd29b278a3352206b49680f0ac3bfa107e65cb40cb4af51c137f0ebeb271 wine-1.6.2.tar.bz2package/wine/wine.mk new file +16
-0@@ -0,0 +1,270 @@ +################################################################################ +# +# wine +# +################################################################################ + +WINE_VERSION = 1.6.2 +WINE_SOURCE = wine-$(WINE_VERSION).tar.bz2 +WINE_SITE = http://source.winehq.org/git/wine.git/snapshot/ +WINE_LICENSE = LGPLv2.1+ +WINE_LICENSE_FILES = COPYING.LIB +WINE_INSTALL_TARGET = YES +WINE_DEPENDENCIES = host-wine +HOST_WINE_DEPENDENCIES = host-bison host-flex + +# Wine needs its own directory structure and tools for cross compiling
package/wine/wine.mk line 26
Quoted 10 lines
package/wine/wine.mk new file +10
-0+WINE_CONF_OPTS = \ + --with-wine-tools=../host-wine-$(WINE_VERSION) \ + --disable-tests \ + --without-opengl \ + $(if $(BR2_ARCH_IS_64),--enable-win64) + +# Wine needs the host tupel of the external toolchain for cross compiling +ifeq ($(BR2_TOOLCHAIN_BUILDROOT),) + WINE_CONF_OPTS += --host=$(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_PREFIX)) +endif
I know this has already been discussed at length on the list, but it really warrants a bit more explanations here.
package/wine/wine.mk line 33
Quoted 6 lines
package/wine/wine.mk new file +6
-0+ifeq ($(BR2_PACKAGE_CUPS),y) + WINE_CONF_OPTS += --with-cups + WINE_DEPENDENCIES += cups +else + WINE_CONF_OPTS += --without-cups +endif
I do appreciate that you did all that work to enable/disable optional features. That's a great work! :-)
However, for very complex packages, my opinion is that it is much simpler to review and test (and write!) a new complex package with everything disabled. It makes for smaller patches to review, and faster builds to test. Then, new features can be added one by one in subsequent patches, once the core has been upstreamed.
Note that I do not ask you to remove that, jsut keep it. Just suggesting that in case you're fool^Wbold enough to try packaging some other big stuff in the future! Hehe! ;-)
[--SNIP--]
package/wine/wine.mk line 223
Quoted 3 lines
package/wine/wine.mk new file +3
-0+HOST_WINE_CONF_OPTS += \ + --disable-tests \ + --disable-win16 \
[--SNIP--]
package/wine/wine.mk line 267
Quoted 2 lines
package/wine/wine.mk new file +2
-0+ --without-xxf86vm \ + --without-zlib
Like you disabled everthing here.
package/wine/wine.mk line 270
Quoted 2 lines
package/wine/wine.mk new file +2
-0+$(eval $(autotools-package)) +$(eval $(host-autotools-package))
I haven't much more to say, I'll try to have some time this WE to have a further look.
Thanks! :-)
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. | '------------------------------^-------^------------------^--------------------'
PATCH 1/1 wine: New package
Am 22.01.2015 um 00:35 schrieb Yann E. MORIN:
Quoted 6 lines
Andr?, All,
On 2015-01-20 23:09 +0100, Andr? Hentschel spake thusly:
Quoted 1 line
Adds new package: wine
Sorry for jumoing late in the wagon, but here are some minor comments...
Hi Yann,
Thx for the review!
Quoted 5 lines
package/wine/Config.in line 19
Quoted 3 lines
package/wine/Config.in new file +3
-0+comment "wine needs a (e)glibc toolchain w/ IPv6, threads" + depends on BR2_i386 || BR2_x86_64 + depends on BR2_TOOLCHAIN_BUILDROOTDid you forget to remove that dependency for the comment?
yes, thx
Quoted 7 lines
package/wine/wine.mk line 26
Quoted 4 lines
package/wine/wine.mk new file +4
-0+# Wine needs the host tupel of the external toolchain for cross compiling +ifeq ($(BR2_TOOLCHAIN_BUILDROOT),) + WINE_CONF_OPTS += --host=$(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_PREFIX)) +endifI know this has already been discussed at length on the list, but it really warrants a bit more explanations here.
sure, done
Quoted 16 lines
package/wine/wine.mk line 33
Quoted 6 lines
package/wine/wine.mk new file +6
-0+ifeq ($(BR2_PACKAGE_CUPS),y) + WINE_CONF_OPTS += --with-cups + WINE_DEPENDENCIES += cups +else + WINE_CONF_OPTS += --without-cups +endifI do appreciate that you did all that work to enable/disable optional features. That's a great work! :-)
However, for very complex packages, my opinion is that it is much simpler to review and test (and write!) a new complex package with everything disabled. It makes for smaller patches to review, and faster builds to test. Then, new features can be added one by one in subsequent patches, once the core has been upstreamed.
Quoted 3 lines
Note that I do not ask you to remove that, jsut keep it. Just suggesting that in case you're fool^Wbold enough to try packaging some other big stuff in the future! Hehe! ;-)
:D
honestly i'd have a project in mind...
Quoted 9 lines
[--SNIP--]
package/wine/wine.mk line 223
Quoted 3 lines
package/wine/wine.mk new file +3
-0+HOST_WINE_CONF_OPTS += \ + --disable-tests \ + --disable-win16 \[--SNIP--]
package/wine/wine.mk line 267
Quoted 2 lines
package/wine/wine.mk new file +2
-0+ --without-xxf86vm \ + --without-zlibLike you disabled everthing here.
added a comment for this now, too. as it has its reason.
Quoted 5 lines
Quoted 2 lines
+$(eval $(autotools-package))
+$(eval $(host-autotools-package))I haven't much more to say, I'll try to have some time this WE to have a further look.
cool, i'll send try 5 as soon as i tested it