-
Notifications
You must be signed in to change notification settings - Fork 14.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Missing path for ${manpage}.xml
dependency
#9804
Comments
The dependency list for Rather than fixing the path for |
@karmix we´re building the source code for that on https://ci.freerdp.com/job/freerdp-nightly-binaries/ (package builder) without any issue. |
@karmix also:
this is kind of useless, as we already do a fallback to |
@akallabeth: Unfortunately, the build fails with the version of CMake that ships with a fully updated release of Ubuntu Focal (20.04), which is why I opened the case. The Dockerfile can reproduce the issue. Of Ubuntu's supported releases, Focal is the oldest and appears to be the only one that fails. I did not find a Jenkinsfile or job config, but based on the the release names I would guess that CI is building those packages on Debian. Because of the way Ubuntu forks off Debian's dev branch, some packages get frozen at slightly older releases than what has since been released into the upstream distro. Ubuntu Focal froze CMake at 3.16, while Debian Bullseye went GA with CMake 3.18. I just looked through the CMake release notes between those versions and found a note for 3.17 stating:
This would explain why the build fails on Ubuntu Focal but succeeds on its upstream, Debian Bullseye. With regard to cJSON, I think you will find that the lines you quoted are not useless; if you remove them the build fails with a different error. Ubuntu Focal ships with libcjson-dev_1.7.10-1 which does not include either CMake or PkgConfig files. Those lines install Debian Bullseye's upstream library to give CMake the files it needs to find the cJSON library without a Find script so it can progress past the configure phase to start the build. However, I wouldn't consider the cJSON config issue particularly relevant to this one. |
@karmix oh, indeed, mixed that up with |
@akallabeth: The current releases of Ubuntu are Focal, Jammy, and Mantic. The Jenkins page for |
I have confirmed that #9813 resolves this issue and the cJSON problem we discussed for Ubuntu 20.04. Thank you! |
Describe the bug
Building FreeRDP on older versions of CMake fails with the message:
This is because the build target
${manpage}.manpage
lists${manpage}.xml
as a build dependency, here:FreeRDP/cmake/InstallFreeRDPMan.cmake
Lines 40 to 47 in 4657451
${manpage}.xml
. Instead,${manpage}.xml
is generated and placed in the binary directory by a call toconfigure_file
at configure time, before ninja is invoked to build the project. Since the dependency declaration does not specify the path, some versions of CMake expect to find${manpage}.xml
in the source directory, where it does not exist, and abort. The latest version of CMake appears to recognize that it already generated${manpage}.xml
and implicitly uses the path to the binary directory when constructing the the build rules.To Reproduce
Create a new directory, then in that directory:
Expected behavior
The build should complete successfully and place the new package files into the pkgs directory.
The text was updated successfully, but these errors were encountered: