diff mbox series

package/check: fix compile issue

Message ID ZNEOketbv2Ba6O5N@waldemar-brodkorb.de
State Accepted
Headers show
Series package/check: fix compile issue | expand

Commit Message

Waldemar Brodkorb Aug. 7, 2023, 3:32 p.m. UTC
Switch to the tagged version of check.
See here for details:
https://github.com/libcheck/check/issues/303

Fixes following autobuild failure:
http://autobuild.buildroot.net/results/b10/b1087e9a67ff0382632b73f280fabe92cd863593/

Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
---
 package/check/check.hash | 2 +-
 package/check/check.mk   | 3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)

Comments

Daniel Lang Aug. 7, 2023, 6:42 p.m. UTC | #1
Hello Waldemar,

some quick notes below

On 07.08.23 17:32, Waldemar Brodkorb wrote:
> Switch to the tagged version of check.
> See here for details:
> https://github.com/libcheck/check/issues/303
>
> Fixes following autobuild failure:
> http://autobuild.buildroot.net/results/b10/b1087e9a67ff0382632b73f280fabe92cd863593/

If you just put the following line there:
Fixes:
- http://autobuild.buildroot.net/results/b10/b1087e9a67ff0382632b73f280fabe92cd863593/
patchwork will pick up, that your patch fixes something,
which makes it easier for maintainers to spot the patch.

>
> Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
> ---
>  package/check/check.hash | 2 +-
>  package/check/check.mk   | 3 ++-
>  2 files changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/package/check/check.hash b/package/check/check.hash
> index 543e78f317..3d7538b2f2 100644
> --- a/package/check/check.hash
> +++ b/package/check/check.hash
> @@ -1,4 +1,4 @@
>  # Locally computed
> -sha256  a8de4e0bacfb4d76dd1c618ded263523b53b85d92a146d8835eb1a52932fa20a  check-0.15.2.tar.gz
> +sha256  998d355294bb94072f40584272cf4424571c396c631620ce463f6ea97aa67d2e  0.15.2.tar.gz
>  # License files, locally calculated
>  sha256  a9bdde5616ecdd1e980b44f360600ee8783b1f99b8cc83a2beb163a0a390e861  COPYING.LESSER
> diff --git a/package/check/check.mk b/package/check/check.mk
> index d3977154df..dab2b76911 100644
> --- a/package/check/check.mk
> +++ b/package/check/check.mk
> @@ -5,7 +5,8 @@
>  ################################################################################
>
>  CHECK_VERSION = 0.15.2
> -CHECK_SITE = https://github.com/libcheck/check/releases/download/$(CHECK_VERSION)
> +CHECK_SOURCE = $(CHECK_VERSION).tar.gz
> +CHECK_SITE = https://github.com/libcheck/check/archive/refs/tags

When using the autogenerated archive from github, one should use the
github helper as described in the manual [0]:

CHECK_SITE = $(call github,libcheck,check,$(CHECK_VERSION))

CHECK_SOURCE can be dropped. Buildroot will download an archive
named check-0.15.2.tar.gz which will have the same hash as the
one you calculated for 0.15.2.tar.gz

>  CHECK_INSTALL_STAGING = YES
>  CHECK_DEPENDENCIES = host-pkgconf
>  CHECK_LICENSE = LGPL-2.1+
[0]: https://buildroot.org/downloads/manual/manual.html#github-download-url

Regards
Daniel
Thomas Petazzoni Aug. 7, 2023, 8:06 p.m. UTC | #2
Hello Waldemar,

On Mon, 7 Aug 2023 17:32:33 +0200
Waldemar Brodkorb <wbx@openadk.org> wrote:

> Switch to the tagged version of check.
> See here for details:
> https://github.com/libcheck/check/issues/303
> 
> Fixes following autobuild failure:
> http://autobuild.buildroot.net/results/b10/b1087e9a67ff0382632b73f280fabe92cd863593/
> 
> Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>

