Bug 240063 - games/linux-dwarffortress: Needs linux-c6
Summary: games/linux-dwarffortress: Needs linux-c6
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Many People
Assignee: Adriaan de Groot
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-08-23 21:11 UTC by Adriaan de Groot
Modified: 2019-12-31 15:23 UTC (History)
2 users (show)

See Also:
koobs: merge-quarterly?


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Adriaan de Groot freebsd_committer freebsd_triage 2019-08-23 21:11:13 UTC
[adridg@beastie ~/.../games/linux-dwarffortress]$ pkg info -d linux-dwarffortress
linux-dwarffortress-0.44.12:
        linux-c7-xorg-libs-7.7_6
        linux-c7-gtk2-2.24.31
        linux-c7-sdl_ttf-2.0.11_2
        linux-c7-sdl_image-1.2.12_2
        linux-c7-dri-18.0.5
        linux-c7-openal-soft-1.16.0_2
        linux-c7-libsndfile-1.0.25_3
[adridg@beastie ~/.../games/linux-dwarffortress]$ dwarffortress 
./libs/Dwarf_Fortress: error while loading shared libraries: libSDL_image-1.2.so.0: cannot open shared object file: No such file or directory

The linux-c7-sdl_image package does not ship a 32-bit sdl_image, like c6 did. I think updating USES=linux:c6 is sufficient.
Comment 1 commit-hook freebsd_committer freebsd_triage 2019-08-23 21:39:00 UTC
A commit references this bug:

Author: adridg
Date: Fri Aug 23 21:38:40 UTC 2019
New revision: 509661
URL: https://svnweb.freebsd.org/changeset/ports/509661

Log:
  Urist Beastiewrangler loves Linux CentOS 6 for its 32-bit SDL libraries.

  Or, less dwarfishly, DF is tied to C6 because libSDL_image ships 32-bit
  libraries there, while C7 only has a 64-bit version. Bump PORTREVISION
  because it may have been built against C7 and then it doesn't work.

  PR:		240063

Changes:
  head/games/linux-dwarffortress/Makefile
Comment 2 Adriaan de Groot freebsd_committer freebsd_triage 2019-08-23 21:40:11 UTC
I should check who the MAINTAINER is before filing PRs.
Comment 3 Kubilay Kocak freebsd_committer freebsd_triage 2019-08-24 03:49:20 UTC
See Also: 240054

Would adding/fixing c7 ports/packages to include 32-bit libs solve this issue more broadly, rather than having certain packages arbitrarily/inconsistently depend on c6 ?

^Triage: 

 - Assign to committer that resolved
 - Re-open for MFH (if quarterly package is also affected)
Comment 4 Tijl Coosemans freebsd_committer freebsd_triage 2019-08-24 09:31:44 UTC
CentOS 7 only has unofficial support for i386 so some packages are amd64 only.  My plan is to remove c6 ports at the end of this year, so instead of letting ports depend on c6 it is better to add 64 bit support.  For linux-dwarffortress you can replace DISTNAME=... with:

DISTNAME_amd64=	df_${DISTVERSION:S|0.||:S|.|_|}_linux
DISTNAME_i386=	df_${DISTVERSION:S|0.||:S|.|_|}_linux32

Then run "make makesum" and check if the do-install target and/or pkg-plist need changes.  You can test different architectures using something like "make ARCH=i386 RUN_DEPENDS= check-plist".
Comment 5 commit-hook freebsd_committer freebsd_triage 2019-08-31 12:57:31 UTC
A commit references this bug:

Author: adridg
Date: Sat Aug 31 12:56:43 UTC 2019
New revision: 510383
URL: https://svnweb.freebsd.org/changeset/ports/510383

Log:
  Massage build of linux-dwarffortress

   - change back from c6 to the default (c7 now)
   - don't install the bundled libc++, because it requires glibc 2.18
     which c7 doesn't have
   - avoid a runtime error message about sound-not-loading by switching
     off sound in the shipped config files. These are copied to the
     user's ~/.dwarffortress directory and can be edited there if needed.

  PR:		240063

Changes:
  head/games/linux-dwarffortress/Makefile
  head/games/linux-dwarffortress/distinfo
  head/games/linux-dwarffortress/pkg-plist
Comment 6 Adriaan de Groot freebsd_committer freebsd_triage 2019-08-31 13:01:51 UTC
A background issue is that the c7 base is older than what DF expects; linux_base-c7 installs this file:

    /compat/linux/usr/lib/libc-2.17.so

so I'm going to assume that, yes, it's GNU libc 2.17.

    [adridg@beastie .../games/linux-dwarffortress]$ dwarffortress 
    ./libs/Dwarf_Fortress: /lib64/libc.so.6: version `GLIBC_2.18' not found (required by /usr/local/libexec/dwarffortress/libstdc++.so.6)

So that's why i no longer install the stdc++ there.
Comment 7 Rene Ladan freebsd_committer freebsd_triage 2019-12-31 15:04:20 UTC
FYI, linux-c6 ports are being removed today.
Comment 8 Tijl Coosemans freebsd_committer freebsd_triage 2019-12-31 15:23:20 UTC
The problem has been fixed in ports r510383.