[MacPorts] #22917: wine-crossover-games 8.0.0_1 doesn't compile on snow leopard
MacPorts
noreply at macports.org
Sat Dec 19 11:02:58 PST 2009
#22917: wine-crossover-games 8.0.0_1 doesn't compile on snow leopard
----------------------------------+-----------------------------------------
Reporter: ifigueroap@… | Owner: ryandesign@…
Type: defect | Status: new
Priority: Normal | Milestone:
Component: ports | Version: 1.8.1
Keywords: | Port: wine-crossover-games
----------------------------------+-----------------------------------------
Comment(by ryandesign@…):
8.1.0 has the same issue.
It seems it's trying to compile this sfnt2fnt earlier:
{{{
/usr/bin/gcc-4.2 -m32 -O2 -arch i386 -o sfnt2fnt sfnt2fnt.o -L../libs/wine
-lwine ../libs/port/libwine_port.a -L/opt/local/lib -framework
CoreServices -lz -L../../freetype/patentobjs/.libs
-L../../freetype/objs/.libs -lcxfreetype && install_name_tool -change
@executable_path/`../tools/relpath /opt/local/bin
/opt/local/lib`/libwine.1.dylib
@executable_path/../libs/wine/libwine.1.dylib sfnt2fnt || rm -f sfnt2fnt
}}}
But this fails:
{{{
ld: library not found for -lcxfreetype
collect2: ld returned 1 exit status
}}}
Because of the "`|| rm -f sfnt2fnt`" it proceeds on despite the error, and
then fails on some later dependent of sfnt2fnt that tries to build it
again but doesn't pass it all the compile options it needs.
libcxfreetype.dylib gets built by the copy of freetype included with the
wine-crossover-games source. We could [attachment:freetype-to-freetype-
crossover-games.diff create a freetype-crossover-games port] for that and
[attachment:wine-crossover-games-with-freetype-crossover-games.diff update
wine-crossover-games to use it]. But the problem is that while crossover's
version of freetype installs a library with a different name, it still
wants to install includes and pkgconfig files of the same name as the
freetype port's. So we would either need to mark the two freetypes as
conflicting (not viable because nobody using wine-crossover-games could
then use any port depending on the regular freetype -- including
fontconfig, which wine-crossover-games depends on) or not install the
headers or pkgconfig files (don't know if wine-crossover-games would still
be able to find it then) or go to some effort to further modify
crossover's freetype to also rename the includes and pkgconfig files.
The [attachment:freetype-source.diff differences between the standard
freetype and crossover's version] don't seem that great. It might be
better to have wine-crossover-games continue to use the normal freetype,
and just patch it to recognize normal freetype's libfreetype.dylib instead
of the libcxfreetype.dylib it's looking for.
Reviewing [changeset:60828 the commit where I updated the port to 8.0.0],
I see one change I made had an inadvertent consequence. I removed these
lines:
{{{
post-extract {
system "cd ${workpath} && mv sources/wine ."
}
}}}
I didn't understand why the portfile hadn't previously just used
"`worksrcdir sources/wine`", and the 8.0.0 sources dispensed with the
"sources" directory so the existing "`worksrcdir wine`" was sufficient. I
now realize that the wine source looks for the freetype source at a
relative path to its own, and if it finds it, it adds these -lcxfreetype
flags; see this part of configure.ac:
{{{
if test -d "$srcdir/../freetype"
then
dnl Use the CrossOver in-tree freetype library
ac_freetype_incl="-I$srcdir/../freetype/include"
ac_freetype_libs="-L../freetype/patentobjs/.libs
-L../freetype/objs/.libs -lcxfreetype"
ft_lib=yes
fi
}}}
You previously made those tests fail by moving the wine source; I made
them now succeed by keeping the wine source where it was, thereby
introducing this problem.
A fix is another change I wanted to make anyway: instructing MacPorts to
[attachment:wine-crossover-games-extract.post_args.diff only extract the
wine directory] and not the other directories that we don't need anyway.
This will speed up the extract step too. And I think this is the solution
we should use. Any objections?
--
Ticket URL: <http://trac.macports.org/ticket/22917#comment:10>
MacPorts <http://www.macports.org/>
Ports system for Mac OS
More information about the macports-tickets
mailing list