Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 791034 - games-emulation/pcsxr-1.9.94_p20190306-r1 fails to compile: pango-coverage.h:28:10: fatal error: hb.h: No such file or directory
Summary: games-emulation/pcsxr-1.9.94_p20190306-r1 fails to compile: pango-coverage.h:...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Michał Górny
URL:
Whiteboard:
Keywords: PATCH, PMASKED, PullRequest
Depends on:
Blocks: missing-depend
  Show dependency tree
 
Reported: 2021-05-19 06:41 UTC by Agostino Sarubbo
Modified: 2023-06-22 13:26 UTC (History)
8 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
build.log (build.log,127.73 KB, text/plain)
2021-05-19 06:41 UTC, Agostino Sarubbo
Details
patch for harfbuzz dependency (pango-harfbuzz.patch,2.04 KB, patch)
2021-09-23 20:56 UTC, Spica
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Agostino Sarubbo gentoo-dev 2021-05-19 06:41:56 UTC
https://blogs.gentoo.org/ago/2020/07/04/gentoo-tinderbox/

Issue: games-emulation/pcsxr-1.9.94_p20190306 fails to compile.
Discovered on: amd64 (internal ref: tinderbox)

NOTE:
This machine uses GCC-11: https://gcc.gnu.org/gcc-11/porting_to.html
If you think this is a GCC-11 related issue, please block bug 732706.
Comment 1 Agostino Sarubbo gentoo-dev 2021-05-19 06:41:59 UTC
Created attachment 709755 [details]
build.log

build log and emerge --info
Comment 2 Agostino Sarubbo gentoo-dev 2021-05-19 06:42:00 UTC
Possible context of error(s):

/usr/include/pango-1.0/pango/pango-coverage.h:28:10: fatal error: hb.h: No such file or directory
/usr/include/pango-1.0/pango/pango-coverage.h:28:10: fatal error: hb.h: No such file or directory
Comment 3 David Duchesne 2021-06-05 14:57:59 UTC
Hi,
Just stumbled upon the same error on two gentoo boxes (core2 & bdver2) with GCC 10.3.0.

This might be of interest,

https://bbs.archlinux.org/viewtopic.php?id=248498

https://aur.archlinux.org/cgit/aur.git/commit/?h=pcsxr-git&id=b71f5af1153a5f3f0a09955bd33ecb014d1f60a4
Comment 4 sofachillax 2021-06-14 09:36:43 UTC
I encountered the same problem and tried this:

in file /etc/portage/package.env add:

games-emulation/pcsxr pcsxr.conf

in file /etc/portage/env/pcsxr.conf add:

CFLAGS="-O2 -DNDEBUG -mtune=native -pipe -I/usr/include/harfbuzz/ -lGLU -lGL"
CXXFLAGS="-O2 -DNDEBUG -mtune=native -pipe -I/usr/include/harfbuzz/ -lGLU -lGL"

It compiled and seems to run. I tested only one game but it seems to work nicely.

BTW: I tried the pulseaudio use flag first for the pulseaudio sound plugin and got stuttering sound during gameplay, you might want to use -pulseaudio and use sdl in use flags to get rid of that.
Comment 5 Thomas Capricelli 2021-08-10 15:05:22 UTC
i can confirm with uptodate portage and system, using gcc 11.2.0
Comment 6 Raymond Jennings 2021-09-05 07:04:14 UTC
I can confirm as well.

The problematic line from the build log appears to be this:

FAILED: gui/CMakeFiles/pcsxr.dir/ConfDlg.c.o 
/usr/bin/x86_64-pc-linux-gnu-gcc -DDEF_PLUGIN_DIR=\"/usr/lib64/games/psemu\" -DENABLE_NLS -DENABLE_SIO1API -DGETTEXT_PACKAGE=\"pcsxr\" -DLOCALE_DIR=\"/usr/share/locale/\" -DPACKAGE_NAME=\"PCSXr\" -DPACKAGE_STRING="\"PCSXr 1.9.94\"" -DPACKAGE_VERSION=\"1.9.94\" -DPSEMU_DATA_DIR=\"/usr/share/psemu\" -I/var/tmp/portage/games-emulation/pcsxr-9999/work/pcsxr-9999 -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/gtk-3.0 -I/usr/include/atk-1.0 -I/usr/include/pango-1.0 -I/usr/include/cairo -I/usr/include/gdk-pixbuf-2.0  -O2 -march=x86-64 -pipe -MD -MT gui/CMakeFiles/pcsxr.dir/ConfDlg.c.o -MF gui/CMakeFiles/pcsxr.dir/ConfDlg.c.o.d -o gui/CMakeFiles/pcsxr.dir/ConfDlg.c.o -c /var/tmp/portage/games-emulation/pcsxr-9999/work/pcsxr-9999/gui/ConfDlg.c
In file included from /usr/include/pango-1.0/pango/pango-font.h:25,
                 from /usr/include/pango-1.0/pango/pango-attributes.h:25,
                 from /usr/include/pango-1.0/pango/pango.h:25,
                 from /usr/include/gtk-3.0/gdk/gdktypes.h:35,
                 from /usr/include/gtk-3.0/gdk/gdkapplaunchcontext.h:30,
                 from /usr/include/gtk-3.0/gdk/gdk.h:32,
                 from /usr/include/gtk-3.0/gtk/gtk.h:30,
                 from /var/tmp/portage/games-emulation/pcsxr-9999/work/pcsxr-9999/gui/ConfDlg.c:27:
