mkpaz / atlantafx

Modern JavaFX CSS theme collection with additional controls.
https://mkpaz.github.io/atlantafx
MIT License
829 stars 66 forks source link

Sampler app not installable on Ubuntu 23.04 #55

Closed infinite-dev22 closed 1 year ago

infinite-dev22 commented 1 year ago
Selecting previously unselected package atlantafx-sampler.
(Reading database ... 259459 files and directories currently installed.)
Preparing to unpack atlantafx-sampler_1.2.0-91_amd64.deb ...
Unpacking atlantafx-sampler (1.2.0-91) ...
dpkg: dependency problems prevent configuration of atlantafx-sampler:
 atlantafx-sampler depends on libavformat58; however:
  Package libavformat58 is not installed.
 atlantafx-sampler depends on libavcodec-extra58 | libavcodec58; however:
  Package libavcodec-extra58 is not installed.
  Package libavcodec58 is not installed.

dpkg: error processing package atlantafx-sampler (--install):
 dependency problems - leaving unconfigured
Processing triggers for hicolor-icon-theme (0.17-2) ...
Processing triggers for gnome-menus (3.36.0-1.1ubuntu1) ...
Processing triggers for desktop-file-utils (0.26-1ubuntu5) ...
Processing triggers for mailcap (3.70+nmu1ubuntu1) ...
Errors were encountered while processing:
 atlantafx-sampler

Then when i try manually installing failing dependancies, this happens:

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
You might want to run 'apt --fix-broken install' to correct these.
The following packages have unmet dependencies:
 atlantafx-sampler : Depends: libavformat58
 libavcodec-extra58 : Depends: libavutil56 (= 7:4.4.2-0ubuntu0.22.04.1+esm1) but it is not going to be installed
                      Depends: libdav1d5 (>= 0.2.1) but it is not installable
                      Depends: libswresample3 (= 7:4.4.2-0ubuntu0.22.04.1+esm1) but it is not going to be installed
                      Depends: libx264-163 (>= 2:0.163.3060+git5db6aa6) but it is not installable
mkpaz commented 1 year ago

Try GitHub releases. Conveyor build isn't updated yet.

mikehearn commented 1 year ago

The Conveyor build has been updated to AtlantaFX 2.0 now.

I think the issue is a combination of two things:

  1. JavaFX has a weird approach to using libavcodec and friends. If you look, you'll see there are tons of stub libraries, one for each ABI version of this very unstable library. I don't know the story here or why it's not being statically linked, but this is clearly some sort of versioning/license mess. I think it's trying to be compatible with all possible avcodec libs.
  2. Conveyor DEBs target Focal Fossa by default which is getting a bit old now.

So Conveyor sees that there's a dependency on libavcodec because of the dependency on javafx.media which I think comes in via the music player sample. And then picks the version of that package from the Focal repository, which is too old, and so you get an uninstallable package. Possible fixes:

  1. Bump the dependency to the newest desktop distro.
  2. Remove the dependency on libavcodec entirely.
  3. Use a union dependency so that any of the many avcodec packages can satisfy the request.

(1) is easiest. (2) would have to be paired with (3), i.e. remove the auto determined dependencies and then add it back as a combination of optional dependencies or something like that. Will have a think.

mkpaz commented 1 year ago

@mikehearn thanks for the update!

mikehearn commented 1 year ago

There's a fix for this in the next Conveyor release. Will post here once the deb is updated. We went with a combination of (2) and (3), with the default javafx config updated to alter the dependencies list. Updating to a newer base distro will come some other time.

infinite-dev22 commented 1 year ago

@mikehearn Thank you for the update

mikehearn commented 1 year ago

Apologies for forgetting to post an update here. The deb has been updated a few weeks ago and should no longer have this problem.