FunkinCrew / Funkin

A rhythm game made with HaxeFlixel
https://www.newgrounds.com/portal/view/770371
Other
2.92k stars 2.27k forks source link

Compiling help: [GLibC Library Incompatibility / version "GLIBC_2.38" not found] #2607

Closed NexusSfan closed 3 months ago

NexusSfan commented 3 months ago

Please check for duplicates or similar compiler issues by filtering for 'compiler help'

Please describe your issue. Provide extensive detail and images if possible.

I am compiling on Debian 12 (Bookworm) for HTML5 and here is the error: Warning: Could not generate *.woff web font for "assets/fonts/5by7.ttf" Warning: Could not generate *.woff web font for "assets/fonts/5by7_b.ttf" Warning: Could not generate *.woff web font for "assets/fonts/DS-DIGI.TTF" Warning: Could not generate *.woff web font for "assets/fonts/DS-DIGIB.TTF" Warning: Could not generate *.woff web font for "assets/fonts/DS-DIGII.TTF" Warning: Could not generate *.woff web font for "assets/fonts/DS-DIGIT.TTF" Warning: Could not generate *.woff web font for "assets/fonts/Inconsolata-Black.ttf" Warning: Could not generate *.woff web font for "assets/fonts/Inconsolata-Bold.ttf" Warning: Could not generate *.woff web font for "assets/fonts/Inconsolata-ExtraBold.ttf" Warning: Could not generate *.woff web font for "assets/fonts/Inconsolata-ExtraLight.ttf" Warning: Could not generate *.woff web font for "assets/fonts/Inconsolata-Medium.ttf" Warning: Could not generate *.woff web font for "assets/fonts/Inconsolata-Regular.ttf" Warning: Could not generate *.woff web font for "assets/fonts/Inconsolata-SemiBold.ttf" Warning: Could not generate *.woff web font for "assets/fonts/Quantico-Bold.ttf" Warning: Could not generate *.woff web font for "assets/fonts/Quantico-BoldItalic.ttf" Warning: Could not generate *.woff web font for "assets/fonts/Quantico-Italic.ttf" Warning: Could not generate *.woff web font for "assets/fonts/Quantico-Regular.ttf" Warning: Could not generate *.woff web font for "assets/fonts/pixel.otf" Warning: Could not generate *.woff web font for "assets/fonts/vcr.ttf" Warning: Could not generate *.woff web font for "/home/nexussfan/funkin/.haxelib/flixel/git/assets/fonts/nokiafc22.ttf" Warning: Could not generate *.woff web font for "/home/nexussfan/funkin/.haxelib/flixel/git/assets/fonts/monsterrat.ttf" Called from ? line 1 Called from CommandLineTools.hx line 1904 Called from CommandLineTools.hx line 22 Called from a C function Called from CommandLineTools.hx line 125 Called from CommandLineTools.hx line 640 Called from lime/tools/PlatformTarget.hx line 98 Called from HTML5Platform.hx line 411 Called from lime/tools/IconHelper.hx line 66 Called from lime/tools/IconHelper.hx line 360 Called from lime/graphics/Image.hx line 698 Called from lime/graphics/Image.hx line 1620 Called from a C function Called from /usr/share/haxe/std/neko/Lib.hx line 43 Uncaught exception - load.c(237) : Failed to load library : /home/nexussfan/funkin/.haxelib/lime/git//ndll/Linux64/lime.ndll (/lib/x86_64-linux-gnu/libm.so.6: (required by /home/nexussfan/funkin/.haxelib/lime/git//ndll/Linux64/lime.ndll))

I am using GLibC version 2.36. The issue is, even though I'm on debian stable, I don't have the latest version compatible with FNF. Is there a way to get past this error?

NotHyper-474 commented 3 months ago

I had a similar problem building for native Linux in Ubuntu 22.04, in my case it was Lime's command line throwing the error (apparently something in Neko requiring glibc 2.38)

I've fixed it by calling lime rebuild linux -64 -release -clean and then trying to build again (with lime test). Also isn't Haxe only updated up to 4.2 on Debian? I've heard Funkin requires at least 4.3

NexusSfan commented 3 months ago

Also isn't Haxe only updated up to 4.2 on Debian? I've heard Funkin requires at least 4.3

Using special Apt configurations I was able to get Haxe 4.3 and I updated my Haxelib to latest. It still doesn't work even with the command you did. GlibC needs to be updated somehow...

NotHyper-474 commented 3 months ago

Also isn't Haxe only updated up to 4.2 on Debian? I've heard Funkin requires at least 4.3

Using special Apt configurations I was able to get Haxe 4.3 and I updated my Haxelib to latest. It still doesn't work even with the command you did. GlibC needs to be updated somehow...

Well that just sucks, but looking closely at the error it's not even mentioning glibc but instead libm. And updating GlibC is out of scope (it could just break your system), downgrading Lime to use an older glibc is more viable, which running the command should've already done.

NexusSfan commented 3 months ago

Well that just sucks, but looking closely at the error it's not even mentioning glibc but instead libm. And updating GlibC is out of scope (it could just break your system), downgrading Lime to use an older glibc is more viable, which running the command should've already done.

No, lime is not the reason, its lime/ndll/Linux64/lime.ndll which depends on that version AND it's a binary so we can't modify it.

NotHyper-474 commented 3 months ago

No, lime is not the reason, its lime/ndll/Linux64/lime.ndll which depends on that version AND it's a binary so we can't modify it.

