Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 946882 - >=x11-libs/fltk-1.4 version bump (was: games-emulation/nestopia-1.53.0: depend on fltk-1.4.0)
Summary: >=x11-libs/fltk-1.4 version bump (was: games-emulation/nestopia-1.53.0: depen...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: No maintainer - Look at https://wiki.gentoo.org/wiki/Project:Proxy_Maintainers if you want to take care of it
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-12-24 15:28 UTC by orbea
Modified: 2024-12-26 17:50 UTC (History)
3 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description orbea 2024-12-24 15:28:38 UTC
The Nestopia upstream suggests >= fltk-1.4.0 which is required for both Wayland and HiDPI support.

https://github.com/0ldsk00l/nestopia/issues/407#issuecomment-2561198482
Comment 1 Ionen Wolkens gentoo-dev 2024-12-24 15:36:20 UTC
Does it cause any regressions vs the old version, or it's just missing new features?

aka, I think this is more of fltk version bump request bug than something nestopia needs to change
Comment 2 Ionen Wolkens gentoo-dev 2024-12-24 17:34:43 UTC
No guarantee yet if run into blockers I don't want to handle, but I may have a look at bumping it. Will probably redo the ebuild from scratch and drop the 9999 ebuilds if I do this.

Just saying to avoid potential duplicate work.
Comment 3 orbea 2024-12-24 17:50:52 UTC
I'm not sure about regressions, but it certainly does cause problems for Nestopia. The UI is nearly unusable and small on a 4k screen and there may be segfaults with wayland as reported upstream.

https://github.com/0ldsk00l/nestopia/issues/431
Comment 4 James Le Cuirot gentoo-dev 2024-12-24 19:59:41 UTC
Yeah, that's why I gave games-engines/odamex a hidpi USE flag. Upstream had started bundling 1.4, but I saw the UI scaling issues with 1.3, so I gave users the choice.
Comment 5 Ionen Wolkens gentoo-dev 2024-12-25 11:28:04 UTC
Was a bit quirky but bump is mostly done locally (& switches to cmake given fltk upstream is deprecating autotools).

Still need to check how revdeps are doing with it and give them a binding operator when have more time though (this changes soname every 1.x version but still didn't have a subslot). So it'll still be a bit.
Comment 6 Larry the Git Cow gentoo-dev 2024-12-26 17:50:15 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bf28418f30a122955e636dfba07d29cfa7447e75

commit bf28418f30a122955e636dfba07d29cfa7447e75
Author:     Ionen Wolkens <ionen@gentoo.org>
AuthorDate: 2024-12-25 00:16:13 +0000
Commit:     Ionen Wolkens <ionen@gentoo.org>
CommitDate: 2024-12-26 17:48:28 +0000

    x11-libs/fltk: add 1.4.1
    
    Brand new ebuild not really based on the old. Changes may or may
    not introduce some regressions, but will see to these as needed.
    
    Regardless of the ebuild, note some revdeps may be broken with
    fltk-1.4.x. "Often" it's just trivial like a missing include (IWYU)
    or an include needing different casing due to compatibility symlinks
    (e.g. Fl/Fl_file_chooser.H -> FL/Fl_File_Chooser.H>) being dropped.
    Upstream discourages re-enabling them and suggests fixing packages
    instead.
    
    Some revdeps may also be relying on X-specific things (e.g.
    including x.H and using fl_display), and may need to depend on
    fltk[X(+)] (have not really looked at if things work on wayland).
    x.H is also deprecated and due for removal, should use platform.H.
    
    I've fixed a few while updating revdeps for := and USE changes but
    haven't tried nor handled everything myself.
    
    That aside, overview of (some) notable ebuild differences vs old:
    
    * Use cmake
    Upstream plans to remove autotools support in 1.5.0, so.
    
    * Actually run some tests
    The old ebuild's src_test was just building tests and never running
    anything, so at least run (minor) "unittests --core" like upstream's
    CI does.
    
    * Add subslot
    Gets a new soname + ABI incompatible changes every 1.x versions, but
    <1.3 is so old that never got a subslot (see README.abi-version.txt).
    
    * Drop multilib
    Do not think this is worth keeping. At most old 32bit prebuilts can
    need 32bit fltk but they cannot use 1.4 due to soname/ABI changes.
    (*if* really needed could consider a fltk-compat:1.3 for these).
    Can revisit if a reason to.
    
    * Drop USE=games
    Not convinced that there is real interest in these example apps being
    installed, and they all have generic naming by default (e.g. previous
    was installing /usr/bin/sudoku) making it easy to conflict. They also
    need to be installed manually (no cmake option for this that I can see
    at the moment). Could revisit if there is actual users and it is not
    just for completeness.
    
    * Drop USE=xft
    Can use either pango or xft w/ USE=X with pango being preferred, and
    it is kind of bogus to disable both (breaks things in unexpected ways).
    So now USE=cairo will use pango (forced by build system if cairo is
    enabled, -DFLTK_USE_PANGO accomplishes little), and USE=-cairo uses
    xft only. Pango/cairo is not optional for wayland, and that's why
    USE=cairo is default enabled now (also because it supposedly renders
    better on X as well).
    
    * Drop USE=threads, always enabled
    Nothing special there, but requires adjusting some revdeps w/ (+)
    
    * Drop USE=xinerama and always depend on it if USE=X
    Could understand some users not wanting it, however, for some reason
    -DFLTK_USE_XINERAMA is ignored when USE="X wayland" (works if -wayland)
    and README.Wayland.txt says that xinerama is always required if X11 is
    enabled as well.
    
    *could* make it optional with -wayland but that felt messy and a req
    use of "wayland? ( X? ( xinerama ) )" seems confusing.
    
    Ultimately it was enabled by default before and it's a very small
    dep. May revisit only after the build system gets polished and if
    there's a demand.
    
    * Drop env.d file and -rpath hacks
    This doesn't install in /usr/lib*/fltk anymore and so no need for
    LDPATH, and if the FLTK_DOCDIR env var is unset it should fallback
    to the builtin path which points to /usr/share/doc/${PF}/html
    (albeit the in-app help browser renders these rather poorly right
    now, better use a real browser).
    
    * Misc notes
    Was tempted to drop USE=static-libs, but I believe there is a demand
    for this on this package, may revisit.
    
    Considered making fluid optional being a GUI app for developers, but
    it's also used at build time by some packages and it's not worth being
    conditional on Gentoo then.
    
    It may be possible to make dbus optional with USE=wayland, but build
    system has no switch for it (automagic-only), so hard-depend for now.
    
    For those trying to avoid X libs, hard libglvnd[X] is not a typo,
    USE="-X wayland opengl" still links with libGLX->libX11 at the
    moment.
    
    Like before, fltk-config --ldflags still gives a wall of unnecessary
    libraries (that libftlk.so is linked with, more than before w/ wayland)
    due to expecting static -- but otherwise appears fine despite generated
    by cmake.
    
    bug #494390: pdf build is explicitly disabled in this version, so it
    shouldn't be trying to use latex (build system also changed, if still
    into something please open a new bug).
    
    Closes: https://bugs.gentoo.org/494390
    Closes: https://bugs.gentoo.org/946882
    Signed-off-by: Ionen Wolkens <ionen@gentoo.org>

 x11-libs/fltk/Manifest                           |   1 +
 x11-libs/fltk/files/fltk-1.4.1-fltk-config.patch |  25 +++++
 x11-libs/fltk/files/fltk-1.4.1-tests-odr.patch   |   9 ++
 x11-libs/fltk/fltk-1.4.1.ebuild                  | 113 +++++++++++++++++++++++
 4 files changed, 148 insertions(+)

Additionally, it has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fa40076248129f848323ba6f049eee9f6f278ae5

commit fa40076248129f848323ba6f049eee9f6f278ae5
Author:     Ionen Wolkens <ionen@gentoo.org>
AuthorDate: 2024-12-26 06:40:22 +0000
Commit:     Ionen Wolkens <ionen@gentoo.org>
CommitDate: 2024-12-26 17:48:29 +0000

    games-engines/odamex: add binding := to fltk, soname changed
    
    wrt bug #946882 comment #4, can likely get rid of USE=hidpi
    but haven't experimented with that so only adding the binding
    operator like other packages myself.
    
    Bug: https://bugs.gentoo.org/946882
    Signed-off-by: Ionen Wolkens <ionen@gentoo.org>

 games-engines/odamex/{odamex-10.6.0.ebuild => odamex-10.6.0-r2.ebuild}  | 2 +-
 .../odamex/{odamex-10.6.0-r1.ebuild => odamex-10.6.0-r3.ebuild}         | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=aa31e4cc3763bdaaa0123ac39ce54187324d0b73

commit aa31e4cc3763bdaaa0123ac39ce54187324d0b73
Author:     Ionen Wolkens <ionen@gentoo.org>
AuthorDate: 2024-12-26 06:37:22 +0000
Commit:     Ionen Wolkens <ionen@gentoo.org>
CommitDate: 2024-12-26 17:48:29 +0000

    games-emulation/nestopia: add binding := to fltk, soname changed
    
    Also add the lower bound to latest version while at it (after all)
    given the upstream recommendation.
    
    Bug: https://bugs.gentoo.org/946882
    Signed-off-by: Ionen Wolkens <ionen@gentoo.org>

 .../nestopia/{nestopia-1.52.1.ebuild => nestopia-1.52.1-r1.ebuild}      | 2 +-
 .../nestopia/{nestopia-1.53.0.ebuild => nestopia-1.53.0-r1.ebuild}      | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)