swayfx icon indicating copy to clipboard operation
swayfx copied to clipboard

Unable to upgrade swayfx / scenefx conflicts

Open martinstark opened this issue 9 months ago • 33 comments

Please fill out the following:

  • Swayfx Version:

swayfx version 0.4-b9dcf5f (Dec 2 2024, branch 'master') (based on sway 1.9.0)

  • Description:
    • Attempt to upgrade swayfx to the latest version in Arch through the AUR
paru

 Aur (5) scenefx-0.2.1-2  scenefx-0.1-0.1-2  swayfx-0.4-4

 :: Proceed to review? [Y/n]:

looking for conflicting packages...
error: failed to prepare transaction (could not satisfy dependencies)
:: installing scenefx (0.2.1-2) breaks dependency 'libscenefx.so=1-64' required by swayfx
loading packages...
resolving dependencies...
looking for conflicting packages...
error: failed to prepare transaction (could not satisfy dependencies)
:: installing scenefx (0.2.1-2) breaks dependency 'libscenefx.so=1-64' required by swayfx
loading packages...
resolving dependencies...
looking for conflicting packages...
error: failed to prepare transaction (could not satisfy dependencies)
:: installing scenefx (0.2.1-2) breaks dependency 'libscenefx.so=1-64' required by swayfx
loading packages...
resolving dependencies...
looking for conflicting packages...
error: failed to prepare transaction (could not satisfy dependencies)
:: installing scenefx (0.2.1-2) breaks dependency 'libscenefx.so=1-64' required by swayfx
loading packages...
resolving dependencies...
looking for conflicting packages...
error: failed to prepare transaction (could not satisfy dependencies)
:: installing scenefx (0.2.1-2) breaks dependency 'libscenefx.so=1-64' required by swayfx
error: packages failed to build: scenefx-0.1-0.1-2  swayfx-0.4-4
paru swayfx

error: failed to prepare transaction (could not satisfy dependencies) :: installing scenefx (0.2.1-2) breaks dependency 'libscenefx.so=1-64' required by swayfx
paru scenefx

error: failed to prepare transaction (could not satisfy dependencies)
:: installing scenefx (0.2.1-2) breaks dependency 'libscenefx.so=1-64' required by swayfx

martinstark avatar Feb 19 '25 11:02 martinstark

This is caused by some fun shenanigans in the way that scenefx was updated. You can force uninstall scenefx (pacman -Rdd) and then either just install scenefx-1.0 or install the newest version of scenefx and 1.0 alongside it, after that, you can update swayfx again. Note that at the moment, scenefx-1.0 is the required version for swayfx.

LAURAilway avatar Feb 19 '25 13:02 LAURAilway

did swayfx recently change from scenefx to scenefx-1.0? I haven't changed anything manually around this since I installed swayfx, and since swayfx-0.4-4 was released the other day paru wants to install both scenefx-0.2.1-2 and scenefx-0.1-0.1-2

martinstark avatar Feb 19 '25 13:02 martinstark

Mb, 0.1, not 1.0. It did not, the current version of scenefx is scenefx-0.2.1. However, swayfx explicitly depends on scenefx-0.1, and while updating scenefx does in fact pull in the scenefx-0.1 package as well, paru seems to not factor that in regarding the dependency checks, so it thinks that after updating scenefx past 0.1.x, swayfx will be left without that dependency. Sry for the confusion with the 1.0 typo.

LAURAilway avatar Feb 19 '25 13:02 LAURAilway

I guess this is why it's confused?

Image

I have the "correct" version of scenefx, but using the original scenefx package rather than the scenefx-0.1 version.

I'm a bit confused why the AUR package was updated the other day while there is no new release of scenefx itself. I guess that's where the dependency chain was updated, rather than in this repo.

I guess the best way forward (as you say) is to force uninstall and then reinstall again, or I just run into these conflicts...

