Build problems for "clientbuffer" plugin, znc-buildmod distcc hardcoding? #838

Closed
opened 2026-10-05 04:47:45 +02:00 by adam · 11 comments
Owner

I've reported this issue already downstream, but the developer seems convinced the issue isn't on his end. https://github.com/CyberShadow/znc-clientbuffer/issues/3

Build log: https://ptpb.pw/xqcz

==> Starting build()...
-- The C compiler identification is unknown
-- The CXX compiler identification is unknown
CMake Error at CMakeLists.txt:2 (project):
  The CMAKE_C_COMPILER:

    /usr/lib/distcc/bin/cc

  is not a full path to an existing compiler tool.

  Tell CMake where to find the compiler by setting either the environment
  variable "CC" or the CMake cache entry CMAKE_C_COMPILER to the full path to
  the compiler, or to the compiler name if it is in the PATH.


CMake Error at CMakeLists.txt:2 (project):
  The CMAKE_CXX_COMPILER:

    /usr/lib/distcc/bin/c++

  is not a full path to an existing compiler tool.

  Tell CMake where to find the compiler by setting either the environment
  variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path
  to the compiler, or to the compiler name if it is in the PATH.

cmake seems to be trying to use distcc, despite the fact that on my machine this isn't installed, and that I have !distcc in my makepkg.conf.

I asked on Freenode #archlinux-arm and "rcf" suggested that the issue is actually with znc-buildmod, but I'd nonetheless prefer to not skip steps in escalating the issue to where it ultimately needs to be resolved.

I don't think there's any spurious references to distcc on my machine, as my output for env | grep distcc is blank. Also, I get the same errors if I try to build directly, or via makepkg.

In the meantime, if there's any other information I could provide which might be helpful, please just ask.

I've reported this issue already downstream, but the developer seems convinced the issue isn't on his end. https://github.com/CyberShadow/znc-clientbuffer/issues/3 Build log: https://ptpb.pw/xqcz ``` ==> Starting build()... -- The C compiler identification is unknown -- The CXX compiler identification is unknown CMake Error at CMakeLists.txt:2 (project): The CMAKE_C_COMPILER: /usr/lib/distcc/bin/cc is not a full path to an existing compiler tool. Tell CMake where to find the compiler by setting either the environment variable "CC" or the CMake cache entry CMAKE_C_COMPILER to the full path to the compiler, or to the compiler name if it is in the PATH. CMake Error at CMakeLists.txt:2 (project): The CMAKE_CXX_COMPILER: /usr/lib/distcc/bin/c++ is not a full path to an existing compiler tool. Tell CMake where to find the compiler by setting either the environment variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path to the compiler, or to the compiler name if it is in the PATH. ``` cmake seems to be trying to use distcc, despite the fact that on my machine this isn't installed, and that I have !distcc in my makepkg.conf. I asked on Freenode #archlinux-arm and "rcf" suggested that the issue is actually with znc-buildmod, but I'd nonetheless prefer to not skip steps in escalating the issue to where it ultimately needs to be resolved. I don't *think* there's any spurious references to distcc on my machine, as my output for `env | grep distcc` is blank. Also, I get the same errors if I try to build directly, or via makepkg. In the meantime, if there's any other information I could provide which might be helpful, please just ask. <!-- github-sync-id:324821046 -->
adam closed this issue 2026-10-05 04:47:45 +02:00
Author
Owner

FWIW, git grep distcc in this repository also returns no results, so it's probably coming from somewhere else - CMake or some configuration on your system.

FWIW, `git grep distcc` in this repository also returns no results, so it's probably coming from somewhere else - CMake or some configuration on your system. <!-- github-comment-id:390657921 -->
Author
Owner

Well given that I never set up distcc (or even installed it), and that I haven't changed any of my build-related configs since the last time I successfully built the clientbuffer addon, I struggle to see how...

makepkg.conf https://ptpb.pw/6w7U.conf

notice:

BUILDENV=(!distcc color !ccache check !sign)

Is there anywhere else I might be able to check?

Well given that I never set up distcc (or even installed it), and that I haven't changed any of my build-related configs since the last time I successfully built the clientbuffer addon, I struggle to see how... makepkg.conf https://ptpb.pw/6w7U.conf notice: ``` BUILDENV=(!distcc color !ccache check !sign) ``` Is there anywhere else I might be able to check? <!-- github-comment-id:390658599 -->
Author
Owner

What compiler do you use? Make a symlink to it at the given path

What compiler do you use? Make a symlink to it at the given path <!-- github-comment-id:390720716 -->
Author
Owner

How did you install ZNC?

2018-05-21 19:15 GMT+02:00 wolfy1339 notifications@github.com:

