Package Details: waffle 1.7.0-1

Git Clone URL: https://aur.archlinux.org/waffle.git (read-only, click to copy)
Package Base: waffle
Description: a library for choosing window system and OpenGL API at runtime
Upstream URL: http://www.waffle-gl.org
Licenses: BSD
Submitter: chadversary
Maintainer: 1ace (chadversary, craftyguy, linkmauve, Lone_Wolf, xexaxo)
Last Packager: xexaxo
Votes: 9
Popularity: 0.000028
First Submitted: 2012-10-20 04:31
Last Updated: 2021-03-07 23:04

Latest Comments

1 2 Next › Last »

Omar007 commented on 2021-06-16 10:22

Waffle does not leak anything libudev to its users

Clearly it does, otherwise the build process wouldn't fail without it. Maybe not directly but those includes propagate and have their own requirements. And if they do not and it's really not actually used/relevant anywhere in then maybe it's just an issue with waffle's pkgconfig?
The case is that waffle is explicitly saying it needs libudev when you try to build anything.

$ cat /usr/lib/pkgconfig/waffle-1.pc
prefix=/usr
libdir=${prefix}/lib
includedir=${prefix}/include

Name: waffle-1
Description: A library for selecting an OpenGL API and windows system at runtime.
Version: 1.7.0
Requires.private: gl, egl, gbm, libudev, wayland-client >=  1.10, wayland-egl >=  9.1, x11-xcb
Libs: -L${libdir} -lwaffle-1
Libs.private: -ldl -pthread
Cflags: -I${includedir}/waffle-1

See the 'Requires.private' segment.

I suspect the issue is in the package you're building on top waffle.

The build process fails long before ever reaching anything relevant to any package or software one would try to build because of the above. Even if the package was complete broken or doesn't even compile you wouldn't even be able to find out because you're failing out long before reaching that point.

EDIT: Relevant CMake usage/reference line for waffle; pkg_check_modules(Waffle REQUIRED waffle-1).
If you want something to try it with yourself, you could grab the piglit software/package and try with that in a clean chroot or container with waffle and missing libudev.

EDIT2: Figured I'd also add the build process output using the OG PKGBUILD instead of the patched one but I don't have it set up anymore apparently so I'd have to do that again first before I can.

EDIT3: Here we go.

Package libudev was not found in the pkg-config search path.
Perhaps you should add the directory containing `libudev.pc'
to the PKG_CONFIG_PATH environment variable
Package 'libudev', required by 'waffle-1', not found

xexaxo commented on 2021-05-15 14:35

@Omar007 what are you building against waffle?

Waffle does not leak anything libudev to its users - it is an internal detail. You can see that via grep -rw --no-filename include /usr/include/waffle-1/ | sort -u - GL(X), EGL and stdfoo headers. Although perhaps I should finish my upstream waffle MR and stop using libudev altogether :-P

I suspect the issue is in the package you're building on top waffle. In that it uses libudev but is lacking the makedepends. Happy to take a look and help.

Omar007 commented on 2021-05-04 16:23

I've been trying to find out why it wasn't possible to dev against/using the latest package rolling out of this PKGBUILD. I traced it down to the changes made to the 'systemd' dependency in 1.6.2-5; it was removed from the depends array but it's required by the includes provided in this package if you want to make use of this package for development purposes; it needs the libudev headers which isn't covered by the libudev.so dependency.

I.o.w.; half of this package is broken atm; the runtime side of this package seems to be covered with the libudev.so dependency but using it for development is currently not possible as it is missing required dependencies (without manually correcting the missing dependency anyway, in the case of Arch being the inclusion of 'systemd').

EDIT: In case someone stumbles upon this later, at the time of writing I'm applying the following patch locally when building this package;

--- PKGBUILD    2021-05-04 18:27:35.399099995 +0200
+++ PKGBUILD    2021-05-04 18:29:59.354997432 +0200
@@ -10,17 +10,11 @@
 arch=('x86_64')
 url='http://www.waffle-gl.org'
 license=('BSD')
-
-depends=('libx11' 'libxcb' 'libudev.so' 'libgl' 'libgles')
+depends=('libx11' 'libxcb' 'libgl' 'libgles' 'systemd')
 optdepends=('libegl: for gbm, surfaceless, x11_egl or wayland support'
             'mesa: for gbm support'
             'wayland: for wayland support')
-
-# XXX: systemd is a bit of a hack, in particular:
-# The Arch packaging splits the libudev.so in one package, with the build
-# aka headers/pkg-config in another.
-makedepends=('meson' 'xcb-proto' 'mesa' 'libxslt' 'docbook-xsl' 'cmake' 'systemd' 'wayland-protocols')
-
+makedepends=('meson' 'xcb-proto' 'mesa' 'libxslt' 'docbook-xsl' 'cmake' 'wayland-protocols')
 source=(https://mesa.pages.freedesktop.org/waffle/files/release/waffle-${pkgver}/waffle-${pkgver}.tar.xz{,.asc})
 sha256sums=('69e42d15d08f63e7a54a8b8770295a6eb04dfd1c6f86c328b6039dbe7de28ef3'
        '7a7e064395551ce20a694be7ecb4795effc3fd6f614943e50445469631677f6e')

This ensures the package is ready/correct for both dev and runtime use-cases.

xexaxo commented on 2021-02-28 20:04

Bash-completion does not complement the package (or the other ~250 packages which install their own completion), so optdepends is wrong. Ideally Arch will get a "suggests" at some point instead of (ab)using optdepends.

For everything else you're spot. Thanks for all the corrections o/

Lone_Wolf commented on 2021-02-25 10:21

  • the package does install completion for wflinfo , so bash-completion should probably have been an optdepend.

  • On AL there is no physical or virtual libgbm.so package. gbm support is included in mesa package and mesa could be listed as optdep instead of libgbm.so

Those are minor issues, but there's another one that causes build failure .

  • having libudev.so in depends is not sufficient for meson
Found pkg-config: /usr/bin/pkg-config (1.7.3)
Run-time dependency gl found: YES 1.2
Run-time dependency egl found: YES 1.5
Run-time dependency wayland-client found: YES 1.19.0
Run-time dependency wayland-egl found: YES 18.1.0
Run-time dependency x11-xcb found: YES 1.7.0
Run-time dependency gbm found: YES 20.3.4
Found CMake: /usr/bin/cmake (3.19.6)
Run-time dependency libudev found: NO (tried pkgconfig and cmake)

waffle-1.6.3/meson.build:101:2: ERROR: Dependency "libudev" not found, tried pkgconfig and cmake

while the libudev.so binary is included with systemd-libs and that package provides it, systemd-libs doesn't include udev.pc . That file is part of the systemd package.

For now listing systemd as makedepend & libudev.so as depend seems like the best solution .

xexaxo commented on 2021-02-24 22:52

@Lone_Wolf thanks. I've tweaked those up a bit, to be more precise. bash-completion is not required with 1.6.2, not sure what flagged it for you.

Lone_Wolf commented on 2021-02-14 23:16

http://ix.io/2Psd build log without cmake in makedepends .

No idea why, but it does look like meson requires cmake for something.

1ace commented on 2021-02-14 21:10

@Lone_Wolf: are you sure about the cmake dependency? @xexaxo moved the package to use meson instead.

Lone_Wolf commented on 2021-02-14 20:45

building with extra-x86_64-build showed several make and runtime dependencies were missing, uploaded new version.

1ace commented on 2021-02-13 18:19

@Lone_Wolf: ah good catch, thanks! I just dropped it, but I'm also adding you as a maintainer so feel free to post fixes like that :)