Xlockmore, when built with the "MESAGL" option turned on, will no longer compile. In file included from ./text3d2.cc:85: /usr/local/include/FTGL/FTGLExtrdFont.h:29:5: warning: #warning This header is deprecated. Please use <FTGL/ftgl.h> from now. In file included from /usr/local/include/FTGL/FTGLExtrdFont.h:30, from ./text3d2.cc:85: /usr/local/include/FTGL/ftgl.h:32:22: error: ft2build.h: No such file or directory /usr/local/include/FTGL/ftgl.h:33:10: error: #include expects "FILENAME" or <FILENAME> /usr/local/include/FTGL/ftgl.h:34:10: error: #include expects "FILENAME" or <FILENAME> /usr/local/include/FTGL/ftgl.h:35:10: error: #include expects "FILENAME" or <FILENAME> In file included from /usr/local/include/FTGL/ftgl.h:110, from /usr/local/include/FTGL/FTGLExtrdFont.h:30, from ./text3d2.cc:85: /usr/local/include/FTGL/FTPoint.h:75: error: expected ',' or '...' before '&' token and so on, and so on, and so on. print/freetype2 was updated on 24 December 2113 (http://www.freebsd.org/cgi/query-pr.cgi?pr=ports/184587) and that caused a large number of freetype-dependent builds to be updated. Since xlockmore only depends on FTGL if MESAGL is selected, and it defaults to "off," this port probably got overlooked. This may actually be an FTGL issue rather than an xlockmore issue, but I discovered it trying to update xlockmore. How-To-Repeat: Attempt to build xlockmore 5.43 after December 24, 2013, with the MESAGL option turned on.
Responsible Changed From-To: freebsd-ports-bugs->jgh Over to maintainer (via the GNATS Auto Assign Tool)
State Changed From-To: open->feedback are you still seeing this issue?
Yes, I am still seeing compile failures of x11/xlockmore if the MesaGL option is checked. Same errors. As far as I can tell nothing was changed, so I am surprised at the question.
On Tue, Apr 29, 2014 at 4:03 PM, Tom Russo <russo@bogodyn.org> wrote: > On Tue, Apr 29, 2014 at 10:49:08PM +0000, we recorded a bogon-computron > collision of the <jgh@FreeBSD.org> flavor, containing: > > Synopsis: x11/xlockmore compile failure due to update of print/freetype2 > > > > State-Changed-From-To: open->feedback > > State-Changed-By: jgh > > State-Changed-When: Tue Apr 29 22:49:08 UTC 2014 > > State-Changed-Why: > > are you still seeing this issue? > > > > http://www.freebsd.org/cgi/query-pr.cgi?pr=185542 > > Yes, I am still seeing the issue. If MesaGL is selected in x11/xlockmore's > config dialog, it will not compile. This is with a ports tree svn-updated > just this morning. > > It appears that I am having trouble following up to the bug report to say > that, > though. > > As far as I can tell, nothing about the port has changed, so I'm not at > all surprised the issue is still there. Is there some reason to expect > that > it would go away? > > -- > Tom Russo KM5VY SAR502 DM64ux http://www.swcp.com/~russo/ > Tijeras, NM QRPL#1592 K2#398 SOC#236 > http://kevan.org/brain.cgi?DDTNM > echo "prpv_a'rfg_cnf_har_cvcr" | sed -e 's/_/ /g' | tr [a-m][n-z] > [n-z][a-m] > > > > > I had no issue compiling, or installing with the MESAGL option. Perhaps there is something with another port or your environment. I am on FreeBSD-10 [helfman@its-jhelfman03 /usr/home/helfman/workspace/ports/x11/xlockmore]$ sudo ldd /usr/local/bin/xlock /usr/local/bin/xlock: libSM.so.6 => /usr/local/lib/libSM.so.6 (0x800a3a000) libICE.so.6 => /usr/local/lib/libICE.so.6 (0x800c41000) libXpm.so.4 => /usr/local/lib/libXpm.so.4 (0x800e5b000) libfreetype.so.6 => /usr/local/lib/libfreetype.so.6 (0x80106c000) libGL.so.1 => /usr/local/lib/libGL.so.1 (0x801301000) libGLU.so.1 => /usr/local/lib/libGLU.so.1 (0x801592000) libXext.so.6 => /usr/local/lib/libXext.so.6 (0x80180f000) libXinerama.so.1 => /usr/local/lib/libXinerama.so.1 (0x801a20000) libcrypt.so.5 => /lib/libcrypt.so.5 (0x801c22000) libX11.so.6 => /usr/local/lib/libX11.so.6 (0x801e42000) libm.so.5 => /lib/libm.so.5 (0x802174000) libc++.so.1 => /usr/lib/libc++.so.1 (0x80239a000) libcxxrt.so.1 => /lib/libcxxrt.so.1 (0x802655000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x80286f000) libthr.so.3 => /lib/libthr.so.3 (0x802a7c000) libc.so.7 => /lib/libc.so.7 (0x802ca1000) libxcb.so.1 => /usr/local/lib/libxcb.so.1 (0x80303a000) libXau.so.6 => /usr/local/lib/libXau.so.6 (0x803258000) libXdmcp.so.6 => /usr/local/lib/libXdmcp.so.6 (0x80345a000) libpthread-stubs.so.0 => /usr/local/lib/libpthread-stubs.so.0 (0x80365f000) librpcsvc.so.5 => /usr/lib/librpcsvc.so.5 (0x803860000) libz.so.6 => /lib/libz.so.6 (0x803a69000) libbz2.so.4 => /usr/lib/libbz2.so.4 (0x803c7e000) libXxf86vm.so.1 => /usr/local/lib/libXxf86vm.so.1 (0x803e8f000) libXdamage.so.1 => /usr/local/lib/libXdamage.so.1 (0x804093000) libXfixes.so.3 => /usr/local/lib/libXfixes.so.3 (0x804295000) libX11-xcb.so.1 => /usr/local/lib/libX11-xcb.so.1 (0x80449a000) libxcb-glx.so.0 => /usr/local/lib/libxcb-glx.so.0 (0x80469b000) libdrm.so.2 => /usr/local/lib/libdrm.so.2 (0x8048b2000) [helfman@its-jhelfman03 /usr/home/helfman/workspace/ports/x11/xlockmore]$ pkg which /usr/local/lib/libfreetype.so.6 /usr/local/lib/libfreetype.so.6 was installed by package freetype2-2.5.3_1 [helfman@its-jhelfman03 /usr/home/helfman/workspace/ports/x11/xlockmore]$ make -V PORT_OPTIONS DOCS EXAMPLES IPV6 MESAGL NLS -jgh -- Jason Helfman | FreeBSD Committer jgh@FreeBSD.org | http://people.freebsd.org/~jgh | The Power to Serve
Unable to duplicate this issue as reported by the user. If you feel this still needs to be opened, please provide more information regarding your issue. Thanks! -jgh
I am on FreeBSD 9.2 (stable, last updated 12 Feb). What other information do you need to reopen? This is still an issue on two separate FreeBSD machines with similar package sets. I am unable to build xlockmore with mesagl enabled, it always spews errors about FTGL, and the first, probably most telling is: In file included from ./text3d2.cc:85: /usr/local/include/FTGL/FTGLExtrdFont.h:29:5: warning: #warning This header is deprecated. Please use <FTGL/ftgl.h> from now. In file included from /usr/local/include/FTGL/FTGLExtrdFont.h:30, from ./text3d2.cc:85: /usr/local/include/FTGL/ftgl.h:32:22: error: ft2build.h: No such file or directory /usr/local/include/FTGL/ftgl.h:33:10: error: #include expects "FILENAME" or <FILENAME> /usr/local/include/FTGL/ftgl.h:34:10: error: #include expects "FILENAME" or <FILENAME> /usr/local/include/FTGL/ftgl.h:35:10: error: #include expects "FILENAME" or <FILENAME> I do have FTGL installed and updated: # pkg info ftgl ftgl-2.1.3.r5_2,1 Name : ftgl Version : 2.1.3.r5_2,1 Installed on : Fri Jun 6 16:35:33 MDT 2014 Origin : graphics/ftgl Architecture : freebsd:9:x86:32 Prefix : /usr/local Categories : graphics Maintainer : amdmi3@FreeBSD.org WWW : http://ftgl.wiki.sourceforge.net/ Comment : An OpenGL FreeType fonts rendering library Shared Libs required: libfreetype.so.6 libXmu.so.6 libXext.so.6 libX11.so.6 libSM.so.6 libICE.so.6 libGLU.so.1 libGL.so.1 Shared Libs provided: libftgl.so.2.1.3 Flat size : 550KiB Description : FTGL is a free open source library to enable developers to use arbitrary fonts in their OpenGL applications. Unlike other OpenGL font libraries FTGL uses standard font file formats so doesn't need a preprocessing step to convert the high quality font data into a lesser quality, proprietary format. FTGL uses the Freetype (www.freetype.org) font library to open and 'decode' the fonts. It then takes that output and stores it in a format most efficient for OpenGL rendering. WWW: http://ftgl.wiki.sourceforge.net/ and the header complained about there above (ft2build.h) definitely does not exist: # pkg info -l ftgl ftgl-2.1.3.r5_2,1: /usr/local/include/FTGL/FTBBox.h /usr/local/include/FTGL/FTBitmapGlyph.h /usr/local/include/FTGL/FTBuffer.h /usr/local/include/FTGL/FTBufferFont.h /usr/local/include/FTGL/FTBufferGlyph.h /usr/local/include/FTGL/FTExtrdGlyph.h /usr/local/include/FTGL/FTFont.h /usr/local/include/FTGL/FTGLBitmapFont.h /usr/local/include/FTGL/FTGLExtrdFont.h /usr/local/include/FTGL/FTGLOutlineFont.h /usr/local/include/FTGL/FTGLPixmapFont.h /usr/local/include/FTGL/FTGLPolygonFont.h /usr/local/include/FTGL/FTGLTextureFont.h /usr/local/include/FTGL/FTGlyph.h /usr/local/include/FTGL/FTLayout.h /usr/local/include/FTGL/FTOutlineGlyph.h /usr/local/include/FTGL/FTPixmapGlyph.h /usr/local/include/FTGL/FTPoint.h /usr/local/include/FTGL/FTPolyGlyph.h /usr/local/include/FTGL/FTSimpleLayout.h /usr/local/include/FTGL/FTTextureGlyph.h /usr/local/include/FTGL/ftgl.h /usr/local/lib/libftgl.a /usr/local/lib/libftgl.la /usr/local/lib/libftgl.so /usr/local/lib/libftgl.so.2 /usr/local/lib/libftgl.so.2.1.3 /usr/local/libdata/pkgconfig/ftgl.pc
And digging deeper, ft2build.h is part of freetype2, and IS present in /usr/local/include/freetype2: freetype2-2.5.3_2: [...] /usr/local/include/freetype2/ft2build.h [...] /usr/local/include/FTGL/ftgl.h attempts to include this. Somehow the path to ft2build.h is not searched. I'm at a loss to see how this is happening for me andd not for you.
Just spent a little more time digging, and find that configure for xlockmore is NOT finding freetype headers, but presses on anyway. Looking at configure.in for xlockmore, it has an AC_DEFUN for AC_PATH_FREETYPE_DIRECT with this bit of stuff in it: test -z "$freetype_direct_test_library" && freetype_direct_test_library=freetype test -z "$freetype_direct_test_function" && freetype_direct_test_function=FT_Init_FreeType test -z "$freetype_direct_test_include" && freetype_direct_test_include=freetype2/freetype/freetype.h for ac_dir in \ [...] boatload of directories including /usr/local/include [...] do if test -r "$ac_dir/$freetype_direct_test_include"; then no_freetype= ac_freetype_includes=$ac_dir/freetype2 break fi done That is, it detects where freetype headers are by looking for the file $ac_dir/freetype2/freetype/freetype.h, and when it finds it, uses $ac_dir/freetype2 as the path to freetype includes. But the freetype2 package has not installed freetype.h into /usr/local/include/freetype2/freetype/freetype.h, it's in /usr/local/include/freetype2/freetype.h (i.e. one level of directory higher): > pkg info -l freetype2 | grep freetype.h /usr/local/include/freetype2/freetype.h Is this somehow different on your system?
I think I've provided a little more information, and if bugzilla will let me, am moving this back to "In Discussion".
c.f. another system's approach to dealing with xlockmore's hard-coded assumptions about the layout of the freetype2 directory: http://lists.opensuse.org/archive/opensuse-commit/2013-12/msg01040.html They have hacked the configure script to look for freetype.h directly in an assortment of directories in order to determine the correct path to freetype headers, instead of freetype2/freetype/freetype.h I'm still puzzled by how it's working for you. Do you have /usr/local/freetype2/freetype/freetype.h?
By looking at the OpenSUSE hacks to configure.in, I've constructed a patch that fixes this issue for me. The problem is that xlockmore's configure script loops over a bunch of top level directories ($ac_dir) and searches for $(ac_dir)/freetype2/freetype/freetype.h, and having found it, uses $(ac_dir)/freetype2 as the path to use in a "-I" for later compilation. FreeBSD's freetype2 package does NOT install freetype.h into /usr/local/include/freetype2/freetype/freetype.h, but rather /usr/local/include/freetype2/freetype.h. It is therefore NOT found by the probe technique used by xlockmore. This patch is a hack that looks for freetype.h instead of freetype2/freetype/freetype.h, and looks in /usr/local/include, /usr/local/include/freetype2, and /usr/local/include/freetype2/freetype. Having found it, it uses the directory in which it is found as the freetype2 include directory for -I purposes. Unfortunately, this is not a good general fix --- it will not find freetype.h in ALL the cases the configure script is testing, so should not be fed upstream as is. Neither will it do the right thing if freetype.h IS installed in /usr/local/include/freetype2/freetype. It is still completely mysterious to me how this thing can be working with freetype2 for you, unless your freetype2 install is very different than mine.
Created attachment 143881 [details] Patch to xlockmore's configure script that makes it work properly for me.
Created attachment 143882 [details] Patch to xlockmore's configure.in script that makes it work properly for me. This patch isn't really necessary, but since I hacked the configure.in script and let autoconf regenerate configure, I am including it.
Created attachment 152383 [details] patch for freetype2 ac isssue in xlockmore Does it work with this patch? It looks good from the config.log, so suspect that it will work, but please test.
Yes, your "freetype2.diff" patch fixes the issue for me.
Author: jgh Date: Sat Jan 31 07:14:48 2015 New Revision: 378192 URL: https://svnweb.freebsd.org/changeset/ports/378192 QAT: https://qat.redports.org/buildarchive/r378192/ Log: - update to 5.45 - pet portlint - address compile failure for freetype2 [1] PR: 18552 [1] http://www.FreeBSD.org/cgi/query-pr.cgi?pr=18552 Reported by: russo@bogodyn.org [1] Modified: head/x11/xlockmore/Makefile head/x11/xlockmore/distinfo Modified: head/x11/xlockmore/Makefile ============================================================================== --- head/x11/xlockmore/Makefile Sat Jan 31 06:58:54 2015 (r378191) +++ head/x11/xlockmore/Makefile Sat Jan 31 07:14:48 2015 (r378192) @@ -2,8 +2,7 @@ # $FreeBSD$ PORTNAME= xlockmore -PORTVERSION= 5.43 -PORTREVISION= 4 +PORTVERSION= 5.45 CATEGORIES?= x11 MASTER_SITES= http://www.tux.org/~bagleyd/xlock/${PORTNAME}-${PORTVERSION}/ \ ftp://ibiblio.org/pub/Linux/X11/screensavers/ \ @@ -22,9 +21,10 @@ USE_GNOME= # USE_XORG= x11 xaw ice LIB_DEPENDS+= libfreetype.so:${PORTSDIR}/print/freetype2 +CONFIGURE_ENV+= ac_freetype_includes="${LOCALBASE}/include/freetype2" OPTIONS_DEFINE= MESAGL MB SYSLOG DISABLE_ALLOW_ROOT NICE_ONLY BLANK_ONLY \ - KERBEROS4 BAD_PAM GTK2 TIME_BOMB CUSTOMIZATION MAGICK + KERBEROS4 BAD_PAM GTK2 TIME_BOMB CUSTOMIZATION MAGICK XLOCKMORE_LANG OPTIONS_SUB= yes MESAGL_DESC= Mesa 3D (for GL modes) Modified: head/x11/xlockmore/distinfo ============================================================================== --- head/x11/xlockmore/distinfo Sat Jan 31 06:58:54 2015 (r378191) +++ head/x11/xlockmore/distinfo Sat Jan 31 07:14:48 2015 (r378192) @@ -1,2 +1,2 @@ -SHA256 (xlockmore-5.43.tar.bz2) = 29911f21aaf682aa61f358ca36dadf20091ad919d19b4d55e3f4c8503ab266d0 -SIZE (xlockmore-5.43.tar.bz2) = 1965448 +SHA256 (xlockmore-5.45.tar.bz2) = 7f81a80cb486c05269d71e9cc2d9c51645b59f09779fc24d01b858b7563015f7 +SIZE (xlockmore-5.45.tar.bz2) = 1968176