What compiler do you use? Make a symlink to it at the given path

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/znc/znc/issues/1536#issuecomment-390720716, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAT15KmEgVRDIHK0EmV4G65z8q4hzXJCks5t0vZPgaJpZM4UGk-7
.

How did you install ZNC? 2018-05-21 19:15 GMT+02:00 wolfy1339 <notifications@github.com>: > What compiler do you use? Make a symlink to it at the given path > > — > You are receiving this because you are subscribed to this thread. > Reply to this email directly, view it on GitHub > <https://github.com/znc/znc/issues/1536#issuecomment-390720716>, or mute > the thread > <https://github.com/notifications/unsubscribe-auth/AAT15KmEgVRDIHK0EmV4G65z8q4hzXJCks5t0vZPgaJpZM4UGk-7> > . > <!-- github-comment-id:390729641 -->
Author
Owner

@wolfy1339 I'm using GCC 8.1, as provided in the Archlinux ARM repositories:

[alarm@alarm ~]$ pacman -Qi gcc
Name            : gcc
Version         : 8.1.0-1
Description     : The GNU Compiler Collection - C and C++ frontends
Architecture    : armv7h
URL             : http://gcc.gnu.org
Licenses        : GPL  LGPL  FDL  custom
Groups          : base-devel
Provides        : None
Depends On      : gcc-libs=8.1.0-1  binutils>=2.28  libmpc
Optional Deps   : None
Required By     : gcc-fortran
Optional For    : None
Conflicts With  : None
Replaces        : None
Installed Size  : 97.46 MiB
Packager        : Arch Linux ARM Build System <builder+xu0@archlinuxarm.org>
Build Date      : Thu 03 May 2018 07:00:46 BST
Install Date    : Mon 21 May 2018 00:18:48 BST
Install Reason  : Explicitly installed
Install Script  : No
Validated By    : SHA-256 Sum

I will try that, but I'd still prefer to know why my system seems to want that in the first place. Given that I've been able to build the package fine before, and I (so far) can also build other packages fine (some of which will surely use cmake, though I will have to check).

@DarthGandalf I also installed ZNC via the Archlinux ARM repositories:

[alarm@alarm ~]$ pacman -Qi znc
Name            : znc
Version         : 1.7.0-1
Description     : An IRC bouncer with modules & scripts support
Architecture    : armv7h
URL             : http://wiki.znc.in/
Licenses        : GPL2
Groups          : None
Provides        : None
Depends On      : libsasl  icu  boost-libs
Optional Deps   : tcl: modtcl module [installed]
                  python: modpython module [installed]
                  perl: modperl module [installed]
                  cyrus-sasl: saslauth module [installed]
Required By     : None
Optional For    : None
Conflicts With  : None
Replaces        : None
Installed Size  : 13.18 MiB
@wolfy1339 I'm using GCC 8.1, as provided in the Archlinux ARM repositories: ``` [alarm@alarm ~]$ pacman -Qi gcc Name : gcc Version : 8.1.0-1 Description : The GNU Compiler Collection - C and C++ frontends Architecture : armv7h URL : http://gcc.gnu.org Licenses : GPL LGPL FDL custom Groups : base-devel Provides : None Depends On : gcc-libs=8.1.0-1 binutils>=2.28 libmpc Optional Deps : None Required By : gcc-fortran Optional For : None Conflicts With : None Replaces : None Installed Size : 97.46 MiB Packager : Arch Linux ARM Build System <builder+xu0@archlinuxarm.org> Build Date : Thu 03 May 2018 07:00:46 BST Install Date : Mon 21 May 2018 00:18:48 BST Install Reason : Explicitly installed Install Script : No Validated By : SHA-256 Sum ``` I will try that, but I'd still prefer to know why my system seems to want that in the first place. Given that I've been able to build the package fine before, and I (so far) can also build other packages fine (some of which will surely use cmake, though I will have to check). @DarthGandalf I also installed ZNC via the Archlinux ARM repositories: ``` [alarm@alarm ~]$ pacman -Qi znc Name : znc Version : 1.7.0-1 Description : An IRC bouncer with modules & scripts support Architecture : armv7h URL : http://wiki.znc.in/ Licenses : GPL2 Groups : None Provides : None Depends On : libsasl icu boost-libs Optional Deps : tcl: modtcl module [installed] python: modpython module [installed] perl: modperl module [installed] cyrus-sasl: saslauth module [installed] Required By : None Optional For : None Conflicts With : None Replaces : None Installed Size : 13.18 MiB ``` <!-- github-comment-id:390730922 -->
Author
Owner

How exactly does znc-buildmod determine what C/C++ compiler to use? That might help me figure out where else to check for falsely set, or missing, variables, etc.

How exactly does znc-buildmod determine what C/C++ compiler to use? That might help me figure out where else to check for falsely set, or missing, variables, etc. <!-- github-comment-id:390892711 -->
Author
Owner

