[Buildroot] [PATCH] package/librtlsdr: fix version fetching when code is extracted from tarball
Yann E. MORIN
yann.morin.1998 at free.fr
Tue Aug 11 21:54:51 UTC 2020
Thomas, All,
On 2020-08-11 23:36 +0200, Thomas Petazzoni spake thusly:
> librtlsdr currently fails to build on the autobuilders, as it fails
> for out of tree builds. Indeed, there is some CMake logic in librtlsdr
> that determines the version using Git. This works fine when librtlsdr
> is fetched from Git of course. But in the context of Buildroot,
> librtlsdr is extracted from a tarball.
>
> For an in-tree build, the "git describe" invocation goes all the way
> up to the Buildroot .git/ metadata, and uses that as the librtlsdr
> version (it's of course wrong, but the build works). In an out-of-tree
> build, there is no parent directory with .git/ metadata, so Git fails,
> the VERSION variable is empty and later CMake aborts the build because
> of that.
>
> We fix that by adjusting the version retrieving logic to only use Git
> if a .git/ metadata folder is found at the root of the librtlsdr
> source tree. The patch has been submitted upstream.
>
> Fixes:
>
> http://autobuild.buildroot.net/results/ea52be1da8ed03272db06679d5a0a441ffe6ea0c/
>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni at bootlin.com>
Applied to master, thanks.
Also applied, the patch that adds Gwenhael as developper to librtlsdr.
Regards,
Yann E. MORIN.
> ---
> ...rsion.cmake-don-t-use-Git-version-if.patch | 47 +++++++++++++++++++
> 1 file changed, 47 insertions(+)
> create mode 100644 package/librtlsdr/0002-cmake-Modules-Version.cmake-don-t-use-Git-version-if.patch
>
> diff --git a/package/librtlsdr/0002-cmake-Modules-Version.cmake-don-t-use-Git-version-if.patch b/package/librtlsdr/0002-cmake-Modules-Version.cmake-don-t-use-Git-version-if.patch
> new file mode 100644
> index 0000000000..9c808edd41
> --- /dev/null
> +++ b/package/librtlsdr/0002-cmake-Modules-Version.cmake-don-t-use-Git-version-if.patch
> @@ -0,0 +1,47 @@
> +From feb5d9c6b7bcec788f9b01781c205e31fff260e7 Mon Sep 17 00:00:00 2001
> +From: Thomas Petazzoni <thomas.petazzoni at bootlin.com>
> +Date: Tue, 11 Aug 2020 23:07:08 +0200
> +Subject: [PATCH] cmake/Modules/Version.cmake: don't use Git version if not in
> + a Git repo
> +
> +If the librtlsdr code comes from a tarball, it doesn't have any .git/
> +metadata, and therefore even if Git (as a tool) is found, the logic in
> +cmake/Modules/Version.cmake fails finding a version through Git:
> +
> +-- Extracting version information from git describe...
> +fatal: Not a git repository (or any of the parent directories): .git
> +
> +As a consequence, the VERSION variable is empty, which later causes
> +cmake to bail out with:
> +
> +CMake Error at /home/test/autobuild/run/instance-1/output-1/host/share/cmake-3.15/Modules/WriteBasicConfigVersionFile.cmake:43 (message):
> + No VERSION specified for WRITE_BASIC_CONFIG_VERSION_FILE()
> +Call Stack (most recent call first):
> + /home/test/autobuild/run/instance-1/output-1/host/share/cmake-3.15/Modules/CMakePackageConfigHelpers.cmake:225 (write_basic_config_version_file)
> + CMakeLists.txt:173 (write_basic_package_version_file)
> +
> +To avoid this, we only use Git to determine the version if the cmake
> +project top-level source directory has a .git/ folder.
> +
> +Upstream: https://github.com/librtlsdr/librtlsdr/pull/75
> +Signed-off-by: Thomas Petazzoni <thomas.petazzoni at bootlin.com>
> +---
> + cmake/Modules/Version.cmake | 2 +-
> + 1 file changed, 1 insertion(+), 1 deletion(-)
> +
> +diff --git a/cmake/Modules/Version.cmake b/cmake/Modules/Version.cmake
> +index 2d4e76d..6f67fa4 100644
> +--- a/cmake/Modules/Version.cmake
> ++++ b/cmake/Modules/Version.cmake
> +@@ -32,7 +32,7 @@ set(PATCH_VERSION ${VERSION_INFO_PATCH_VERSION})
> + ########################################################################
> + find_package(Git QUIET)
> +
> +-if(GIT_FOUND)
> ++if(GIT_FOUND AND EXISTS ${CMAKE_SOURCE_DIR}/.git)
> + message(STATUS "Extracting version information from git describe...")
> + execute_process(
> + COMMAND ${GIT_EXECUTABLE} describe --always --abbrev=4 --long
> +--
> +2.26.2
> +
> --
> 2.26.2
>
--
.-----------------.--------------------.------------------.--------------------.
| Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ |
| +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. |
'------------------------------^-------^------------------^--------------------'
More information about the buildroot
mailing list