After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 673404 - pango/pangocairo.def (or the makefile) makes wrong assumptions
pango/pangocairo.def (or the makefile) makes wrong assumptions
Status: RESOLVED OBSOLETE
Product: pango
Classification: Platform
Component: win32
1.30.x
Other Windows
: Normal normal
: ---
Assigned To: gtk-win32 maintainers
pango-maint
Depends on:
Blocks:
 
 
Reported: 2012-04-03 06:26 UTC by LRN
Modified: 2018-05-22 13:02 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description LRN 2012-04-03 06:26:47 UTC
The following lines:
	pango_cairo_fc_font_get_type
	pango_cairo_fc_font_map_get_type
are commented-out in pangocairo.def. My guess is that pango assumes W32 == MSVC, and (again, it's a guess; i don't have MSVC to check it) the developers think that pango can't be built with fontconfig support on W32. Which is wrong.
Or maybe makefile incorrectly assumes that anything built on W32 has to be linked with -export-symbols $(srcdir)/pangocairo.def (which is not entirely correct - you can link easily without -export-symbols, although that will export everything; OTOH, i haven't seen developers on other platforms complaining about exporting everything, so maybe this is not an issue...)

Anyway, these two functions are included in pango.types (again, a shortsighted assumption that gtk-doc will never be invoked on W32), and their absence in libpangocairo prevents documentation from being built (not to mention that they don't make it into binaries either!).
Comment 1 Christoph Reiter (lazka) 2017-03-29 09:45:22 UTC
As of https://git.gnome.org/browse/pango/commit/?id=1147da131ad13e583e73fed956e5c944e1497bf4 the .def files no longer exist. Can this be closed?
Comment 2 LRN 2017-03-29 11:54:40 UTC
The part about .def file is not applicable anymore indeed.

The part about FC functions breaking documentation building is still applicable. For example, if i patch configure.ac to prevent it from finding fontconfig and freetype, pango itself builds just fine, but documentation fails:
pango-1.0-1.40.4-1\bld\docs/pango-scan.c:45: undefined reference to `pango_cairo_fc_font_map_get_type'
pango-1.0-1.40.4-1\bld\docs/pango-scan.c:56: undefined reference to `pango_fc_decoder_get_type'
pango-1.0-1.40.4-1\bld\docs/pango-scan.c:57: undefined reference to `pango_fc_font_get_type'
pango-1.0-1.40.4-1\bld\docs/pango-scan.c:58: undefined reference to `pango_fc_font_map_get_type'
pango-1.0-1.40.4-1\bld\docs/pango-scan.c:68: undefined reference to `pango_ft2_font_map_get_type'
pango-1.0-1.40.4-1\bld\docs/pango-scan.c:80: undefined reference to `pango_ot_info_get_type'
pango-1.0-1.40.4-1\bld\docs/pango-scan.c:81: undefined reference to `pango_ot_ruleset_get_type'

My guess is that this piece of docs makefile.am is responsible:

pango.types:
	@echo "Rebuilding $@"
	@LANG=C; LIST=$$(find $(HFILE_FIND) -exec grep -H 'pango_[_a-zA-Z0-9]*_get_type' {} \; | grep -v '\(private\|atsui\|core_text\|win32\)' | sed 's/\([^:]*:\).*\(pango[_a-zA-Z0-9]*_get_type\).*/\1\2/') && \
	echo "$$LIST" | sed 's/.*\/\(pango\/.*\):.*/#include <\1>/' | sort -u > $@.tmp && \
	echo >> $@.tmp && \
	echo "$$LIST" | cut -d : -f 2 | sort -u >> $@.tmp && \
	mv $@.tmp $@

Note that at this point my interest in this is mostly academic, as i no longer build pango without fontconfig backend (in fact, as mentioned above, i have to hack pango in order to prevent FC backend from being built).
Comment 3 GNOME Infrastructure Team 2018-05-22 13:02:57 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to GNOME's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.gnome.org/GNOME/pango/issues/201.