I uses the same compiler as what was used during compilation of ZNC itself.
That's why I asked how you installed it. I haven't looked yet what pacman
uses.

2018-05-22 9:37 GMT+02:00 Adam Hirst notifications@github.com:

How exactly does znc-buildmod determine what C/C++ compiler to use? That
might help me figure out where else to check for falsely set, or missing,
variables, etc.

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/znc/znc/issues/1536#issuecomment-390892711, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAT15BvctTGZyIvbdFS8Z5j19n4bFe_lks5t08AxgaJpZM4UGk-7
.

I uses the same compiler as what was used during compilation of ZNC itself. That's why I asked how you installed it. I haven't looked yet what pacman uses. 2018-05-22 9:37 GMT+02:00 Adam Hirst <notifications@github.com>: > How exactly does znc-buildmod determine what C/C++ compiler to use? That > might help me figure out where else to check for falsely set, or missing, > variables, etc. > > — > You are receiving this because you were mentioned. > Reply to this email directly, view it on GitHub > <https://github.com/znc/znc/issues/1536#issuecomment-390892711>, or mute > the thread > <https://github.com/notifications/unsubscribe-auth/AAT15BvctTGZyIvbdFS8Z5j19n4bFe_lks5t08AxgaJpZM4UGk-7> > . > <!-- github-comment-id:390893681 -->
Author
Owner

The same compiler as was used to compile ZNC?

What if Archlinux-ARM is using distcc to compile its packages on their build server for the repo?

The same compiler as was used to compile ZNC? What if Archlinux-ARM is using distcc to compile its packages on their build server for the repo? <!-- github-comment-id:390894044 -->
Author
Owner

I've just been informed by "Bonstra" in #archlinux-arm on Freenode that, indeed, znc-buildmod bakes in the compiler, which is easy since it's actually a python script (which I hadn't realised).

On my machine:

[alarm@alarm ~]$ cat /usr/bin/znc-buildmod | grep distcc
            '-DCMAKE_C_COMPILER=/usr/lib/distcc/bin/cc',
            '-DCMAKE_CXX_COMPILER=/usr/lib/distcc/bin/c++',

Since it's obvious(?) that users of distribution-compiled packages are by no means guaranteed to use the same compiler setup as the upstream build machine, is it really a good idea to bake this in, instead of determining it dynamically from the actual runtime environment?

EDIT: I can confirm that removing "/lib/distcc" from these lines on my machine (i.e. just pointing to GCC) allows znc-clientbuffer-git to build correctly, and it also works perfectly.

I've just been informed by "Bonstra" in #archlinux-arm on Freenode that, indeed, znc-buildmod bakes in the compiler, which is easy since it's actually a python script (which I hadn't realised). On my machine: ``` [alarm@alarm ~]$ cat /usr/bin/znc-buildmod | grep distcc '-DCMAKE_C_COMPILER=/usr/lib/distcc/bin/cc', '-DCMAKE_CXX_COMPILER=/usr/lib/distcc/bin/c++', ``` Since it's obvious(?) that users of distribution-compiled packages are by no means guaranteed to use the same compiler setup as the upstream build machine, is it really a good idea to bake this in, instead of determining it dynamically from the actual runtime environment? EDIT: I can confirm that removing "/lib/distcc" from these lines on my machine (i.e. just pointing to GCC) allows znc-clientbuffer-git to build correctly, and it also works perfectly. <!-- github-comment-id:390898141 -->
Author
Owner

Yeah, probably some lines from https://github.com/znc/znc/blob/master/znc-buildmod.cmake.in#L81-L87 should be removed. What about the -G parameter?

Yeah, probably some lines from https://github.com/znc/znc/blob/master/znc-buildmod.cmake.in#L81-L87 should be removed. What about the `-G` parameter? <!-- github-comment-id:390941988 -->
Author
Owner

What about the -G parameter?

I think that should probably be removed as well. Packing-wise, the generator will be a ZNC build-time dependency. The default generator on POSIX is Make, which is much more likely to be available than any other. I don't know what's the story about binary packages on Windows (i.e. if prebuilt znc-buildmod scripts are distributed with binary packages) - there, CMake seems to try to detect a Visual Studio version that's installed on the host, so letting it pick the default is probably also sensible.

> What about the `-G` parameter? I think that should probably be removed as well. Packing-wise, the generator will be a ZNC build-time dependency. The default generator on POSIX is Make, which is much more likely to be available than any other. I don't know what's the story about binary packages on Windows (i.e. if prebuilt `znc-buildmod` scripts are distributed with binary packages) - there, CMake seems to try to detect a Visual Studio version that's installed on the host, so letting it pick the default is probably also sensible. <!-- github-comment-id:390943762 -->
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: adam/znc#838