/usr/include/pango-1.0/pango/pango-coverage.h:28:10: fatal error: hb.h: No such file or directory
   28 | #include <hb.h>
      |          ^~~~~~
compilation terminated.

Looks like pango is choking on a missing "hb.h"
Comment 7 Raymond Jennings 2021-09-05 07:09:16 UTC
(In reply to d.thuerrigl from comment #4)
> I encountered the same problem and tried this:
> 
> in file /etc/portage/package.env add:
> 
> games-emulation/pcsxr pcsxr.conf
> 
> in file /etc/portage/env/pcsxr.conf add:
> 
> CFLAGS="-O2 -DNDEBUG -mtune=native -pipe -I/usr/include/harfbuzz/ -lGLU -lGL"
> CXXFLAGS="-O2 -DNDEBUG -mtune=native -pipe -I/usr/include/harfbuzz/ -lGLU
> -lGL"
> 
> It compiled and seems to run. I tested only one game but it seems to work
> nicely.
> 
> BTW: I tried the pulseaudio use flag first for the pulseaudio sound plugin
> and got stuttering sound during gameplay, you might want to use -pulseaudio
> and use sdl in use flags to get rid of that.

I can also confirm that this workaround worked.

I removed the -mtune=native part, my hunches say that it's a header file issue and the -I/usr/include/harfbuzz bit did the trick
Comment 8 Spica 2021-09-23 20:56:53 UTC
Created attachment 740940 [details, diff]
patch for harfbuzz dependency

There's a pull request in upstream which fixes the issue https://github.com/iCatButler/pcsxr/pull/24
I created a patch from that PR and it works for me
Comment 9 immolo 2022-07-31 12:46:03 UTC
Confirmed patch fixes the issue.
Comment 10 Agostino Sarubbo gentoo-dev 2023-05-06 12:30:01 UTC
ci has reproduced this issue with version 1.9.94_p20190306-r1 - Updating summary.
Comment 11 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2023-05-13 05:53:39 UTC
I'm afraid the patch isn't correct, and the upstream build system is horribly broken.  This is the last nail in the coffin.
Comment 12 Larry the Git Cow gentoo-dev 2023-05-13 05:56:51 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7db7f83ad135cf24498de0c352003acd12c9d25a

commit 7db7f83ad135cf24498de0c352003acd12c9d25a
Author:     Michał Górny <mgorny@gentoo.org>
AuthorDate: 2023-05-13 05:56:13 +0000
Commit:     Michał Górny <mgorny@gentoo.org>
CommitDate: 2023-05-13 05:56:13 +0000

    package.mask: Last rite games-emulation/pcsxr
    
    Bug: https://bugs.gentoo.org/791034
    Signed-off-by: Michał Górny <mgorny@gentoo.org>

 profiles/package.mask | 7 +++++++
 1 file changed, 7 insertions(+)
Comment 13 Arve Barsnes 2023-05-13 10:08:36 UTC
It builds for me as well with the PR applied.

If I understand what you're saying on the upstream PR correctly, adding the FindHarfBuzz.cmake is redundant, but wouldn't then the patch simply be

--- a/cmake/FindPango.cmake
+++ b/cmake/FindPango.cmake
@@ -30,6 +30,7 @@
 find_package(PkgConfig)
 
 set(Pango_DEPS
+  HarfBuzz
   GLib)
 
 if(PKG_CONFIG_FOUND)
Comment 14 Michał Górny archtester Gentoo Infrastructure gentoo-dev Security 2023-05-13 15:59:02 UTC
(In reply to Arve Barsnes from comment #13)
> It builds for me as well with the PR applied.
> 
> If I understand what you're saying on the upstream PR correctly, adding the
> FindHarfBuzz.cmake is redundant, but wouldn't then the patch simply be
> 
> --- a/cmake/FindPango.cmake
> +++ b/cmake/FindPango.cmake
> @@ -30,6 +30,7 @@
>  find_package(PkgConfig)
>  
>  set(Pango_DEPS
> +  HarfBuzz
>    GLib)
>  
>  if(PKG_CONFIG_FOUND)

Unfortunately not because it calls find_package() multiple times and cmake fails because of duplicate targets.
Comment 15 Larry the Git Cow gentoo-dev 2023-06-22 13:26:54 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4e12e50acddb7a57346c6d1417b55ace2aa1a282

commit 4e12e50acddb7a57346c6d1417b55ace2aa1a282
Author:     Jakov Smolić <jsmolic@gentoo.org>
AuthorDate: 2023-06-22 13:10:39 +0000
Commit:     Jakov Smolić <jsmolic@gentoo.org>
CommitDate: 2023-06-22 13:10:39 +0000

    games-emulation/pcsxr: treeclean
    
    Closes: https://bugs.gentoo.org/791034
    Closes: https://bugs.gentoo.org/631202
    Closes: https://bugs.gentoo.org/858713
    Signed-off-by: Jakov Smolić <jsmolic@gentoo.org>

 games-emulation/pcsxr/Manifest                     |  1 -
 games-emulation/pcsxr/metadata.xml                 | 17 -----
 .../pcsxr/pcsxr-1.9.94_p20190306-r1.ebuild         | 78 --------------------
 games-emulation/pcsxr/pcsxr-9999.ebuild            | 84 ----------------------
 profiles/package.mask                              |  7 --
 5 files changed, 187 deletions(-)