Bug 237822 - x11-toolkits/pango: Fails to configure with DOCS=ON X11=OFF: ERROR: Unknown variable "xft_dep". (since 1.42.4_2, ports r500960)
Summary: x11-toolkits/pango: Fails to configure with DOCS=ON X11=OFF: ERROR: Unknown v...
Status: In Progress
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: Normal Affects Some People
Assignee: Steve Wills
URL:
Keywords: regression
: 240430 (view as bug list)
Depends on:
Blocks:
 
Reported: 2019-05-10 09:26 UTC by Matthias Fechner
Modified: 2019-12-15 03:54 UTC (History)
26 users (show)

See Also:
bugzilla: maintainer-feedback? (gnome)
koobs: maintainer-feedback? (kwm)
koobs: merge-quarterly?


Attachments
Pango build log (31.69 KB, text/plain)
2019-05-10 21:06 UTC, Joseph Mulloy
no flags Details
pango-1.42.4_2-DOCS=ON-X11=OFF.log (28.40 KB, text/plain)
2019-05-24 04:15 UTC, Kubilay Kocak
no flags Details
Failed to build with docs on and X11 off (31.37 KB, text/plain)
2019-05-24 05:28 UTC, Matthias Fechner
no flags Details
[patch] fix configure error if DOCS=on X11=off after ports r480951 (when DOCS was spelled GTKDOC) (873 bytes, patch)
2019-06-12 22:40 UTC, John Hein
jcfyecrayz: maintainer-approval? (gnome)
Details | Diff
patch-docs_meson.build (422 bytes, patch)
2019-08-01 10:05 UTC, Walter Schwarzenfeld
no flags Details | Diff
patch-docs_meson.build_v2 (486 bytes, patch)
2019-08-01 11:40 UTC, Walter Schwarzenfeld
no flags Details | Diff
[patch] improve docs/meson.build (1.06 KB, patch)
2019-12-15 03:54 UTC, John Hein
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Matthias Fechner freebsd_committer 2019-05-10 09:26:24 UTC
I get the following error:
DEPRECATION: Project targetting '>= 0.43.0' but tried to use feature deprecated since '0.48.0': python3 module
Configuring gtkdocentities.ent using configuration
Configuring version.xml using configuration

docs/meson.build:71:11: ERROR: Unknown variable "xft_dep".

A full log can be found at /wrkdirs/usr/ports/x11-toolkits/pango/work/pango-1.42.4/_build/meson-logs/meson-log.txt

Full build log is here:
https://pkg.fechner.net/data/120amd64-default/2019-05-10_10h42m45s/logs/errors/pango-1.42.4_2.log
Comment 1 Dani 2019-05-10 15:01:53 UTC
Same here..

Happens since ports r500960
Comment 2 Walter Schwarzenfeld freebsd_triage 2019-05-10 20:46:31 UTC
If I set X11 option to on in compiles fine.
Comment 3 Joseph Mulloy 2019-05-10 20:56:06 UTC
I'm also getting this. I build in Poudriere. As a workaround I turned off the DOCS option on the port and it builds fine.
Comment 4 Joseph Mulloy 2019-05-10 21:06:05 UTC
Created attachment 204315 [details]
Pango build log

