swayfx
swayfx copied to clipboard
Unable to upgrade swayfx / scenefx conflicts
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
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.
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
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.
I guess this is why it's confused?
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)
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.
I presume that there were incompatibilities between
scenefx-2.0andswayfx-0.4(the current version), so they madescenefx-0.2.1able 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
Hello, would anyone be able to confirm if the new AUR package update fixes this issue?
without having modified anything since I created this ticket, still cannot install due to the conflict with the original scenefx package
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?
It doesn't work for me yet. I'm getting this error during the install step of yay:
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.
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.
that uses pacman (not yay)
yay also uses pacman, and so does paru. yay and paru are convenience wrappers for pacman.
It doesn't work for me yet. I'm getting this error during the install step of yay:
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.
I also have the same issue, I tried to install scenefx-0.1 manually, but still it's not working.
@coderj001 @martinstark sorry for the issues here. I believe it should now be fixed
I am using garuda-sway and can confirm that your fix works there. Thanks!
FWIW,
garuda-updateis a convenience wrapper that usespacman(notyay) 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.
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.
Still an issue
Still an issue
Fixed now with swayfx 0.5 :)
Still broken
And what version of scenefx and swayfx do you have installed? (Through pacman)
@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:
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 😃
@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:
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 🤞
Nvm, pacman still doesn't detect that scenefx-0.1 needs to be installed... I'm clueless
Can the ticket be reopened? I'm fairly sure this isn't unique to my setup
Nvm, pacman still doesn't detect that
scenefx-0.1needs to be installed... I'm clueless
In this case it doesn't, since you're updating to 0.5
So if that installation works (which it should)! It should be good
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 😵💫
Want me to keep my broken install, or should I go ahead and just reinstall if this is not a straight forward fix?
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
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?