chaotic-aur / packages

The packages Mason, what do they mean? (Package requests and bug reports here) 📑
https://aur.chaotic.cx
324 stars 20 forks source link

[Request] velox-git #1396

Closed fluffeon closed 2 years ago

fluffeon commented 2 years ago

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

Technetium1 commented 2 years ago

I've flagged wld-git because it needs to have a proper URL in order to download. In case it's fixed and someone beats me to building:

# Issue 1396
wld-git # (dep swc-git velox-git)
swc-git # (dep velox-git)
velox-git
Technetium1 commented 2 years ago

wld-git is no longer outdated, let's try this again.

Technetium1 commented 2 years ago

swc needs xcb for wayland support as per https://github.com/michaelforney/swc/blob/32905f16caa7b76e705e7afdb7a6cc5bc8b2fd9a/Makefile#L37-L43

dr460nf1r3 commented 2 years ago

I left a comment at the AUR page, in the meantime we can add it via interfere 🙂

Technetium1 commented 2 years ago

@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
Technetium1 commented 2 years ago

Possibly related per Piezo's AUR reply... https://github.com/michaelforney/swc/issues/72

dr460nf1r3 commented 2 years ago

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 :)

Piezoid commented 2 years ago

The close() conflict is now fixed upstream: https://github.com/michaelforney/swc/commit/a7b615567f83d9e48d585251015048c441ca0239

Technetium1 commented 2 years ago

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
Piezoid commented 2 years ago

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?

Technetium1 commented 2 years ago

The build must happen in order that dependencies are required:

  1. wld-git is required by swc-git
  2. swc-git depends on xcb, xproto
  3. 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.

Piezoid commented 2 years ago

I still don't get the issue.

  1. wld-git depends on swc-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
Technetium1 commented 2 years ago

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.

Piezoid commented 2 years ago

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.

Technetium1 commented 2 years ago

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
Piezoid commented 2 years ago

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.

Technetium1 commented 2 years ago

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.

Technetium1 commented 2 years ago

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

Technetium1 commented 2 years ago

It finally builds!

Technetium1 commented 2 years ago

If there are any issues please reopen this one :smiley: