Closed icculus closed 2 years ago
OpenSceneGraph took like 12 hours to build; might need to use a more-powerful machine for this. :)
Getting a lot of failures to find the library at link time, so something is probably wrong with the script still. Here's SDL_image failing...
/bin/sh ./libtool --mode=link gcc -I/usr/include/libpng16 -O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -no-undefined -release 1.2 -version-info 8:4:8 -Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -o libSDL_image.la -rpath /usr/lib64 IMG.lo IMG_bmp.lo IMG_gif.lo IMG_jpg.lo IMG_lbm.lo IMG_pcx.lo IMG_png.lo IMG_pnm.lo IMG_tga.lo IMG_tif.lo IMG_xcf.lo IMG_xpm.lo IMG_xv.lo IMG_webp.lo -lpng -lz -lSDL -lpthread
libtool: link: gcc -shared .libs/IMG.o .libs/IMG_bmp.o .libs/IMG_gif.o .libs/IMG_jpg.o .libs/IMG_lbm.o .libs/IMG_pcx.o .libs/IMG_png.o .libs/IMG_pnm.o .libs/IMG_tga.o .libs/IMG_tif.o .libs/IMG_xcf.o .libs/IMG_xpm.o .libs/IMG_xv.o .libs/IMG_webp.o -lpng -lz -lSDL -lpthread -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -m64 -mtune=generic -Wl,-z -Wl,relro -Wl,--as-needed -Wl,-z -Wl,now -Wl,-soname -Wl,libSDL_image-1.2.so.0 -o .libs/libSDL_image-1.2.so.0.8.4
/usr/bin/ld: cannot find -lSDL
collect2: error: ld returned 1 exit status
make: *** [Makefile:389: libSDL_image.la] Error 1
Landed on this kind of issue as well when building SDL_image.
This is because https://github.com/libsdl-org/sdl12-compat/blob/main/CMakeLists.txt#L63 names it libSDL-1.2.so
and both sdl-config
and sdl12_compat.pc
are only poiting towards a libSDL.so
/libSDL.so.*
.
I think it would be better to target it as libSDL.so
to avoid having to change legacy programs having their own detection code and using things like patchelf
on old binaries but seeing sdl12_compat.pc
instead of sdl.pc
it looks a bit like you could also prefer only fixing sdl-config
&sdl12_compat.pc
.
Addressing it in https://github.com/libsdl-org/sdl12-compat/pull/82 where I didn't change the soname.
We do need our CMake'ry to additionally create a libSDL.so
(or libSDL.dylib
) symlink.
Just did that in linux and darwin standalone makefiles as of https://github.com/libsdl-org/sdl12-compat/commit/f6a60d6534a16308cfc22f7b0945797849efb083
Someone better familiar than me with cmake should do the same in CMakeLists.txt
We do need our CMake'ry to additionally create a
libSDL.so
(orlibSDL.dylib
) symlink. Just did that in linux and darwin standalone makefiles as of f6a60d6Someone better familiar than me with cmake should do the same in CMakeLists.txt
This has been fixed in git for some time. What issues remain to be fixed in this bug entry?
What issues remain to be fixed in this bug entry?
I think I just need to leave the Fedora virtual machine cooking all the packages and see what else complains at this point. I'm starting that over now, but it runs for a looooong time.
(Just realized the virtual machine had 2 gigabytes of RAM and 1 processor core available to it. Pumped that up to 16 gigs and 8 cores, so hopefully that'll help if the builds parallelize, and I'll move it to a more-powerful machine if necessary.)
Failure in brutalchess package...
/usr/include/SDL/SDL_opengl.h:52:10: fatal error: GL/glu.h: No such file or directory
...I assume this is a dependency issue and not an sdl12-compat bug...?
/usr/include/SDL/SDL_opengl.h:52:10: fatal error: GL/glu.h: No such file or directory
...I assume this is a dependency issue and not an sdl12-compat bug...?
Well, yeah..
I think mesa-libGLU-devel
needs to be installed for it.
This is more for @Conan-Kudo, specifically: do we need sdl12-compat's RPM to depend on GLU? Surely we don't expect every package that #include
s SDL_opengl.h to depend on it?
Did the real 1.2 depend on it, or do these packages generally build by luck of having GLU installed already?
This is more for @Conan-Kudo, specifically: do we need sdl12-compat's RPM to depend on GLU? Surely we don't expect every package that
#include
s SDL_opengl.h to depend on it?
Well, that's irrelevant IMO. SDL-1.2 header depends on glu.h and programs might as well depend on that, we can't know. Besides. sdl12-compat-devel will depend on glu.h, not the main sdl12-compat rpm.
Did the real 1.2 depend on it,
yes
or do these packages generally build by luck of having GLU installed already?
They should have installed the dependency.
This is the current fail list, but a cursory glance shows a lot of these are failing for non-SDL reasons (one failed to build because it couldn't find libasound headers in unrelated code, etc, which might be a flaw in the build script I'm using or that the sdl12-compat-devel package doesn't pull in ALSA dependencies--because it doesn't use ALSA!--when I assume SDL 1.2-devel did pull in the dependency because SDL 1.2 can be built with ALSA support). Those items are fedora problems and should probably be cleaned up but are likely not related to the sdl12-compat-devel package for the most part.
Also worth noting: perl-SDL wasn't on the list of packages to build for whatever reason, but does depend on SDL 1.2 and we fixed bugs in sdl12-compat for it...so there's probably something about how we generate the list of packages to test that needs to be revisited.
Here were the ones that failed for any reason. This isn't necessarily a TODO list for us, just documenting this.
SDL12_COMPAT_FAILED: ClanLib1
SDL12_COMPAT_FAILED: asterisk
SDL12_COMPAT_FAILED: berusky
SDL12_COMPAT_FAILED: berusky2
SDL12_COMPAT_FAILED: boswars
SDL12_COMPAT_FAILED: brutalchess
SDL12_COMPAT_FAILED: crossfire-client
SDL12_COMPAT_FAILED: enigma
SDL12_COMPAT_FAILED: erlang-esdl
SDL12_COMPAT_FAILED: fawkes
SDL12_COMPAT_FAILED: gearhead1
SDL12_COMPAT_FAILED: glob2
SDL12_COMPAT_FAILED: gnujump
SDL12_COMPAT_FAILED: grafx2
SDL12_COMPAT_FAILED: libzia
SDL12_COMPAT_FAILED: lincity-ng
SDL12_COMPAT_FAILED: mlt
SDL12_COMPAT_FAILED: nagi
SDL12_COMPAT_FAILED: nethack-vultures
SDL12_COMPAT_FAILED: opencity
SDL12_COMPAT_FAILED: quake3
SDL12_COMPAT_FAILED: rcssserver3d
SDL12_COMPAT_FAILED: sage
SDL12_COMPAT_FAILED: simcoupe
SDL12_COMPAT_FAILED: simspark
SDL12_COMPAT_FAILED: sms_ntsc
SDL12_COMPAT_FAILED: snes_ntsc
SDL12_COMPAT_FAILED: sopwith
SDL12_COMPAT_FAILED: soundtracker
SDL12_COMPAT_FAILED: tremulous
SDL12_COMPAT_FAILED: tvtime
SDL12_COMPAT_FAILED: uboot-tools
SDL12_COMPAT_FAILED: valyriatear
SDL12_COMPAT_FAILED: xgrav
SDL12_COMPAT_FAILED: xwax
Log files from all the failed builds:
I can't see what failed in grafx2, libzia, mlt, rcssserver3d, sms_ntsc, snes_ntsc, sopwith, soundtracker, or uboot-tools. But here's the rest of the details, real fast:
Well for my own tests on my pure-wayland gentoo system it ended up working quite well overall.
Noted it in https://hacktivis.me/git/blog/commit/73fcf9bb73b2cdc4a72187fab87ecee6980ad4c0.html for https://hacktivis.me/notes/pure-wayland reproduced it there:
Works:
Seems to work:
Almost working:
Broken:
creating 640x480 bitmap ... Unknown pixel format
seems to be the culpritThis is more for @Conan-Kudo, specifically: do we need sdl12-compat's RPM to depend on GLU? Surely we don't expect every package that
#include
s SDL_opengl.h to depend on it?Did the real 1.2 depend on it, or do these packages generally build by luck of having GLU installed already?
I wasn't sure which ones I should carry over to sdl12-compat-devel
. It seems like at least the Mesa ones are needed.
I've added all of them now: https://src.fedoraproject.org/rpms/sdl12-compat/c/bf015874c4f2db63222b0c948a02be9b5c3db591
I've added all of them now: https://src.fedoraproject.org/rpms/sdl12-compat/c/bf015874c4f2db63222b0c948a02be9b5c3db591
Strictly speaking, these are SDL2 dependencies; sdl12-compat just relies on SDL2's development package and OpenGL, neither of which it links directly against but needs the headers of both and dlopens them.
In theory, an app that uses ALSA directly but relies on SDL's package depending on it has a bug in its dependencies (especially as we live in a PulseAudio world and are moving towards PipeWire), but in practice, it might just be more efficient to leave sdl12-compat depending on it than touching other packages, just to avoid breaking things.
That's up to you and other Fedora maintainers. I'm happy to file bugs in the Bugzilla if you think it would be helpful; it's your call.
That's up to you and other Fedora maintainers. I'm happy to file bugs in the Bugzilla if you think it would be helpful; it's your call.
Please do file bugs! I don't want these deps here if we don't need them!
Almost working: [...] Broken: [...]
Unless these are obvious issues that are trivially fixed, don't be afraid to open issues here for them, even if we discover it isn't an sdl12-compat bug, we probably have an obligation to take on that research.
Please do file bugs! I don't want these deps here if we don't need them!
On it. :)
FWIW, I agree with Ryan: The only dependencies that sdl12-compat-devel
must be:
glibc-devel
(obviously) for -ldl
,sdl12-compat
itself (obviously),mesa-libGLU-devel
(because of SDL_opengl.h
), which should auto-pull
other opengl deps,X11/Xatom.h
, X11/Xlib.h
and
X11/Xlib.h
for SDL_syswm.h
.So basically we should drop alsa-lib-devel
/pkgconfig(alsa)
.
whatever-X-package-devel that provides
X11/Xatom.h
,X11/Xlib.h
andX11/Xlib.h
forSDL_syswm.h
.
Do you mean a third X11 header, because I only see two in SDL_syswm.h
?
Do you mean a third X11 header, because I only see two in
SDL_syswm.h
?
My bad, copy+paste error. X11/Xatom.h
, X11/Xlib.h
are the only two needed.
So basically we should drop
alsa-lib-devel
/pkgconfig(alsa)
.
Yes, that's what I think.
Done: https://src.fedoraproject.org/rpms/sdl12-compat/c/fe09323e03ab28bb45641b60919872aad4e51193
Thanks for the feedback!
okay, bugs filed for things that reference ALSA directly:
It's not clear to me if simcoupe and simspark failing to link to libpthread is our fault in sdl-config, or a package bug, or a bug in those package's individual build systems.
Log files from all the failed builds:
Quickly browsed through, here is what I think:
ClanLib1: its own rpm spec should require alsa-lib-devel
tvtime: same as ClanLib1 above.
xwax: same as ClanLib1 above.
asterisk: its own rpm spec should require perl (I think)
berusky: its own code seems to have issues (doesn't know
what offsetof
is?)
berusky2: its own rpm spec should require packages gl and glu (might work after the latest sdl12-compat spec update, though.)
boswars: same as berusky2 above.
brutalchess: same as berusky2 above.
crossfire-client: same as berusky2 above.
glob2: same as berusky2 above.
gnujump: same as berusky2 above.
opencity: same as berusky2 above.
quake3: same as berusky2 above.
sage: same as berusky2 above.
tremulous: same as berusky2 above.
valyriatear: same as berusky2 above.
xgrav: same as berusky2 above.
enigma: its own rpm spec should require xproto-devel (might work after the latest sdl12-compat spec update, though.)
erlang-esdl: same as enigma above.
fawkes: the error looks like something to do with docs generation, nothing to do with sdl12-compat?
make: *** [/builddir/build/BUILD/fawkes-4923a6c1fda7799ad32b57f84ec9111bd716fd84/etc/buildsys/root/docs.mk:47: fawkes.luadoc] Error 127
[...]
RPM build errors:
error: File not found: /builddir/build/BUILDROOT/fawkes-1.3.1-0.10.4923a6c.fc34.x86_64/usr/lib64/fawkes/plugins/flite.so
File not found: /builddir/build/BUILDROOT/fawkes-1.3.1-0.10.4923a6c.fc34.x86_64/usr/lib64/fawkes/plugins/flite.so
gearhead1: its own rpm spec should require xlib-devel
(seems to want linking with -lX11
, although there are
other linkage warnings about missing crtbegin.o
and
crtend.o
)
nagi: actually this is sdl12-compat's fault: no libSDLmain.a (even though nagi itself shouldn't have required that.)
nethack-vultures: same as nagi above.
simcoupe: missing pthread symsols - possibly not linking with
-lpthread
but mistakenly relying on SDL_LIBS
to provide it?
Not really sdl12-compat's fault.
simspark: same as simcoupe above.
lincity-ng: Not sure what this is about: (Possibly something to do with include order??)
C++ ./build/x86_64-redhat-linux-gnu/optimize/src/gui/Child.o.
In file included from /usr/include/SDL/SDL_main.h:29,
from /usr/include/SDL/SDL.h:29,
from src/gui/Component.hpp:21,
from src/gui/Child.cpp:27:
/usr/include/SDL/SDL_stdinc.h:135:32: warning: 'SDL_iconv' initialized and declared 'extern'
135 | extern DECLSPEC size_t SDLCALL SDL_iconv(SDL_iconv_t cd, const char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft);
| ^~~~~~~~~
/usr/include/SDL/SDL_stdinc.h:127:21: error: 'iconv_t' was not declared in this scope; did you mean 'ino_t'?
127 | #define SDL_iconv_t iconv_t
| ^~~~~~~
/usr/include/SDL/SDL_stdinc.h:135:42: note: in expansion of macro 'SDL_iconv_t'
135 | extern DECLSPEC size_t SDLCALL SDL_iconv(SDL_iconv_t cd, const char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft);
| ^~~~~~~~~~~
/usr/include/SDL/SDL_stdinc.h:135:58: error: expected primary-expression before 'const'
135 | extern DECLSPEC size_t SDLCALL SDL_iconv(SDL_iconv_t cd, const char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft);
| ^~~~~
/usr/include/SDL/SDL_stdinc.h:135:85: error: expected primary-expression before '*' token
135 | extern DECLSPEC size_t SDLCALL SDL_iconv(SDL_iconv_t cd, const char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft);
| ^
/usr/include/SDL/SDL_stdinc.h:135:86: error: 'inbytesleft' was not declared in this scope
135 | extern DECLSPEC size_t SDLCALL SDL_iconv(SDL_iconv_t cd, const char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft);
| ^~~~~~~~~~~
/usr/include/SDL/SDL_stdinc.h:135:99: error: expected primary-expression before 'char'
135 | extern DECLSPEC size_t SDLCALL SDL_iconv(SDL_iconv_t cd, const char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft);
| ^~~~
/usr/include/SDL/SDL_stdinc.h:135:121: error: expected primary-expression before '*' token
135 | extern DECLSPEC size_t SDLCALL SDL_iconv(SDL_iconv_t cd, const char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft);
| ^
/usr/include/SDL/SDL_stdinc.h:135:122: error: 'outbytesleft' was not declared in this scope
135 | extern DECLSPEC size_t SDLCALL SDL_iconv(SDL_iconv_t cd, const char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft);
| ^~~~~~~~~~~~
Interestingly, lincity-ng compiles fine and seems to run okay here. I also noticed they ~recently managed to switch to SDL2: https://github.com/lincity-ng/lincity-ng/pull/40 (which works nicely)
emerge --info lincity-ng
Portage 3.0.18 (python 3.8.10-final-0, platforms/pc, gcc-10.3.0, glibc-2.33, 5.10.41-gentoo x86_64)
=================================================================
System Settings
=================================================================
System uname: Linux-5.10.41-gentoo-x86_64-AMD_Ryzen_5_PRO_3500U_w-_Radeon_Vega_Mobile_Gfx-with-glibc2.2.5
KiB Mem: 13897840 total, 3582744 free
KiB Swap: 8388604 total, 2635640 free
Timestamp of repository cg: Sun, 13 Jun 2021 16:20:03 +0000
Head commit of repository cg: 89c4f6efb17b3d8f490d1e4032f0ae41674cb3a1
Head commit of repository flussence: 690bf25f30d7f92593c1c078c0c7d4da5baf14bb
Head commit of repository guru: b737d44844a896fa48ba584503688d5a55a5cc54
Timestamp of repository ixit: Tue, 08 Jun 2021 20:24:35 +0000
Head commit of repository ixit: a104d7cc17db3cc403048d2a631c69016a50e11a
Timestamp of repository pentoo: Thu, 17 Jun 2021 01:34:59 +0000
Head commit of repository pentoo: 0a15f5c13357b2a4c88cbff66e69f15bb669b8fe
Timestamp of repository poly-c: Wed, 16 Jun 2021 17:49:57 +0000
Head commit of repository poly-c: 67217dc8fe67588723a27e91d7a1b399bae1028b
Timestamp of repository science: Fri, 11 Jun 2021 15:05:14 +0000
Head commit of repository science: a8c0a12750cf3db2e8742ad02132ce98901bd536
Timestamp of repository src_prepare-overlay: Tue, 15 Jun 2021 01:19:56 +0000
Head commit of repository src_prepare-overlay: ecdc7a530036bd541ee867a4a5d5a61892c23541
Timestamp of repository wayland-desktop: Tue, 08 Jun 2021 20:25:38 +0000
Head commit of repository wayland-desktop: 1bbfb0b862b8a8f03f027c477ae77f9b394dbdf8
Timestamp of repository gentoo: Mon, 26 Apr 2021 12:39:51 +0000
Head commit of repository gentoo: ab227dc0f7eed1d9d9d0af8da08fb42acb8b475c
Timestamp of repository lanodanOverlay: Mon, 26 Apr 2021 12:38:50 +0000
Head commit of repository lanodanOverlay: 509799a367ada3af6f78f74ba95ccb37eaaca421
sh bash 5.1_p8
ld GNU ld (Gentoo 2.35.2 p1) 2.35.2
ccache version 4.3 [enabled]
app-shells/bash: 5.1_p8::gentoo
dev-java/java-config: 2.3.1::gentoo
dev-lang/perl: 5.32.1::gentoo
dev-lang/python: 3.7.10_p6::gentoo, 3.8.10_p2::gentoo, 3.9.5_p2::gentoo
dev-lang/rust-bin: 1.51.0::gentoo
dev-util/ccache: 4.3::gentoo
dev-util/cmake: 3.20.3::gentoo
sys-apps/baselayout: 2.7::gentoo
sys-apps/openrc: 0.42.1-r1::gentoo
sys-apps/sandbox: 2.24::gentoo
sys-devel/autoconf: 2.13-r1::gentoo, 2.69-r5::gentoo
sys-devel/automake: 1.16.3-r1::gentoo
sys-devel/binutils: 2.35.2::gentoo
sys-devel/gcc: 10.3.0::gentoo
sys-devel/gcc-config: 2.4::gentoo
sys-devel/libtool: 2.4.6-r6::gentoo
sys-devel/make: 4.3::gentoo
sys-kernel/linux-headers: 5.10::gentoo (virtual/os-headers)
sys-libs/glibc: 2.33::gentoo
Repositories:
cg
location: /var/db/repos/cg
sync-type: git
sync-uri: https://github.com/gentoo-mirror/cg.git
masters: gentoo
priority: 0
flussence
location: /var/db/repos/flussence
sync-type: git
sync-uri: https://repo.or.cz/flussence-overlay.git
masters: gentoo
priority: 0
guru
location: /var/db/repos/guru
sync-type: git
sync-uri: https://anongit.gentoo.org/git/repo/proj/guru.git
masters: gentoo
priority: 0
ixit
location: /var/db/repos/ixit
sync-type: git
sync-uri: https://github.com/gentoo-mirror/ixit.git
masters: gentoo
priority: 0
pentoo
location: /var/db/repos/pentoo
sync-type: git
sync-uri: https://github.com/gentoo-mirror/pentoo.git
masters: gentoo
priority: 0
poly-c
location: /var/db/repos/poly-c
sync-type: git
sync-uri: https://github.com/gentoo-mirror/poly-c.git
masters: gentoo
priority: 0
science
location: /var/db/repos/science
sync-type: git
sync-uri: https://github.com/gentoo-mirror/science.git
masters: gentoo
priority: 0
src_prepare-overlay
location: /var/db/repos/src_prepare-overlay
sync-type: git
sync-uri: https://github.com/gentoo-mirror/src_prepare-overlay.git
masters: gentoo
priority: 0
wayland-desktop
location: /var/db/repos/wayland-desktop
sync-type: git
sync-uri: https://github.com/gentoo-mirror/wayland-desktop.git
masters: gentoo
priority: 0
gentoo
location: /var/db/repos/gentoo
sync-type: git
sync-uri: https://github.com/lanodan/gentoo.git
priority: 100
lanodanOverlay
location: /var/db/repos/lanodanOverlay
sync-type: git
sync-uri: https://hacktivis.me/git/overlay.git
masters: gentoo
priority: 200
ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="@FREE"
CBUILD="x86_64-pc-linux-gnu"
CC="clang"
CFLAGS="-O2 -pipe -march=native -mtune=native -ggdb -Wall -Wextra -D_FORTIFY_SOURCE=2 -Werror=format-security -fstack-protector-strong -Qunused-arguments"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /lib/udev/rules.d/ /usr/share/config /usr/share/gnupg/qualified.txt /var/games/atris/"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXX="clang++"
CXXFLAGS="-O2 -pipe -march=native -mtune=native -ggdb -Wall -Wextra -D_FORTIFY_SOURCE=2 -Werror=format-security -fstack-protector-strong -Qunused-arguments"
DISTDIR="/var/cache/distfiles"
EMERGE_DEFAULT_OPTS="--keep-going --usepkg --binpkg-changed-deps=y"
ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR"
FCFLAGS="-O2 -pipe -march=native -mtune=native -ggdb -Wall -Wextra -D_FORTIFY_SOURCE=2 -Werror=format-security -fstack-protector-strong"
FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs binpkg-multi-instance buildpkg ccache cgroup config-protect-if-modified distlocks downgrade-backup ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news noinfo parallel-fetch parallel-install pid-sandbox preserve-libs protect-owned python-trace qa-unresolved-soname-deps sandbox sfperms sign splitdebug strict strict-keepdir unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -pipe -march=native -mtune=native -ggdb -Wall -Wextra -D_FORTIFY_SOURCE=2 -Werror=format-security -fstack-protector-strong"
GENTOO_MIRRORS="http://ftp.free.fr/mirrors/ftp.gentoo.org/ https://mirrors.dotsrc.org/gentoo/ https://gentoo.osuosl.org/ http://distfiles.gentoo.org"
INSTALL_MASK="/sbin/reboot /sbin/poweroff /sbin/shutdown /usr/share/applications/"
LANG="en_DK.UTF-8"
LDFLAGS="-Wl,-z,relro -Wl,-z,now -Wl,-O1"
PKGDIR="/var/cache/binpkgs"
PORTAGE_COMPRESS="true"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git"
PORTAGE_TMPDIR="/var/tmp"
USE="(cuda) (pgo) acl acpi alsa amd64 apparmor bzip2 cacert caps ccache cjk clang crypt cryptsetup d3d9 dane device-mapper dri egl eglfs eme-free gentoo-dev glamor gles gles1 gles2 gpg gtk3 hardened harfbuzz iconv icu idn iproute2 ipv6 jingle jpeg jumbo-build ldns libcxx libglvnd libproxy libtirpc libtommath libzfs lm-sensors mandoc metric mikmod modplug multilib multitarget ncurses nls nptl opencl opengl openmp opus pcre pie png portaudio qt3support readline sanitize sasl sctp seatd seccomp smp sndio spell split-usr ssl ssp symlink system-* system-act system-av1 system-binutils system-boost system-bootloader system-bootstrap system-cairo system-cmark system-crontab system-ffmpeg system-harfbuzz system-heimdal system-icu system-info system-ipxe system-jpeg system-jsoncpp system-lcms system-leveldb system-libcxx system-libevent system-libs system-libvpx system-libyaml system-llvm system-lua system-lz4 system-man system-mathjax system-mesa system-mitkrb5 system-numpy system-openjfx system-openssl system-python system-qemu system-renpy system-seabios system-sqlite system-ssl system-tbb system-unicode system-webp system-wfconfig system-wide system-wlroots system-zlib theora threads tre truetype udev unicode urandom usb uvm vaapi vorbis vulkan wayland wayland-only webp xattr xcsecurity xft xtpax zfs zlib zstd" ABI_X86="64" ADA_TARGET="gnat_2018" ALSA_CARDS="hda-intel" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="aes avx avx2 f16c fma3 mmx mmxext pclmul popcnt sha sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" GRUB_PLATFORMS="pc" INPUT_DEVICES="libinput wacom" KERNEL="linux" L10N="en en-US en-GB fr fr-CA ja is jbo de de-DE ru" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LUA_SINGLE_TARGET="lua5-3" LUA_TARGETS="lua52 lua5-2 lua5-3 lua5-4" NGINX_MODULES_HTTP="access autoindex charset fastcgi gzip gzip_static limit_conn limit_req map memcached metrics mirror proxy push_stream rewrite scgi split_clients ssi upstream_hash upstream_ip_hash upstream_keepalive upstream_least_conn upstream_zone userid uwsgi vhost_traffic_status headers_more stub_status" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php7-3 php7-4" POSTGRES_TARGETS="postgres10 postgres11" PYTHON_SINGLE_TARGET="python3_9" PYTHON_TARGETS="python3_8 python3_9" QEMU_SOFTMMU_TARGETS="x86_64 i386" RUBY_TARGETS="ruby26" USERLAND="GNU" VIDEO_CARDS="radeonsi amdgpu" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq proto steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset: CPPFLAGS, CTARGET, LC_ALL, LINGUAS, MAKEOPTS, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, RUSTFLAGS
=================================================================
Package Settings
=================================================================
games-simulation/lincity-ng-2.9_beta::gentoo was built with the following:
USE="" ABI_X86="(64)"
FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs binpkg-multi-instance buildpkg ccache cgroup config-protect-if-modified distlocks downgrade-backup ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news noinfo parallel-fetch parallel-install pid-sandbox preserve-libs protect-owned python-trace qa-unresolved-soname-deps sandbox sfperms splitdebug strict strict-keepdir test unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
@sezero I agree on this whole list, next time @Conan-Kudo updates the sdl12-compat package I'm going to re-run all the builds and I think most of this list will resolve then, between the GL and X11 dependency fixes, leaving the ones that need an explicit dependency on the ALSA packages (bugs filed with fedora already) and our own issues still to be fixed.
The Fedora package has been updated to the current HEAD for both native and MinGW packages. My COPR has auto-built it for Fedora Linux 34 from Rawhide as well. You should be able to do it now. 😉
Interestingly, lincity-ng compiles fine and seems to run okay here.
We fixed things for the final SDL 1.2-based commit of lincity-ng in #54. :)
lincity-ng switched to SDL2 just shortly before the SDL1onSDL2 change was proposed in Fedora, and our lincity-ng has more patches than I would like on it. It's been on my list of things to do to rebase it to current HEAD. 😢
PR to update lincity-ng: https://src.fedoraproject.org/rpms/lincity-ng/pull-request/1
Updated list. Logs are all the same so I won't upload them again, but this confirms all the packages that couldn't find OpenGL and X11 are fixed.
At this point, we have a handful of things to fix, and the rest are Fedora packaging bugs.
SDL12_COMPAT_FAILED: ClanLib1
SDL12_COMPAT_FAILED: asterisk
SDL12_COMPAT_FAILED: berusky
SDL12_COMPAT_FAILED: fawkes
SDL12_COMPAT_FAILED: glob2
SDL12_COMPAT_FAILED: grafx2
SDL12_COMPAT_FAILED: libzia
SDL12_COMPAT_FAILED: lincity-ng
SDL12_COMPAT_FAILED: mlt
SDL12_COMPAT_FAILED: nagi
SDL12_COMPAT_FAILED: nethack-vultures
SDL12_COMPAT_FAILED: rcssserver3d
SDL12_COMPAT_FAILED: simcoupe
SDL12_COMPAT_FAILED: simspark
SDL12_COMPAT_FAILED: tvtime
SDL12_COMPAT_FAILED: uboot-tools
SDL12_COMPAT_FAILED: xgrav
SDL12_COMPAT_FAILED: xwax
lincity-ng should build correctly, as of e20b7fc8fe7a17caeb360fd85b19c598bf0c32fb.
I believe we're probably at the point where we can close this bug? sdl12-compat is live in the now-released Fedora 35, and the rest of the package issues were things like an explicit, unnecessary dependency on ALSA (etc) that weren't our bugs (and bug reports were filed against all those packages).
Indeed, let's close this.
I'm fine with that.
OK, closing.
Fedora project's proposal:
https://fedoraproject.org/wiki/Changes/SDL12onSDL2
Thread with discussion of package lists:
https://twitter.com/icculus/status/1398319367222444034
Some initial automation work:
https://github.com/libsdl-org/sdl12-compat/issues/34#issuecomment-847326194