wrkdir is slightly too large to attach so here's a link https://files.jdmulloy.com/freebsd_bugs/237822/pango-1.42.4_2.tbz
Comment 5 Stephan Muhs 2019-05-11 03:32:10 UTC
(In reply to Joseph Mulloy from comment #3)

Same here, build fails with DOCS enabled, works with DOCs disabled
Comment 6 Walter Schwarzenfeld freebsd_triage 2019-05-12 10:26:21 UTC
I have tried an update to 1.43.0. This seems to work.

But I think this has to be tested for ports are depend on pango.
Comment 7 Greg Cunningham 2019-05-13 06:09:58 UTC
I'm getting the same error on several 12.0-RELEASE instances.  Un-selecting 

[ ] DOCS ...

allowed it to build.
Comment 8 Palle Girgensohn freebsd_committer 2019-05-13 10:44:13 UTC
Same problem here...

Smells like the dependency on X11 is the real problem though? I build with

OPTIONS_UNSET= X11 NLS

Probably the docs expect som X11 stuff to build as well?

Palle
Comment 9 Walter Schwarzenfeld freebsd_triage 2019-05-13 12:03:03 UTC
Seems pkgconfig is the problem. In the new version there is no meson.build in the workdirectory and no *.pc.in files. Also no Makefile.am and Makefile.in. Seems they changed a lot of the configuration.
Comment 10 Leon Dietrich 2019-05-20 08:56:32 UTC
I just tried to compile it with X11 and DOCS turned off. It also failed.
Comment 11 Palle Girgensohn freebsd_committer 2019-05-20 09:00:18 UTC
(In reply to Leon Dietrich from comment #10)

you mean that

OPTIONS_UNSET= X11 NLS

and it still failed. That is the opposite of my experience?
Comment 12 Leon Dietrich 2019-05-20 09:05:32 UTC
My failing configuration:

$ cat /usr/local/etc/poudriere.d/server-12_0-HEAD-options/x11-toolkits_pango/options

# This file is auto-generated by 'make config'.
# Options for pango-1.42.4
_OPTIONS_READ=pango-1.42.4
_FILE_COMPLETE_OPTIONS_LIST=GTKDOC X11
OPTIONS_FILE_UNSET+=GTKDOC
OPTIONS_FILE_UNSET+=X11
Comment 13 Rogg 2019-05-21 19:04:24 UTC
Had the same problem, disabling DOCS helped. My actual options:

cat /usr/local/etc/poudriere.d/11_2-amd64-server-options/x11-toolkits_pango/options 
# This file is auto-generated by 'make config'.
# Options for pango-1.42.4_2
_OPTIONS_READ=pango-1.42.4_2
_FILE_COMPLETE_OPTIONS_LIST=DOCS X11
OPTIONS_FILE_UNSET+=DOCS
OPTIONS_FILE_UNSET+=X11
Comment 14 Kubilay Kocak freebsd_committer freebsd_triage 2019-05-24 04:15:21 UTC
Created attachment 204585 [details]
pango-1.42.4_2-DOCS=ON-X11=OFF.log
Comment 15 Kubilay Kocak freebsd_committer freebsd_triage 2019-05-24 04:17:12 UTC
Test matrix:

DOCS=ON X11=ON - OK
DOCS=ON X11=OFF - FAIL
DOCS=OFF X11=ON - OK
DOCS=OFF X11=OFF - OK

@triage: CC committer of ports r500960
Comment 16 Kubilay Kocak freebsd_committer freebsd_triage 2019-05-24 04:17:59 UTC
@Matthias Could you please include your failure log as an attachment, as external URL references can become stale/go missing over time. Thanks!
Comment 17 Matthias Fechner freebsd_committer 2019-05-24 05:28:00 UTC
Created attachment 204586 [details]
Failed to build with docs on and X11 off

(In reply to Kubilay Kocak from comment #16)

sure, here it is.
Comment 18 John Hein 2019-06-12 21:17:13 UTC
I think the problem existed before ports r500960 if you had the GTKDOC option on (which is now named the DOCS option).

Did anyone test with GTKDOC on (and X11 off) after ports r480951 (which added the conditional xft_dep change)?

It looks like ports r480951 was missing this patch:

--- work/pango-1.42.4/docs/meson.build.orig     2019-06-12 21:06:45 UTC
+++ work/pango-1.42.4/docs/meson.build
@@ -68,8 +68,10 @@
   docdeps += libpangoft2_dep
 endif
 
-if xft_dep.found()
-  docdeps += libpangoxft_dep
+if get_option('xft')
+  if xft_dep.found()
+    docdeps += libpangoxft_dep
+  endif
 endif
 
 if cairo_dep.found()
Comment 19 John Hein 2019-06-12 22:40:16 UTC
Created attachment 205022 [details]
[patch] fix configure error if DOCS=on X11=off after ports r480951 (when DOCS was spelled GTKDOC)

Attached is a patch to resolve the configure-time bug when DOCS=on and X11=off.  This should have been applied when ports r480951 was committed.  It was exposed more widely when ports r500960 turned renamed GTKDOC (which was off by default) to DOCS which is on by default (i.e., on for most users).
Comment 20 John Hein 2019-06-12 22:42:32 UTC
Comment on attachment 205022 [details]
[patch] fix configure error if DOCS=on X11=off after ports r480951 (when DOCS was spelled GTKDOC)

Asking for maintainer-approval (gnome@) for the patch - start the timer.
Comment 21 John Hein 2019-07-15 12:41:39 UTC
Maintainer timeout?

QA for attachment 205022 [details]:

 - poudriere testport (ok)
 - portlint (no new warnings)
Comment 22 Michael Osipov 2019-07-31 13:21:05 UTC
Same here in a Jail with 12.0-RELEASE-p5
Comment 23 Maxim Sobolev freebsd_committer 2019-07-31 19:46:45 UTC
Same here. The patch at Attachment #205022 [details] does not work, though.
Comment 24 Maxim Sobolev freebsd_committer 2019-07-31 19:48:07 UTC
Comment on attachment 205022 [details]
[patch] fix configure error if DOCS=on X11=off after ports r480951 (when DOCS was spelled GTKDOC)

Does not work here. The port goes through config stage, but then fails at install.

00:55:08.925  Installing /tmp/usr/ports/x11-toolkits/pango/work/pango-1.42.4/_build/pangoft2.pc to /tmp/usr/ports/x11-toolkits/pango/work/stage/usr/local/lib/pkgconfig
00:55:08.925  Installing /tmp/usr/ports/x11-toolkits/pango/work/pango-1.42.4/_build/pangocairo.pc to /tmp/usr/ports/x11-toolkits/pango/work/stage/usr/local/lib/pkgconfig
00:55:08.925  Installing /tmp/usr/ports/x11-toolkits/pango/work/pango-1.42.4/_build/pango/pango-features.h to /tmp/usr/ports/x11-toolkits/pango/work/stage/usr/local/include/pango-1.0/pango
00:55:08.926  Running custom install script '/usr/local/bin/meson --internal gtkdoc --sourcedir=/tmp/usr/ports/x11-toolkits/pango/work/pango-1.42.4 --builddir=/tmp/usr/ports/x11-toolkits/pango/work/pango-1.42.4/_build --subdir=docs --headerdirs=/tmp/usr/ports/x11-toolkits/pango/work/pango-1.42.4/pango@@/tmp/usr/ports/x11-toolkits/pango/work/pango-1.42.4/_build/pango --mainfile=pango-docs.sgml --modulename=pango --moduleversion= --mode=auto --scanargs=--rebuild-types@@--deprecated-guards=PANGO_DISABLE_DEPRECATED@@--ignore-decorators=_PANGO_EXTERN@@--ignore-headers=pangoatsui-private.h pangocairo-private.h pangocairo-fc.h pangocairo-win32.h pangocairo-atsui.h pango-color-table.h pango-engine-private.h pango-impl-utils.h pango-glyph-item-private.h pango-layout-private.h pango-script-table.h pango-script-private.h pangofc-private.h pangoft2-private.h pangowin32-private.h pangoatsui-private.h pangox-private.h pangoxft-private.h pango-ot-private.h pango-script-lang-table.h pango-language-sample-table.h pangocoretext-private.h pangoatsui-private.h pangocairo-coretextfont.h pangocairo-coretext.h pangocoretext.h pangocairo-win32.h pangowin32.h --gobjects-types-file=/tmp/usr/ports/x11-toolkits/pango/work/pango-1.42.4/docs/pango.types --fixxrefargs=--html-dir=/usr/local/share/gtk-doc/html@@--extra-dir=/usr/local/share/gtk-doc/html/glib@@--extra-dir=/usr/local/share/gtk-doc/html/gobject@@--extra-dir=/usr/local/share/gtk-doc/html/cairo --mkdbargs=--sgml-mode@@--output-format=xml --html-assets=/tmp/usr/ports/x11-toolkits/pango/work/pango-1.42.4/docs/layout.gif@@/tmp/usr/ports/x11-toolkits/pango/work/pango-1.42.4/docs/rotated-text.png --content-files= --cc=cc --ld=cc --cflags=-I/tmp/usr/ports/x11-toolkits/pango/work/pango-1.42.4/_build/pango/. -I/tmp/usr/ports/x11-toolkits/pango/work/pango-1.42.4/pango/. -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/local/include -I/usr/local/include/fribidi -I/usr/local/include/harfbuzz -I/usr/local/include/freetype2 -I/usr/local/include/cairo -I/usr/local/include/pixman-1 -I/usr/local/include/libpng16 -I/tmp/usr/ports/x11-toolkits/pango/work/pango-1.42.4/_build/. -I/tmp/usr/ports/x11-toolkits/pango/work/pango-1.42.4/. -O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing -isystem /usr/local/include -D_POSIX_C_SOURCE=200809L -D_POSIX_THREAD_SAFE_FUNCTIONS -D_GNU_SOURCE --ldflags=-L/tmp/usr/ports/x11-toolkits/pango/work/pango-1.42.4/_build/pango -Wl,-rpath,/tmp/usr/ports/x11-toolkits/pango/work/pango-1.42.4/_build/pango -lpango-1.0 -lpangoft2-1.0 -lpangocairo-1.0 -L/usr/local/lib -lgobject-2.0 -lglib-2.0 -lintl -lm -lfribidi -lharfbuzz -lfontconfig -lfreetype -lcairo -lpthread -O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing -fstack-protector-strong'
00:55:08.926  FAILED: meson-install 
00:55:08.926  /usr/local/bin/meson install --no-rebuild
00:55:08.926  ninja: build stopped: subcommand failed.
00:55:08.926  *** Error code 1
Comment 25 Walter Schwarzenfeld freebsd_triage 2019-07-31 21:52:09 UTC
I changed following:

--- docs/meson.build.orig       2019-07-31 21:41:55 UTC
+++ docs/meson.build
@@ -25,6 +25,8 @@ private_headers = [
   'pangoatsui-private.h',
   'pangox-private.h',
   'pangoxft-private.h',
+  'pangoxft.h',
+  'pangoxft-render.h',
   'pango-ot-private.h',
   'pango-script-lang-table.h',
   'pango-language-sample-table.h',
@@ -68,7 +70,7 @@ if build_pangoft2
   docdeps += libpangoft2_dep
 endif
 
-if xft_dep.found()
+if libpangoxft_dep.found()
   docdeps += libpangoxft_dep
 endif

This builds and installs, but there are a lot of warnings, maybe it needs more header-files.
Comment 26 Walter Schwarzenfeld freebsd_triage 2019-07-31 21:56:59 UTC
I saw I had the same warnings if I try it with DOCS and X11=on. So the patch could be right.
Comment 27 Walter Schwarzenfeld freebsd_triage 2019-07-31 22:34:11 UTC
Maybe, we don't need to add the headers and this one is wrong:

if host_system != 'windows'  (!= instead of == )
  private_headers += [
    'pangocairo-win32.h',
    'pangowin32.h',
  ]
else
  private_headers += [
    'pangoxft.h',
    'pangoxft-render.h',
  ]
endif
Comment 28 Walter Schwarzenfeld freebsd_triage 2019-08-01 10:05:54 UTC
Created attachment 206190 [details]
patch-docs_meson.build

Here is my patch. I hope this is it.
Comment 29 Ting-Wei Lan 2019-08-01 10:58:22 UTC
Comment on attachment 206190 [details]
patch-docs_meson.build

>--- docs/meson.build.orig	2019-07-31 21:41:55 UTC
>+++ docs/meson.build
>@@ -40,7 +40,7 @@ if host_system != 'darwin'
>   ]
> endif
> 
>-if host_system != 'windows'
>+if host_system == 'windows'
>   private_headers += [
>     'pangocairo-win32.h',
>     'pangowin32.h',

This is wrong. When you are not building for Windows, you have to ignore headers which are specific to Windows. Therefore, it is correct to add Windows-specific headers to private_headers because the variable is used to prevent gtk-doc from scanning these headers. I think what you should change is the else clause below because it doesn't look correct to assume xft is available when host_system != 'windows'.

>@@ -68,7 +68,7 @@ if build_pangoft2
>   docdeps += libpangoft2_dep
> endif
> 
>-if xft_dep.found()
>+if libpangoxft_dep.found()
>   docdeps += libpangoxft_dep
> endif
> 

What does this change do? Isn't libpangoxft_dep only declared as a real dependency when xft_dep is found?

I wonder why we have to provide xft option in ports. It doesn't exist in the upstream project.
Comment 30 Walter Schwarzenfeld freebsd_triage 2019-08-01 11:04:34 UTC
Comment on attachment 206190 [details]
patch-docs_meson.build

Ok, so I was wrong.
Comment 31 Walter Schwarzenfeld freebsd_triage 2019-08-01 11:40:31 UTC
Created attachment 206195 [details]
patch-docs_meson.build_v2

Second try.
Comment 32 Victor Sudakov 2019-09-10 09:04:43 UTC
*** Bug 240430 has been marked as a duplicate of this bug. ***
Comment 33 Sergey 2019-09-16 19:15:17 UTC
(In reply to Walter Schwarzenfeld from comment #31)

worked
Comment 34 Sean Bruno freebsd_committer 2019-09-20 15:09:48 UTC
Just found this bug after a build failure.  Is there a port committer around to apply this?
Comment 35 Kubilay Kocak freebsd_committer freebsd_triage 2019-09-20 15:17:44 UTC
(In reply to Sean Bruno from comment #34)

The patch needs an analysis/review and QA confirmation for the matrix of port OPTIONS involved in the reproduction case (DOCS & X11), or maintainer to commit (after presumably reviewing themselves)
Comment 36 Michael Osipov 2019-11-19 17:14:49 UTC
(In reply to Maxim Sobolev from comment #23)

This works partially. While configuration passes, linker fails with:

> ERROR: Error in gtkdoc helper script:
> 
> ERROR: ['gtkdoc-scangobj', '--types=/var/ports/usr/ports/x11-toolkits/pango/work/pango-1.42.4/_build/docs/pango.types', '--module=pango', '--run=', '--cflags=-I/var/ports/usr/ports/x11-toolkits/pango/work/pango-1.42.4/_build/pango/. -I/var/ports/usr/ports/x11-toolkits/pango/work/pango-1.42.4/pango/. -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -I/usr/local/include -I/usr/local/include/fribidi -I/usr/local/include/harfbuzz -I/usr/local/include/freetype2 -I/usr/local/include/cairo -I/usr/local/include/pixman-1 -I/usr/local/include/libpng16 -D_THREAD_SAFE -pthread -I/var/ports/usr/ports/x11-toolkits/pango/work/pango-1.42.4/_build/. -I/var/ports/usr/ports/x11-toolkits/pango/work/pango-1.42.4/. -O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing -isystem /usr/local/include -D_POSIX_C_SOURCE=200809L -D_POSIX_THREAD_SAFE_FUNCTIONS -D_GNU_SOURCE', '--ldflags=-L/var/ports/usr/ports/x11-toolkits/pango/work/pango-1.42.4/_build/pango -Wl,-rpath,/var/ports/usr/ports/x11-toolkits/pango/work/pango-1.42.4/_build/pango -lpango-1.0 -lpangoft2-1.0 -lpangocairo-1.0 -L/usr/local/lib -lgobject-2.0 -lglib-2.0 -lintl -lm -lfribidi -lharfbuzz -lfontconfig -lfreetype -lcairo -lpthread -O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing -fstack-protector-strong', '--cc=cc', '--ld=cc', '--output-dir=/var/ports/usr/ports/x11-toolkits/pango/work/pango-1.42.4/_build/docs'] failed with status 1
> /usr/bin/ld: error: undefined symbol: pango_xft_font_get_type
> >>> referenced by pango-scan.c
> >>>               pango-scan.o:(main)
> 
> /usr/bin/ld: error: undefined symbol: pango_xft_font_map_get_type
> >>> referenced by pango-scan.c
> >>>               pango-scan.o:(main)
> 
> /usr/bin/ld: error: undefined symbol: pango_xft_renderer_get_type
> >>> referenced by pango-scan.c
> >>>               pango-scan.o:(main)
> cc: error: linker command failed with exit code 1 (use -v to see invocation)
> 2019-11-19 18:13:41,880:scangobj.py:execute_command:1196:WARNING:Linking scanner failed: 1, command: cc pango-scan.o -L/var/ports/usr/ports/x11-toolkits/pango/work/pango-1.42.4/_build/pango -Wl,-rpath,/var/ports/usr/ports/x11-toolkits/pango/work/pango-1.42.4/_build/pango -lpango-1.0 -lpangoft2-1.0 -lpangocairo-1.0 -L/usr/local/lib -lgobject-2.0 -lglib-2.0 -lintl -lm -lfribidi -lharfbuzz -lfontconfig -lfreetype -lcairo -lpthread -O2 -pipe -fstack-protector-strong -isystem /usr/local/include -fno-strict-aliasing -fstack-protector-strong -o pango-scan
> 
> FAILED: meson-install
> /usr/local/bin/meson install --no-rebuild
> ninja: build stopped: subcommand failed.
> *** Error code 1
> 
> Stop.
> make[1]: stopped in /usr/ports/x11-toolkits/pango
> *** Error code 1
Comment 37 Dries Michiels 2019-12-12 20:32:53 UTC
Bumped against this bug too during build. Any ports committer who wants to take this bug? :-) Maintainer timeout is far past by now, although its maintained by gnome@ so it prolly doesn't apply for leaf groups. There are valid patches attached that fix the problem.
Comment 38 Steve Wills freebsd_committer 2019-12-12 22:03:16 UTC
(In reply to Dries Michiels from comment #37)
I took a look at this, and was about to commit the patch, but I can't seem to reproduce the error.
Comment 39 Steve Wills freebsd_committer 2019-12-12 22:04:04 UTC
(In reply to Steve Wills from comment #38)
Oh, it turns out it doesn't appear on HEAD but does appear when building with 12.0. I'll commit.
Comment 40 commit-hook freebsd_committer 2019-12-12 22:13:53 UTC
A commit references this bug:

Author: swills
Date: Thu Dec 12 22:13:32 UTC 2019
New revision: 519952
URL: https://svnweb.freebsd.org/changeset/ports/519952

Log:
  x11-toolkits/pango: fix build with DOCS=ON X11=OFF

  PR:		237822
  Submitted by:	Walter Schwarzenfeld <w.schwarzenfeld@utanet.at>
  Approved by:	gnome@ (kwm, via IRC)

Changes:
  head/x11-toolkits/pango/files/patch-docs-meson.build
Comment 41 Dries Michiels 2019-12-13 07:10:19 UTC
Cool, thanks Steve!
Comment 42 Michael Osipov 2019-12-13 09:27:39 UTC
Can this be backported to the quarterly branch?
Comment 43 Kubilay Kocak freebsd_committer freebsd_triage 2019-12-13 09:30:27 UTC
(In reply to Michael Osipov from comment #42)
Comment 44 John Hein 2019-12-15 03:54:27 UTC
Created attachment 209962 [details]
[patch] improve docs/meson.build

The patch (attachment 205022 [details]) is not quite right.  See also comment 29.

It passes the wrong list to the gtkdoc-scan --ignore-headers option when DOCS=on and X11=on (it should not ignore the xft header files - i.e., it should not add them to "private_headers" in the meson.build file).

Attached is a better patch that fixes that.  When building with DOCS and X11 on, docs/meson.build should not set the xft headers as "private" (which means that they are added to --ignore-headers when gtkdoc-scan is called).

I discovered this around the end of Nov. but didn't have time to fix up a correct patch and submit here at the time.  @swills, sorry I didn't get to it before you committed r519952.

This new patch has been tested with DOCS on/off, X11 on/off in poudriere.  It fixes all the configure, link problems (which no longer occur after r519952), and also fixes the generated docs as well.

This patch is generated against the r519952 version.