RJVB / lnxports

A "local port repository" for use with MacPorts on Linux, overriding ports from the main repository.
4 stars 1 forks source link

xorg-libxcb: fix deps: xorg-libXau needed on Linux as well #27

Closed barracuda156 closed 2 months ago

barracuda156 commented 2 months ago

Fails to configure if libXau is missing:

configure: WARNING: doxygen not found - documentation targets will be skipped
configure: WARNING: dot not found - doxygen targets will be skipped
checking for check >= 0.9.6... no
checking for xcb-proto >= 1.17.0... yes
checking for xau >= 0.99.2... no
configure: error: Package requirements (xau >= 0.99.2) were not met:

No package 'xau' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables NEEDED_CFLAGS
and NEEDED_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
Command failed:  cd "/opt/local/var/macports/build/_home_svacchanda_lnxports_x11_xorg-libxcb/xorg-libxcb/work/libxcb-1.17.0" && bash -o pipefail -c './configure  --prefix=/opt/local --disable-devel-docs --disable-silent-rules --enable-ge --enable-xevie --enable-xprint |& tee /opt/local/var/macports/build/_home_svacchanda_lnxports_x11_xorg-libxcb/xorg-libxcb/work/.macports.xorg-libxcb.configure.log'
RJVB commented 2 months ago

You'll see that a considerable number of X11 dependencies are set to be taken from the host, which (almost certainly) has packages for them. Helps keeping the LinuxPort install lean, and speeds things up. I already had them all installed IIRC, but surely your distro's package manager must also have a feature to install all build dependencies of a given package?

barracuda156 commented 2 months ago

@RJVB I think it is set to use some subset of apt, and numerous packages are just not available. Related: https://github.com/Fishwaldo/meta-pine64/issues/12

I had to install something manually from Debian repo just to get some basic components for MacPorts, but otherwise it seems far more convenient to have everything managed by a single package manager rather than combining multiple, especially when I am not familiar with Linux-only ones.

But certainly I can refrain from bombarding you with this sort of PRs, and just keep some fixups locally. (I will likely need to anyway, since some defaults do not work for riscv, at least at the moment.)

RJVB commented 2 months ago

what we could also do is add a variant (yay). I already introduced the +fromHost variant as a means of installing any package as a formal dependency provider only, supposed the content to be present on the host. That one cannot be used as a default variant set via variants.conf of course, but something like fromPorts could, which would be used on a case-by-case (port-by-port) level and make the port behave as it does on Mac.

Would that work for you?

RJVB commented 2 months ago

On Sunday September 15 2024 15:09:57 Sergey Fedorov wrote:

@RJVB I think it is set to use some subset of apt, and numerous packages are just not available. Related: https://github.com/Fishwaldo/meta-pine64/issues/12

BTW, if this is a Debian offshoot, can't you add sources to /etc/apt/sources.list (or the sources.list.d directory)?

barracuda156 commented 2 months ago

what we could also do is add a variant (yay). I already introduced the +fromHost variant as a means of installing any package as a formal dependency provider only, supposed the content to be present on the host. That one cannot be used as a default variant set via variants.conf of course, but something like fromPorts could, which would be used on a case-by-case (port-by-port) level and make the port behave as it does on Mac.

Would that work for you?

Yeah, I guess so. Variant sounds much better than per-port hacks or ongoing rebasing of local patches.

barracuda156 commented 2 months ago

BTW, if this is a Debian offshoot, can't you add sources to /etc/apt/sources.list (or the sources.list.d directory)?

I have absolutely no idea how Linux works, but I can try. Could you refer me to some exact procedure?

RJVB commented 2 months ago

I have absolutely no idea how Linux works, but I can try. Could you refer me to some exact procedure?

The 1st thing would be to find out what Debian release your distro is based on, then, if an upstream version for your architecture exists. If it does, your /etc/apt/sources.list file should be self-explanatory enough on how to add the corresponding entries (which you should be able to find on debian.org). If it doesn't, you should still be able to declare a source for "src" packages, i.e. to be built from source.

First place to start would be with the Debian packages you already installed: where did they come from?

RJVB commented 2 months ago

Yeah, I guess so. Variant sounds much better than per-port hacks or ongoing rebasing of local patches.

Check out the new from_ports_variant PG. I even rolled a procedure that will either add the provided depspecs because on Darwin or +fromPorts is set, or else because they happen to be installed.

I just don't really know how to find all ports that could/should use this new PG...