[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