void-linux / void-linux/void-packages

Build options leak when building a target's dependency.

Open
#27,456 6 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
Shell
Stars
3.4k
Forks
2.8k
Avg merge
2d 5h
Merged PRs (30d)
299

Description

My test case is with efl and enlightenment; to reproduce, you simply need to increase the revision in both packages, then try to build enlightenment, with ./xbps-src pkg enlightenment. When it doesn't find the up to date efl dependency, it will attempt to build it, and fail, as seen here:

=> xbps-src: updating repositories for host (x86_64)...
[*] Updating repository `https://mirror.clarkson.edu/voidlinux/current/x86_64-repodata' ...
[*] Updating repository `https://mirror.clarkson.edu/voidlinux/current/nonfree/x86_64-repodata' ...
[*] Updating repository `https://mirror.clarkson.edu/voidlinux/current/debug/x86_64-repodata' ...
[*] Updating repository `https://alpha.de.repo.voidlinux.org/current/multilib/x86_64-repodata' ...
[*] Updating repository `https://alpha.de.repo.voidlinux.org/current/multilib/nonfree/x86_64-repodata' ...
=> xbps-src: updating software in / masterdir...
=> xbps-src: cleaning up / masterdir...
=> enlightenment-0.24.2_1: removing autodeps, please wait...
=> enlightenment-0.24.2_1: the following build options are set:
   wayland: Enable support for the Wayland backend (ON)
=> enlightenment-0.24.2_1: building [meson] for x86_64...
   [host] efl-1.24.4_1: not found
   [host] pkg-config-0.29.2_2: found (https://mirror.clarkson.edu/voidlinux/current)
   [host] gettext-0.21_2: found (https://mirror.clarkson.edu/voidlinux/current)
   [host] xorg-server-xwayland-1.20.10_2: found (https://mirror.clarkson.edu/voidlinux/current)
   [host] meson-0.55.3_3: found (https://mirror.clarkson.edu/voidlinux/current)
   [target] gettext-devel-0.21_2: found (https://mirror.clarkson.edu/voidlinux/current)
   [target] efl-devel-1.24.4_1: not found
   [target] pam-devel-1.3.0_2: found (https://mirror.clarkson.edu/voidlinux/current)
   [target] xkeyboard-config-2.31_1: found (https://mirror.clarkson.edu/voidlinux/current)
   [target] libxkbcommon-devel-1.0.3_1: found (https://mirror.clarkson.edu/voidlinux/current)
   [target] MesaLib-devel-20.3.1_1: found (https://mirror.clarkson.edu/voidlinux/current)
   [target] wayland-devel-1.18.0_3: found (https://mirror.clarkson.edu/voidlinux/current)
   [runtime] desktop-file-utils-0.26_1: found (https://mirror.clarkson.edu/voidlinux/current)
   [runtime] hicolor-icon-theme-0.17_3: found (https://mirror.clarkson.edu/voidlinux/current)
   [runtime] xkeyboard-config-2.31_1: found (https://mirror.clarkson.edu/voidlinux/current)
   [runtime] xorg-server-xwayland-1.20.10_2: found (https://mirror.clarkson.edu/voidlinux/current)
   [runtime] efl-devel-1.24.4_1: not found
=> ERROR: efl-1.24.4_1: cannot be built, it's currently broken; see the build log:
=> ERROR: efl-1.24.4_1: wayland requires drm

I assume this happens because enlightenment has build_options_default=wayland, while efl has build_options_default="elogind harfbuzz pulseaudio gstreamer x11 wayland opengl gles2 drm glib ibus". efl's options are overridden, and we (luckily) get an error, because the wayland build option requires drm.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start at the ./xbps-src pkg enlightenment entry point and trace how build options are passed when the efl dependency is built. Reproduce with the efl and enlightenment revisions increased, then verify that efl retains its own default options and the dependency build no longer fails with “wayland requires drm”.

Written by the indexing model from the issue text.

Assessment

Tech stack
shell
Domain
build-system, tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.