Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 856937 - games-emulation/yuzu-9999 fails to build
Summary: games-emulation/yuzu-9999 fails to build
Status: RESOLVED FIXED
Alias: None
Product: GURU
Classification: Unclassified
Component: Package issues (show other bugs)
Hardware: AMD64 Linux
: Normal normal
Assignee: Samuel Bauer
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2022-07-07 22:37 UTC by radioman99
Modified: 2023-07-03 16:28 UTC (History)
1 user (show)

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


Attachments
build log (build.log,169.65 KB, text/x-log)
2022-07-07 22:38 UTC, radioman99
Details
build log (build.log,22.75 KB, text/x-log)
2022-08-03 23:55 UTC, radioman99
Details
fmt (build.log,20.95 KB, text/x-log)
2023-02-13 00:37 UTC, radioman99
Details
emerge info (emerge info,12.40 KB, text/plain)
2023-02-14 19:03 UTC, radioman99
Details
emerge info yuzu (emerge info,862 bytes, text/plain)
2023-02-20 01:17 UTC, radioman99
Details
build log tzdb_to_nx (build.log,15.07 KB, text/x-log)
2023-06-26 20:37 UTC, SigHunter
Details

Note You need to log in before you can comment on or make changes to this bug.
Description radioman99 2022-07-07 22:37:54 UTC
It used to compile if I disabled system-vulkan.

Reproducible: Always
Comment 1 radioman99 2022-07-07 22:38:56 UTC
Created attachment 790574 [details]
build log
Comment 3 radioman99 2022-07-23 19:20:41 UTC
system vulkan fails even if set to the same commit as internal vulkan.
Comment 4 Samuel Bauer 2022-08-02 21:01:00 UTC
Does it build now ?
Comment 5 radioman99 2022-08-03 23:55:35 UTC
Created attachment 797401 [details]
build log
Comment 6 radioman99 2022-08-03 23:56:08 UTC
Nope. New error.

CMake Error at externals/CMakeLists.txt:73 (add_subdirectory):
  The source directory

    /var/tmp/portage/games-emulation/yuzu-9999/work/yuzu-9999/externals/enet

  does not contain a CMakeLists.txt file.


CMake Error at externals/CMakeLists.txt:74 (target_include_directories):
  Cannot specify include directories for target "enet" which is not built by
  this project.
Comment 7 Samuel Bauer 2022-08-05 23:54:07 UTC
Yes, until new commits are merged to master, it is so.
Maybe holiday for guru devs as I don't see much progress on merging, maybe also just not for all packages only some, idk well.

Could you test switching to dev branch before merging yuzu.
I unbundled lot of things in dev branch (even wonder if not too much).

The worst part about net-libs/enet, is that it is not even used by yuzu (gui) as the new 'network room' feature is disabled from interface. However yuzu-cmd expose new --multiplayer option
Comment 8 radioman99 2022-08-06 01:46:19 UTC
Where is guru dev?
Comment 9 Samuel Bauer 2022-08-06 02:42:13 UTC
dev is just a git branch of guru

if you don't know about git it's better to read a bit of docs before.

basically:
to switch branch (you may need to fetch branch before)
git checkout dev
to revert to main branch
git checkout master

ensure yourself to understand at least a bit what you do or avoid. Nothing really complicated. You can also ping me on irc: mazes_80, for more advices
Comment 10 Samuel Bauer 2022-12-04 19:45:46 UTC
I think my latest commits in dev should fix the issue.
However I just moved in a new place so I need some days to check and confirm everything is ok with latest upstream versions.
Comment 11 Samuel Bauer 2022-12-04 20:18:42 UTC
Hope latest commit are already in main, because it was a while ago.
Comment 12 Mitch 2022-12-19 06:27:00 UTC
im getting this currently trying to build it

CMake Error at CMakeLists.txt:205 (find_package):
  Could not find a configuration file for package "fmt" that is compatible
  with requested version "9".

  The following configuration files were considered but not accepted:

    /usr/lib64/cmake/fmt/fmt-config.cmake, version: 8.1.1