error: failed to commit transaction (conflicting files)
scenefx-0.1: /usr/include/scenefx/render/fx_renderer/fx_effect_framebuffers.h exists in filesystem (owned by scenefx)
scenefx-0.1: /usr/include/scenefx/render/fx_renderer/fx_renderer.h exists in filesystem (owned by scenefx)
scenefx-0.1: /usr/include/scenefx/render/pass.h exists in filesystem (owned by scenefx)
scenefx-0.1: /usr/include/scenefx/types/fx/blur_data.h exists in filesystem (owned by scenefx)
scenefx-0.1: /usr/include/scenefx/types/fx/shadow_data.h exists in filesystem (owned by scenefx)
scenefx-0.1: /usr/include/scenefx/types/wlr_scene.h exists in filesystem (owned by scenefx)
scenefx-0.1: /usr/lib/libscenefx.so exists in filesystem (owned by scenefx)
scenefx-0.1: /usr/lib/libscenefx.so.1 exists in filesystem (owned by scenefx)
scenefx-0.1: /usr/lib/pkgconfig/scenefx.pc exists in filesystem (owned by scenefx)

martinstark avatar Feb 19 '25 15:02 martinstark

I presume that there were incompatibilities between scenefx-2.0 and swayfx-0.4(the current version), so they made scenefx-0.2.1 able to be installed alongside the 0.1 version (see here) and pointed the deps of swayfx specifically to that package until the rebase (0.5, I think) is fully released.

LAURAilway avatar Feb 19 '25 15:02 LAURAilway

I presume that there were incompatibilities between scenefx-2.0 and swayfx-0.4(the current version), so they made scenefx-0.2.1 able to be installed alongside the 0.1 version (see here) and pointed the deps of swayfx specifically to that package until the rebase (0.5, I think) is fully released.

Yup, this was the case. I'll try to sort out this packaging issue

WillPower3309 avatar Feb 19 '25 15:02 WillPower3309

Hello, would anyone be able to confirm if the new AUR package update fixes this issue?

WillPower3309 avatar Feb 21 '25 08:02 WillPower3309

without having modified anything since I created this ticket, still cannot install due to the conflict with the original scenefx package

Image

martinstark avatar Feb 21 '25 08:02 martinstark

I believe the scenefx-0.1 package needs to be marked as conflicts with scenefx-0.2, so that I get the option to switch it out during install?

edit, would it not make sense to use the 0.1 release of the original scenefx package instead of publishing an entirely separate package for that version?

martinstark avatar Feb 21 '25 09:02 martinstark

It doesn't work for me yet. I'm getting this error during the install step of yay:

Image

Last message says "Install for the following packages failed. A manual intervention is required".

What I understand is swayfx pulls scenefx-0.1 as a dependency, but maybe looks like the error on my screenshot says scenefx (the newer, 0.2 version) dependency is not found. Maybe I'm wrong though.

ghost avatar Feb 21 '25 10:02 ghost

I am using garuda-sway and can confirm that your fix works there. Thanks!

FWIW, garuda-update is a convenience wrapper that uses pacman (not yay) but I'm a bit of an amateur at all this so I don't know if that is related to the current state not-quite-there for others or not.

DeliciousHair avatar Feb 21 '25 10:02 DeliciousHair

that uses pacman (not yay)

yay also uses pacman, and so does paru. yay and paru are convenience wrappers for pacman.

martinstark avatar Feb 21 '25 12:02 martinstark

It doesn't work for me yet. I'm getting this error during the install step of yay:

Image

Last message says "Install for the following packages failed. A manual intervention is required".

What I understand is swayfx pulls scenefx-0.1 as a dependency, but maybe looks like the error on my screenshot says scenefx (the newer, 0.2 version) dependency is not found. Maybe I'm wrong though.

Image

I also have the same issue, I tried to install scenefx-0.1 manually, but still it's not working.

coderj001 avatar Feb 21 '25 14:02 coderj001

@coderj001 @martinstark sorry for the issues here. I believe it should now be fixed

WillPower3309 avatar Feb 21 '25 14:02 WillPower3309

I am using garuda-sway and can confirm that your fix works there. Thanks!

FWIW, garuda-update is a convenience wrapper that uses pacman (not yay) but I'm a bit of an amateur at all this so I don't know if that is related to the current state not-quite-there for others or not.

Fyi, unless you manually installed the package from the AUR, Garuda uses the chaotic AUR by default. That means you are probably using a precompiled binary for which a workaround has already been pushed by the chaotic AUR maintainers.

