[MacPorts] #40724: Wine build under OSX 10.9
MacPorts
noreply at macports.org
Thu Oct 10 05:51:53 PDT 2013
#40724: Wine build under OSX 10.9
---------------------------------+--------------------------
Reporter: mattbrocklehurst@… | Owner: ryandesign@…
Type: defect | Status: new
Priority: Normal | Milestone:
Component: ports | Version: 2.2.0
Resolution: | Keywords: mavericks
Port: wine |
---------------------------------+--------------------------
Changes (by macsforever2000@…):
* cc: jwa@… (added)
* owner: macports-tickets@… => ryandesign@…
* keywords: => mavericks
* type: update => defect
* port: => wine
Old description:
> Received this when I tried getting Wine to build (after doing hack
> documented earlier)
>
> gdi.c:144:5: error: use of undeclared identifier 'CGDirectPaletteRef'
> CGDirectPaletteRef palette;
> ^
> gdi.c:190:5: error: use of undeclared identifier 'palette'
> palette = CGPaletteCreateWithDisplay(mainDisplay);
> ^
> gdi.c:191:9: error: use of undeclared identifier 'palette'
> if (palette)
> ^
> gdi.c:193:52: error: use of undeclared identifier 'palette'
> palette_size = CGPaletteGetNumberOfSamples(palette);
> ^
> gdi.c:194:26: error: use of undeclared identifier 'palette'
> CGPaletteRelease(palette);
> ^
> 5 errors generated.
> make[1]: *** [gdi.o] Error 1
> make: *** [dlls/winemac.drv] Error 2
> make: *** Waiting for unfinished jobs....
>
> Looking around this is in WineHQ and has been patched
> http://bugs.winehq.org/show_bug.cgi?id=34162
>
> So modified Port file to include patch
>
> /opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/x11/wine/Portfile
> {{{
> patchfiles BOOL.patch \
> mach_machine.patch \
> gdi.patch \
> tiger-shell.patch
>
> }}}
>
> And added patch to
> /opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/x11/wine/files/gdi.patch
> {{{
> --- dlls/winemac.drv/gdi.c.orig
> +++ dlls/winemac.drv/gdi.c
> @@ -49,7 +49,6 @@ static int vert_res; /* height in pixels of
> screen */
> static int desktop_horz_res; /* width in pixels of virtual desktop */
> static int desktop_vert_res; /* height in pixels of virtual desktop
> */
> static int bits_per_pixel; /* pixel depth of screen */
> -static int palette_size; /* number of color entries in palette */
> static int device_data_valid; /* do the above variables have up-to-
> date values? */
>
> static CRITICAL_SECTION device_data_section;
> @@ -141,7 +140,6 @@ static void device_init(void)
> CGDirectDisplayID mainDisplay = CGMainDisplayID();
> CGSize size_mm = CGDisplayScreenSize(mainDisplay);
> CGDisplayModeRef mode = CGDisplayCopyDisplayMode(mainDisplay);
> - CGDirectPaletteRef palette;
>
> /* Initialize device caps */
> log_pixels_x = log_pixels_y = get_dpi();
> @@ -187,15 +185,6 @@ static void device_init(void)
> desktop_horz_res = desktop_rect.size.width;
> desktop_vert_res = desktop_rect.size.height;
>
> - palette = CGPaletteCreateWithDisplay(mainDisplay);
> - if (palette)
> - {
> - palette_size = CGPaletteGetNumberOfSamples(palette);
> - CGPaletteRelease(palette);
> - }
> - else
> - palette_size = 0;
> -
> device_data_valid = TRUE;
> }
>
> @@ -368,7 +357,7 @@ static INT macdrv_GetDeviceCaps(PHYSDEV dev, INT cap)
> case RASTERCAPS:
> ret = (RC_BITBLT | RC_BANDING | RC_SCALING | RC_BITMAP64 |
> RC_DI_BITMAP |
> RC_DIBTODEV | RC_BIGFONT | RC_STRETCHBLT | RC_STRETCHDIB
> | RC_DEVBITS |
> - (palette_size ? RC_PALETTE : 0));
> + (bits_per_pixel <= 8 ? RC_PALETTE : 0));
> break;
> case SHADEBLENDCAPS:
> ret = (SB_GRAD_RECT | SB_GRAD_TRI | SB_CONST_ALPHA |
> SB_PIXEL_ALPHA);
> @@ -393,7 +382,7 @@ static INT macdrv_GetDeviceCaps(PHYSDEV dev, INT cap)
> ret = 0;
> break;
> case SIZEPALETTE:
> - ret = palette_size;
> + ret = bits_per_pixel <= 8 ? 1 << bits_per_pixel : 0;
> break;
> case NUMRESERVED:
> case PHYSICALWIDTH:
> }}}
>
> And everything seemed to build ok.
New description:
Received this when I tried getting Wine to build (after doing hack
documented earlier)
{{{
gdi.c:144:5: error: use of undeclared identifier 'CGDirectPaletteRef'
CGDirectPaletteRef palette;
^
gdi.c:190:5: error: use of undeclared identifier 'palette'
palette = CGPaletteCreateWithDisplay(mainDisplay);
^
gdi.c:191:9: error: use of undeclared identifier 'palette'
if (palette)
^
gdi.c:193:52: error: use of undeclared identifier 'palette'
palette_size = CGPaletteGetNumberOfSamples(palette);
^
gdi.c:194:26: error: use of undeclared identifier 'palette'
CGPaletteRelease(palette);
^
5 errors generated.
make[1]: *** [gdi.o] Error 1
make: *** [dlls/winemac.drv] Error 2
make: *** Waiting for unfinished jobs....
}}}
Looking around this is in WineHQ and has been patched
http://bugs.winehq.org/show_bug.cgi?id=34162
So modified Port file to include patch
/opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/x11/wine/Portfile
{{{
patchfiles BOOL.patch \
mach_machine.patch \
gdi.patch \
tiger-shell.patch
}}}
And added patch to
/opt/local/var/macports/sources/rsync.macports.org/release/tarballs/ports/x11/wine/files/gdi.patch
{{{
--- dlls/winemac.drv/gdi.c.orig
+++ dlls/winemac.drv/gdi.c
@@ -49,7 +49,6 @@ static int vert_res; /* height in pixels of
screen */
static int desktop_horz_res; /* width in pixels of virtual desktop */
static int desktop_vert_res; /* height in pixels of virtual desktop */
static int bits_per_pixel; /* pixel depth of screen */
-static int palette_size; /* number of color entries in palette */
static int device_data_valid; /* do the above variables have up-to-date
values? */
static CRITICAL_SECTION device_data_section;
@@ -141,7 +140,6 @@ static void device_init(void)
CGDirectDisplayID mainDisplay = CGMainDisplayID();
CGSize size_mm = CGDisplayScreenSize(mainDisplay);
CGDisplayModeRef mode = CGDisplayCopyDisplayMode(mainDisplay);
- CGDirectPaletteRef palette;
/* Initialize device caps */
log_pixels_x = log_pixels_y = get_dpi();
@@ -187,15 +185,6 @@ static void device_init(void)
desktop_horz_res = desktop_rect.size.width;
desktop_vert_res = desktop_rect.size.height;
- palette = CGPaletteCreateWithDisplay(mainDisplay);
- if (palette)
- {
- palette_size = CGPaletteGetNumberOfSamples(palette);
- CGPaletteRelease(palette);
- }
- else
- palette_size = 0;
-
device_data_valid = TRUE;
}
@@ -368,7 +357,7 @@ static INT macdrv_GetDeviceCaps(PHYSDEV dev, INT cap)
case RASTERCAPS:
ret = (RC_BITBLT | RC_BANDING | RC_SCALING | RC_BITMAP64 |
RC_DI_BITMAP |
RC_DIBTODEV | RC_BIGFONT | RC_STRETCHBLT | RC_STRETCHDIB |
RC_DEVBITS |
- (palette_size ? RC_PALETTE : 0));
+ (bits_per_pixel <= 8 ? RC_PALETTE : 0));
break;
case SHADEBLENDCAPS:
ret = (SB_GRAD_RECT | SB_GRAD_TRI | SB_CONST_ALPHA |
SB_PIXEL_ALPHA);
@@ -393,7 +382,7 @@ static INT macdrv_GetDeviceCaps(PHYSDEV dev, INT cap)
ret = 0;
break;
case SIZEPALETTE:
- ret = palette_size;
+ ret = bits_per_pixel <= 8 ? 1 << bits_per_pixel : 0;
break;
case NUMRESERVED:
case PHYSICALWIDTH:
}}}
And everything seemed to build ok.
--
Comment:
In the future, please fill in the Port field and Cc the port maintainers
({{{port info --maintainers wine}}}).
--
Ticket URL: <https://trac.macports.org/ticket/40724#comment:1>
MacPorts <http://www.macports.org/>
Ports system for OS X
More information about the macports-tickets
mailing list