This commit log was too terse, because it doesn't describe when the
problem started occurring, which is important for the maintenance of
our stable branches. So I had to do quite some research to figure out,
and come up with the following commit log:

    package/check: fix compile issue due to missing source file
    
    The release tarball of check 0.15.2 lacks a source file, causing a
    build failure, as reported at
    https://github.com/libcheck/check/issues/303. This failures happens
    when thread support is not available, as the file missing is getting
    compiled in when thread support is not there:
    
    if(NOT HAVE_PTHREAD)
      target_sources(check PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../lib/pthread_mutex.c)
      target_sources(checkShared PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../lib/pthread_mutex.c)
    endif()
    
    This issue started appearing when we moved from the autotools build
    system to the CMake build system in commit
    6dfc789f4f21367bc5f4b5454db0922821a765bc. One might wonder why
    changing the build system can cause this kind of issue: the file was
    in fact already missing. Turns out that the missing file is never used
    with the autotools build system: this file provides some Win32
    compatibility layer for pthread functions, so the autotools build
    system never compiled this file as the autotools build system was only
    used on Unix platforms. With CMake it now gets compiled to support
    Windows platform. But on Linux, the entire contents of the file is
    ignored as it is within a HAVE_WIN32_INIT_ONCE ifdef...endif. Still,
    with the file missing, the build fails.
    
    Until upstream publishes a new release with a complete tarball, switch
    to fetching the Github-generated tarball, which does contain the
    missing file.
    
    Fixes:
    
      http://autobuild.buildroot.net/results/b1087e9a67ff0382632b73f280fabe92cd863593/
    
    Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
    Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>

As pointed out by Daniel Lang, using "Fixes:" is important, as it has a
special meaning for patchwork.

>  CHECK_VERSION = 0.15.2
> -CHECK_SITE = https://github.com/libcheck/check/releases/download/$(CHECK_VERSION)
> +CHECK_SOURCE = $(CHECK_VERSION).tar.gz
> +CHECK_SITE = https://github.com/libcheck/check/archive/refs/tags

Switched to using the github helper, exactly like Daniel Lang suggested.

Applied to master with those changes. Thanks!

Thomas
Yann E. MORIN Aug. 24, 2023, 7:44 p.m. UTC | #3
Thomas, Waldemar, All,

On 2023-08-07 22:06 +0200, Thomas Petazzoni via buildroot spake thusly:
> On Mon, 7 Aug 2023 17:32:33 +0200
> Waldemar Brodkorb <wbx@openadk.org> wrote:
> > Switch to the tagged version of check.
> > See here for details:
> > https://github.com/libcheck/check/issues/303
[--SNIP--]
>     Until upstream publishes a new release with a complete tarball, switch
>     to fetching the Github-generated tarball, which does contain the
>     missing file.
[--SNIP--]
> >  CHECK_VERSION = 0.15.2
> > -CHECK_SITE = https://github.com/libcheck/check/releases/download/$(CHECK_VERSION)
> > +CHECK_SOURCE = $(CHECK_VERSION).tar.gz
> > +CHECK_SITE = https://github.com/libcheck/check/archive/refs/tags
> Switched to using the github helper, exactly like Daniel Lang suggested.

This is incorrect, because the archive content changes, but the archive
filename does not; hence the copy we host on s.b.o. is invalid, and
since we've had check-0.15.2 since 2021-04-06, we've had a few releases
already that uses that version.

So we can't replace the one on s.b.o with the new one.

Instead, the only solution is to switch to using a git hash instead of
the tag.

Regards,
Yann E. MORIN.
diff mbox series

Patch

diff --git a/package/check/check.hash b/package/check/check.hash
index 543e78f317..3d7538b2f2 100644
--- a/package/check/check.hash
+++ b/package/check/check.hash
@@ -1,4 +1,4 @@ 
 # Locally computed
-sha256  a8de4e0bacfb4d76dd1c618ded263523b53b85d92a146d8835eb1a52932fa20a  check-0.15.2.tar.gz
+sha256  998d355294bb94072f40584272cf4424571c396c631620ce463f6ea97aa67d2e  0.15.2.tar.gz
 # License files, locally calculated
 sha256  a9bdde5616ecdd1e980b44f360600ee8783b1f99b8cc83a2beb163a0a390e861  COPYING.LESSER
diff --git a/package/check/check.mk b/package/check/check.mk
index d3977154df..dab2b76911 100644
--- a/package/check/check.mk
+++ b/package/check/check.mk
@@ -5,7 +5,8 @@ 
 ################################################################################
 
 CHECK_VERSION = 0.15.2
-CHECK_SITE = https://github.com/libcheck/check/releases/download/$(CHECK_VERSION)
+CHECK_SOURCE = $(CHECK_VERSION).tar.gz
+CHECK_SITE = https://github.com/libcheck/check/archive/refs/tags
 CHECK_INSTALL_STAGING = YES
 CHECK_DEPENDENCIES = host-pkgconf
 CHECK_LICENSE = LGPL-2.1+