LAURAilway avatar Feb 21 '25 18:02 LAURAilway

Thanks, I should have looked closer. However, I was simply trying to respond to the request to verify the fix worked is all, which I guess I got wrong.

DeliciousHair avatar Feb 21 '25 22:02 DeliciousHair

Still an issue

Image

martinstark avatar Feb 24 '25 06:02 martinstark

Still an issue

Image

Fixed now with swayfx 0.5 :)

ErikReider avatar Feb 25 '25 20:02 ErikReider

Still broken

Image

martinstark avatar Feb 26 '25 07:02 martinstark

And what version of scenefx and swayfx do you have installed? (Through pacman)

ErikReider avatar Feb 26 '25 08:02 ErikReider

@ErikReider you can see at the top of the screenshot for swayfx: 0.4-3. The issues started when 0.4-4 was released with the new dependency chain.

For scenefx, I have the dependency of swayfx 0.4-3 installed:

Image

I know how to "fix" it on my end by removing and reinstalling, but I kept it installed in case you want to keep trying to fix it on your end 😃

martinstark avatar Feb 26 '25 09:02 martinstark

@ErikReider you can see at the top of the screenshot for swayfx: 0.4-3. The issues started when 0.4-4 was released with the new dependency chain.

For scenefx, I have the dependency of swayfx 0.4-3 installed:

Image

I know how to "fix" it on my end by removing and reinstalling, but I kept it installed in case you want to keep trying to fix it on your end 😃

Fingers crossed that the new PKGBUILD fixes things 🤞

ErikReider avatar Feb 26 '25 14:02 ErikReider

Nvm, pacman still doesn't detect that scenefx-0.1 needs to be installed... I'm clueless

Image

ErikReider avatar Feb 26 '25 15:02 ErikReider

Can the ticket be reopened? I'm fairly sure this isn't unique to my setup

martinstark avatar Feb 26 '25 15:02 martinstark

Nvm, pacman still doesn't detect that scenefx-0.1 needs to be installed... I'm clueless

Image

In this case it doesn't, since you're updating to 0.5

WillPower3309 avatar Feb 27 '25 00:02 WillPower3309

So if that installation works (which it should)! It should be good

WillPower3309 avatar Feb 27 '25 00:02 WillPower3309

So if that installation works (which it should)! It should be good

You'd think so, but apparently installing multiple AUR packages aren't grouped into a transaction, but instead install separately. So scenefx gets upgraded which breaks the old swayfx dependency, so the new swayfx can't be installed 😵‍💫

ErikReider avatar Feb 27 '25 10:02 ErikReider

Want me to keep my broken install, or should I go ahead and just reinstall if this is not a straight forward fix?

martinstark avatar Mar 03 '25 16:03 martinstark

Want me to keep my broken install, or should I go ahead and just reinstall if this is not a straight forward fix?

You can go ahead and reinstall. I have the specific versions locally to test. Thanks for your testing! :D

ErikReider avatar Mar 04 '25 08:03 ErikReider

Running into this now as well.

While of course removing both scenefx-git and swayfx-git before updating works, this is of not very convenient for people who regularly update their system.

To solve this we can also move to the Hyprland approach: Instead of relying on specific .so/library versions, rely on specific git packages. This way you don't run into library dependency issues, though at the risk of having the wrong libraries at runtime. But this should only be an issue when scenefx updates it's library version while not triggering a rebuild for swayfx.

For the specific recent case of the wlroots 0.19 and sway 1.11 rebase this approach works great as both scenefx and swayfx need to be updated.

The only change needed to get this to work is to update the swayfx-git PKGBUILD:

diff --git a/PKGBUILD b/PKGBUILD
index 0fcaf06..b2ca7bd 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -12,11 +12,11 @@ makedepends=(
 	"wayland-protocols"
 )
 depends=(
+	"scenefx-git"
 	"cairo"
 	"gdk-pixbuf2"
 	"libevdev.so"
 	"libinput"
-	"libscenefx-0.4.so"
 	"libjson-c.so"
 	"libpixman-1.so"
 	"libudev.so"

What's your opinion on this approach?

MagneFire avatar Jun 24 '25 20:06 MagneFire