Closed fluffeon closed 2 years ago
wld-git is no longer outdated, let's try this again.
swc needs xcb for wayland support as per https://github.com/michaelforney/swc/blob/32905f16caa7b76e705e7afdb7a6cc5bc8b2fd9a/Makefile#L37-L43
I left a comment at the AUR page, in the meantime we can add it via interfere 🙂
@dr460nf1r3 you got an answer, but not sure if that patch is actually a fix. Since that link looks temporary, here's a copy paste of the content of the link in the case it disappears.
diff --git a/libswc/shell_surface.c b/libswc/shell_surface.c
index 6001362..434ff0d 100644
--- a/libswc/shell_surface.c
+++ b/libswc/shell_surface.c
@@ -55,7 +55,7 @@ configure(struct window *window, uint32_t width, uint32_t height)
}
static void
-close(struct window *window)
+w_close(struct window *window)
{
struct shell_surface *shell_surface = wl_container_of(window, shell_surface, window);
struct wl_client *client;
@@ -68,7 +68,7 @@ close(struct window *window)
static const struct window_impl window_impl = {
.configure = configure,
- .close = close,
+ .close = w_close,
};
static void
diff --git a/libswc/xdg_shell.c b/libswc/xdg_shell.c
index 3c3a960..f136d55 100644
--- a/libswc/xdg_shell.c
+++ b/libswc/xdg_shell.c
@@ -301,7 +301,7 @@ unfocus(struct window *window)
}
static void
-close(struct window *window)
+w_close(struct window *window)
{
struct xdg_toplevel *toplevel = wl_container_of(window, toplevel, window);
@@ -338,7 +338,7 @@ static const struct window_impl toplevel_window_impl = {
.configure = configure,
.focus = focus,
.unfocus = unfocus,
- .close = close,
+ .close = w_close,
.set_mode = set_mode,
};
diff --git a/libswc/xwm.c b/libswc/xwm.c
index 2ad7bbd..e44136d 100644
--- a/libswc/xwm.c
+++ b/libswc/xwm.c
@@ -196,7 +196,7 @@ unfocus(struct window *window)
}
static void
-close(struct window *window)
+w_close(struct window *window)
{
struct xwl_window *xwl_window = wl_container_of(window, xwl_window, window);
@@ -225,7 +225,7 @@ static const struct window_impl xwl_window_handler = {
.configure = configure,
.focus = focus,
.unfocus = unfocus,
- .close = close,
+ .close = w_close,
};
static void
Possibly related per Piezo's AUR reply... https://github.com/michaelforney/swc/issues/72
Seems like this is the only way to build the package as of now, since we can't simply downgrade glibc
👀
Here a recent example on how to patch the source successfully :)
The close()
conflict is now fixed upstream: https://github.com/michaelforney/swc/commit/a7b615567f83d9e48d585251015048c441ca0239
We've gotten further before failing!
Package 'xcb', required by 'swc', not found
Package 'xcb-composite', required by 'swc', not found
Package 'xcb-ewmh', required by 'swc', not found
Package 'xcb-icccm', required by 'swc', not found
and
Package 'xproto', required by 'xau', not found
Package 'xproto', required by 'xdmcp', not found
I don't understand where these dependencies come from. swc-git
's dependencies should be:
makedepends = git
makedepends = libudev.so
makedepends = libxcb
makedepends = xcb-util-wm
depends = wayland
depends = wayland-protocols
depends = libdrm
depends = libinput
depends = pixman
depends = libxkbcommon
depends = wld
optdepends = libudev.so
optdepends = libxcb
optdepends = xcb-util-wm
provides = swc
conflicts = swc
Which stage of the build or install is producig this error?
The build must happen in order that dependencies are required:
wld-git
is required by swc-git
swc-git
depends on xcb
, xproto
velox-git
depends on both wld-git
and swc-git
existing before it will build.Therefore wld-git
must build first so that swc-git
can build second, so that velox-git
can build.
I still don't get the issue.
wld-git
depends onswc-git
&velox-git
wld-git
doesn't depend on velox-git
?
Stripped down output of pactree velox-git
:
velox-git
└─swc-git
├─wayland
├─wayland-protocols
├─libdrm
├─libinput
├─pixman
├─libxkbcommon
│ ├─xkeyboard-config
└─wld-git provides wld
├─wayland
├─libdrm
├─fontconfig
└─pixman
Sorry about that, I miscommunicated. I've edited the comment to make it more clear. You see the dependency tree in your comment, so it should be somewhat clear that the things deeper in the tree must build first, so the parent can build, and so on.
If a package needs to be built from the AUR then it must be added as a dependent explicitly to build. There are more graceful ways to explain the reasoning behind that, but I'm not the one to do it. here are some other examples of that in action: https://github.com/chaotic-aur/packages/search?q=dep.
Sorry about that, I miscommunicated. I've edited the comment to make it more clear. You see the dependency tree in your comment, so it should be somewhat clear that the things deeper in the tree must build first, so the parent can build, and so on.
yes and this is expected. I don't see a way around that.
If a package needs to be built from the AUR then it must be added as a dependent explicitly to build. There are more graceful ways to explain the reasoning behind that, but I'm not the one to do it. here are some other examples of that in action: https://github.com/chaotic-aur/packages/search?q=dep.
swc-git
does denpend on wld
which is provided by wld-git
.
Do you mean that swc-git
should depend on wld-git
instead of the more generic wld
?
AUR helpers usually handle this and find a list of packages that provide the dependencies.
Anyway, I've updated the PKGBUILD.
Do you mean that swc-git should depend on wld-git instead of the more generic wld?
Yes because wld
no longer exists.
AUR helpers usually handle this and find a list of packages that provide the dependencies.
https://github.com/chaotic-aur/toolbox https://github.com/cassava/repoctl/
Anyway, I've updated the PKGBUILD.
It still fails to find some things: https://builds.garudalinux.org/repos/chaotic-aur/logs/velox-git.log
Package 'xcb', required by 'swc', not found
Package 'xcb-composite', required by 'swc', not found
Package 'xcb-ewmh', required by 'swc', not found
Package 'xcb-icccm', required by 'swc', not found
Do you mean that swc-git should depend on wld-git instead of the more generic wld?
Yes because
wld
no longer exists.
It exists as a package name provided by wld-git
. aurweb is able to resolve this and was showing wld (wld-git)
in the list of dependencies.
I understand that automated build tools don't like since they try to do reproducible builds and resolving dependencies through provides
names can introduce choice.
It still fails to find some things: https://builds.garudalinux.org/repos/chaotic-aur/logs/velox-git.log
I wrongly interpreted that the README.md of swc says that xcb is a optional dependency at runtime. In reality, the build is linking to the .so with the default ENABLE_XWAYLAND=1
.
However, this should be fixed on the last commit (68b9d27f). The logs shows that xcb is still a optional dependency of the swc-git
. I assume that the package is not rebuilt and pulled from cache.
Yes, it is pulled from the cache. If it's in the routine it will rebuild on schedule when it changes. If it's manually built and not in routine, it will continue to use cached versions unless it's specifically told to rebuild.
Eduard:
The problem is with libswc.so, that thing is not provided by any package currently in the repo It's looking for libswc.so instead of libswc.so.0
It finally builds!
If there are any issues please reopen this one :smiley:
Link to the package(s) in the AUR
https://aur.archlinux.org/packages/velox-git
Utility this package has for you
A simple xcb window manager inspired by awesome, xmonad, and dwm.
Do you consider the package(s) to be useful for every Chaotic-AUR user?
No, but for a few.
Do you consider the package to be useful for feature testing/preview?
Have you tested if the package builds in a clean chroot?
Does the package's license allow redistributing it?
YES!
Have you searched the issues to ensure this request is unique?
Have you read the README to ensure this package is not banned?
More information
No response