libsdl-org / sdl12-compat

An SDL-1.2 compatibility layer that uses SDL 2.0 behind the scenes.
Other
193 stars 40 forks source link

Build all packages in Fedora with sdl12-compat instead of SDL 1.2... #78

Closed icculus closed 2 years ago

icculus commented 3 years ago

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

icculus commented 3 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
lanodan commented 3 years ago

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.

sezero commented 3 years ago

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

sezero commented 3 years ago

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 f6a60d6

Someone 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?

icculus commented 3 years ago

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.

icculus commented 3 years ago

(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.)

icculus commented 3 years ago

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...?

sezero commented 3 years ago
/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..

sezero commented 3 years ago

I think mesa-libGLU-devel needs to be installed for it.

icculus commented 3 years ago

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 #includes 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?

sezero commented 3 years ago

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 #includes 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.

icculus commented 3 years ago

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
icculus commented 3 years ago

Log files from all the failed builds:

sdl12-compat-fedora-failed-builds.tar.gz

icculus commented 3 years ago

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:

lanodan commented 3 years ago

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:

Conan-Kudo commented 3 years ago

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 #includes 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?

The old SDL-devel package declared dependencies on alsa-lib-devel, mesa-libGL-devel, mesa-libGLU-devel, libX11-devel, libXext-devel, libXrandr-devel, libXrender-devel

I wasn't sure which ones I should carry over to sdl12-compat-devel. It seems like at least the Mesa ones are needed.

Conan-Kudo commented 3 years ago

I've added all of them now: https://src.fedoraproject.org/rpms/sdl12-compat/c/bf015874c4f2db63222b0c948a02be9b5c3db591

icculus commented 3 years ago

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.

Conan-Kudo commented 3 years ago

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!

icculus commented 3 years ago

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.

icculus commented 3 years ago

Please do file bugs! I don't want these deps here if we don't need them!

On it. :)

sezero commented 3 years ago

FWIW, I agree with Ryan: The only dependencies that sdl12-compat-devel must be:

Conan-Kudo commented 3 years ago

So basically we should drop alsa-lib-devel/pkgconfig(alsa).

Conan-Kudo commented 3 years ago

whatever-X-package-devel that provides X11/Xatom.h, X11/Xlib.h and X11/Xlib.h for SDL_syswm.h.

Do you mean a third X11 header, because I only see two in SDL_syswm.h?

sezero commented 3 years ago

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.

sezero commented 3 years ago

So basically we should drop alsa-lib-devel/pkgconfig(alsa).

Yes, that's what I think.

Conan-Kudo commented 3 years ago

Done: https://src.fedoraproject.org/rpms/sdl12-compat/c/fe09323e03ab28bb45641b60919872aad4e51193

Thanks for the feedback!

icculus commented 3 years ago

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.

sezero commented 3 years ago

Log files from all the failed builds:

sdl12-compat-fedora-failed-builds.tar.gz

Quickly browsed through, here is what I think:

lanodan commented 3 years ago

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"
icculus commented 3 years ago

@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.

Conan-Kudo commented 3 years ago

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. 😉

icculus commented 3 years ago

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. :)

Conan-Kudo commented 3 years ago

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. 😢

Conan-Kudo commented 3 years ago

PR to update lincity-ng: https://src.fedoraproject.org/rpms/lincity-ng/pull-request/1

icculus commented 3 years ago

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
icculus commented 3 years ago

lincity-ng should build correctly, as of e20b7fc8fe7a17caeb360fd85b19c598bf0c32fb.

icculus commented 2 years ago

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).

sezero commented 2 years ago

Indeed, let's close this.

Conan-Kudo commented 2 years ago

I'm fine with that.

sezero commented 2 years ago

OK, closing.