Comment 13 Mitch 2022-12-19 06:30:30 UTC
(In reply to Mitch from comment #12)
> im getting this currently trying to build it
> 
> CMake Error at CMakeLists.txt:205 (find_package):
>   Could not find a configuration file for package "fmt" that is compatible
>   with requested version "9".
> 
>   The following configuration files were considered but not accepted:
> 
>     /usr/lib64/cmake/fmt/fmt-config.cmake, version: 8.1.1

if I unmask dev-libs/libfmt-9.1.0-r1 I need to rebuild a bunch of packages so I cant right now. But I did before and there is still another issue preventing the package from building once fmt is at >=9
Comment 14 Samuel Bauer 2022-12-19 20:27:03 UTC
I'm aware of this error, since one month I didn't maintain the package because of personal things.

I discussed the issue on the guru irc, ago advised me to bundle fmt-9 to the ebuild.

I have issues too with some other ebuilds needing fmt<=9, like celestia
Comment 15 Samuel Bauer 2022-12-19 22:47:42 UTC
Just commited an update to the ebuild.
Here it just compiles fine.

If you want to check it out it is in dev branch
Comment 16 radioman99 2022-12-31 23:50:46 UTC
Requires app-doc/doxygen[dot]

CMake Error at externals/CMakeLists.txt:140 (add_subdirectory):
  The source directory

    /var/tmp/portage/games-emulation/yuzu-9999/work/yuzu-9999/externals/Vulkan-Headers

  does not contain a CMakeLists.txt file.
Comment 17 Samuel Bauer 2023-01-01 22:03:25 UTC
current ebuild at least latest I pushed in dev states
    system-vulkan? ( >=dev-util/vulkan-headers-1.3.238 )

this version is still unavailable in gentoo so for now disable system-vulkan flag, if you didn't use --nodeps in your emerge line it should care of this.
with USE="-system-vulkan" ebuild should fetch vulkan-headers:

       if use !system-vulkan; then
               EGIT_SUBMODULES+=('Vulkan-Headers')

About doxygen[dot], i will check what changed this week, thanks. Until now I didn't even notice the doxygen requirement.
Comment 18 radioman99 2023-02-12 18:30:44 UTC
CMake Error at src/common/CMakeLists.txt:179 (target_link_libraries):
  Target "common" links to:

    fmt::fmt

  but the target was not found.  Possible reasons include:

    * There is a typo in the target name.
    * A find_package call is missing for an IMPORTED target.
    * An ALIAS target is missing.



CMake Error at src/core/CMakeLists.txt:849 (target_link_libraries):
  Target "core" links to:

    fmt::fmt

  but the target was not found.  Possible reasons include:

    * There is a typo in the target name.
    * A find_package call is missing for an IMPORTED target.
    * An ALIAS target is missing.



CMake Error at src/shader_recompiler/CMakeLists.txt:242 (target_link_libraries):
  Target "shader_recompiler" links to:

    fmt::fmt

  but the target was not found.  Possible reasons include:

    * There is a typo in the target name.
    * A find_package call is missing for an IMPORTED target.
    * An ALIAS target is missing.



CMake Error at src/yuzu/CMakeLists.txt:356 (target_link_libraries):
  Target "yuzu" links to:

    httplib::httplib

  but the target was not found.  Possible reasons include:

    * There is a typo in the target name.
    * A find_package call is missing for an IMPORTED target.
    * An ALIAS target is missing.
Comment 19 Samuel Bauer 2023-02-12 22:58:07 UTC
I just compiled with:

USE="compatibility-list cubeb qt5 sdl system-vulkan webengine webservice -discord -test" emerge -1 =yuzu-9999
I had no issues at all.

Did you update guru recently, those issue looks familiar to me, but I thought the ebuild was updated to skip them.
Comment 20 radioman99 2023-02-13 00:37:48 UTC
Created attachment 850658 [details]
fmt

Not sure where the problem is.
Comment 21 Samuel Bauer 2023-02-13 06:36:58 UTC
From what I see cpp-httplib is not detected too. I knew it from first comment.

Seems like discord use flag needs it but does not trigger the detection.
   -> this is an upstream issue, i'll open bug and may submit PR to fix
   -> requiring web-service flag when using discord one should be an easy workaround.


Can you provide me the flag set you use to compile or emerge --info yuzu output.

Also you libfmt and cpp-httplib versions.
Comment 22 Samuel Bauer 2023-02-14 11:17:40 UTC
Found out why libfmt was not  detected, on my own overlay libfmt may be the one bundled to yuzu sources, so when I use bundled I ensure cmake does not detect it, and copied the line to guru ebuild not seeing the guard inverted condition. My bad.

About cpp-httplib, this seems to be an usptream issue, as a workaround in my ebuilds I forced enabling webservice flag when compiling with discord flag enabled. cpp-httplib is not triggered by discord but only by webservice.

I think it should be ok now.
Comment 23 radioman99 2023-02-14 19:03:47 UTC
Created attachment 851136 [details]
emerge info

libfmt-9.1.0-r1
cpp-httplib-0.12.0
Comment 24 Samuel Bauer 2023-02-14 23:01:06 UTC
Did you try latest from dev branch ?

also I asked for
emerge --info yuzu

not 
emerge --info
Comment 25 radioman99 2023-02-20 01:17:35 UTC
Created attachment 853144 [details]
emerge info yuzu

It works fine now.
Comment 26 SigHunter 2023-06-26 20:36:24 UTC
Hi,
it seems latest git master of yuzu needs the submodule "tzdb_to_nx" now,
as building for me currently fails, please see attached build log

https://github.com/yuzu-emu/yuzu/pull/10797

https://github.com/yuzu-emu/yuzu/blob/master/.gitmodules

[submodule "tzdb_to_nx"]
	path = externals/nx_tzdb/tzdb_to_nx
	url = https://github.com/lat9nq/tzdb_to_nx.git
Comment 27 SigHunter 2023-06-26 20:37:22 UTC
Created attachment 864680 [details]
build log tzdb_to_nx
Comment 28 Samuel Bauer 2023-06-30 21:42:02 UTC
I'm aware of this new submodule. The problem is not just to add it, but to fix compilation error involved when having it, do not expect fast fix for this one, form what I saw it's quite complicated to dive into build system and locate the error: it tries to act on directories outside the sandbox.

For now try:

EGIT_COMMIT="a40e0fd" emerge yuzu

Until I understand where sandboxing is violated I can not propose better alternatives.
Comment 29 SigHunter 2023-07-01 09:37:12 UTC
thanks for your effort, Samuel!

I did not know you could reference an exact git commit when emerging, nice!
Comment 30 Samuel Bauer 2023-07-03 16:25:11 UTC
Sandboxing was not violated hopefully.

I just forgot to look at tzdb_to_nx submodules.

I also added vulkan memory allocator submodule. Until now changes are only in dev branch of guru
Comment 31 Samuel Bauer 2023-07-03 16:27:25 UTC
I still do not understand recursive submodule exact syntax hopefully emerging provides a skip list from where I copy the  subsubmodules pathes.