Exactly, but what that command does is rebuild that file as well, which makes me think it might not be related to the glibc version.

NexusSfan commented 3 months ago

Exactly, but what that command does is rebuild that file as well, which makes me think it might not be related to the glibc version.

Maybe. Lime repo is modified by FNF team, so I would go through that trouble.

ewichoski commented 3 months ago

lime rebuild linux -64 -release -clean

Here the tip made by @NotHyper-474 solves the problem! Thanks for sharing!

NexusSfan commented 3 months ago

When I do lime rebuild linux -64 -release -clean

It works, but then there is no binary output.

NotHyper-474 commented 3 months ago

When I do lime rebuild linux -64 -release -clean

It works, but then there is no binary output.

What do you mean with "no binary output"?

NexusSfan commented 3 months ago

~/funkin$ ls ./export/release/linux/bin/ assets changelog.txt 'do NOT readme.txt' lime.ndll manifest

I don't see any binary to run

NotHyper-474 commented 3 months ago

~/funkin$ ls ./export/release/linux/bin/ assets changelog.txt 'do NOT readme.txt' lime.ndll manifest

I don't see any binary to run

Oh ok. But did you also run lime test afterwards? lime rebuild is just for the lime libraries.

NexusSfan commented 3 months ago

~/funkin$ lime test linux source/Prebuild.hx:15: Building... source/funkin/Paths.hx:116: characters 75-76 : Unexpected ?

NexusSfan commented 3 months ago

And no, trying to upgrade to newer haxelib from unstable doesnt work

Reading package lists... Done Building dependency tree... Done Reading state information... Done Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation:

The following packages have unmet dependencies: libgtk-3-0t64 : Depends: libatk-bridge2.0-0t64 (>= 2.15.1) but it is not going to be installed Depends: libatk1.0-0t64 (>= 2.35.1) but it is not going to be installed Depends: libc6 (>= 2.38) but 2.36-9+deb12u7 is to be installed Depends: libcloudproviders0 (>= 0.3.2) but 0.3.1-2 is to be installed Depends: libcups2t64 (>= 1.7.0) but it is not going to be installed Depends: libglib2.0-0t64 (>= 2.79.0) but it is not going to be installed Depends: libgtk-3-common (>= 3.24.42-1) but 3.24.38-2~deb12u1 is to be installed libuv1t64 : Depends: libc6 (>= 2.38) but 2.36-9+deb12u7 is to be installed E: Unable to correct problems, you have held broken packages.

NotHyper-474 commented 3 months ago

source/Prebuild.hx:15: Building... source/funkin/Paths.hx:116: characters 75-76 : Unexpected ? I get the same error when trying to build using Haxe 4.2 instead of 4.3

Perhaps you could try uninstalling your current Haxe package and downloading the binaries through https://haxe.org/download/file/4.3.4/haxe-4.3.4-linux64.tar.gz/ and doing a symbolic link in /usr/local/bin to them?

NexusSfan commented 3 months ago

Installed Haxe 4.3

Output of my compilation: ~/funkin$ lime test linux source/Prebuild.hx:15: Building... WARNING /home/nexussfan/funkin/.haxelib/polymod/git/polymod/Polymod.hx:1005: characters 1-7 1005 | @:enum abstract PolymodErrorOrigin(String) from String to String | ^^^^^^ | (WDeprecatedEnumAbstract) @:enum abstract is deprecated in favor of enum abstract WARNING /home/nexussfan/funkin/.haxelib/polymod/git/polymod/Polymod.hx:1051: characters 1-7 1051 | @:enum abstract PolymodErrorCode(String) from String to String | ^^^^^^ | (WDeprecatedEnumAbstract) @:enum abstract is deprecated in favor of enum abstract

WARNING /home/nexussfan/funkin/.haxelib/polymod/git/polymod/backends/PolymodAssets.hx:226: characters 1-7

226 | @:enum abstract PolymodAssetType(String) from String to String | ^^^^^^ | (WDeprecatedEnumAbstract) @:enum abstract is deprecated in favor of enum abstract

WARNING /home/nexussfan/funkin/.haxelib/flixel/git/flixel/FlxState.hx:196: lines 196-199

196 public function switchTo(nextState:FlxState):Bool 197 { 198 return true; 199 }
switchTo is deprecated, use startOutro

WARNING /home/nexussfan/funkin/.haxelib/flixel/git/flixel/FlxState.hx:196: lines 196-199

196 public function switchTo(nextState:FlxState):Bool 197 { 198 return true; 199 }
switchTo is deprecated, use startOutro

WARNING /home/nexussfan/funkin/.haxelib/flixel/git/flixel/FlxState.hx:196: lines 196-199

196 public function switchTo(nextState:FlxState):Bool 197 { 198 return true; 199 }
switchTo is deprecated, use startOutro

WARNING /home/nexussfan/funkin/.haxelib/flixel/git/flixel/FlxState.hx:196: lines 196-199

196 public function switchTo(nextState:FlxState):Bool 197 { 198 return true; 199 }
switchTo is deprecated, use startOutro

ERROR source/funkin/modding/PolymodHandler.hx:294: characters 7-24

294 | coreAssetRedirect: CORE_FOLDER, | ^^^^^^^^^^^^^^^^^ | { coreAssetRedirect : Null, assetLibraryPaths : haxe.ds.Map<String, String> } has extra field coreAssetRedirect

NotHyper-474 commented 3 months ago

Seems like Polymod didn't install properly. Try hmm reinstall -f polymod and building again

NexusSfan commented 3 months ago

Works now