Building with depends system from local git subtree directory fails #139

issue ryanofsky openend this issue on January 28, 2025
  1. ryanofsky commented at 4:17 pm on January 28, 2025: collaborator

    Originally posted by @Sjors in https://github.com/bitcoin/bitcoin/pull/31741#pullrequestreview-2577588200

    Building MULTIPROCESS=1 with depends now fails:

     0...
     1Postprocessing native_capnp...
     2Caching native_capnp...
     3Fetching from
     4curl: (3) URL rejected: No host part in the URL
     5Fetching from https://bitcoincore.org/depends-sources
     6  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
     7                                 Dload  Upload   Total   Spent    Left  Speed
     8  0  308k    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
     9curl: (22) The requested URL returned error: 403
    10make: *** [/Users/sjors/dev/bitcoin/depends/sources/download-stamps/.stamp_fetched-native_libmultiprocess-.hash] Error 22
    

    Before commit 01452f8c0da58db549bc46d0cfa7de715344efc4 depends does build (as you would expect).

  2. ryanofsky commented at 4:32 pm on January 28, 2025: collaborator

    Using https://github.com/bitcoin/bitcoin/pull/31741 (https://github.com/ryanofsky/bitcoin/commits/pr/subtree.3) building works for me it would help to get more debug output.

    Can you try to print some variables to see if they have expected values?

    0make MULTIPROCESS=1 print-native_capnp_download_file
    1make MULTIPROCESS=1 print-native_capnp_download_dir
    2make MULTIPROCESS=1 print-native_capnp_source
    3make MULTIPROCESS=1 print-native_libmultiprocess_local_dir
    4make MULTIPROCESS=1 print-native_libmultiprocess_fetched
    5make MULTIPROCESS=1 print-native_libmultiprocess_source
    

    For me these look like:

    0native_capnp_download_file=capnproto-c++-1.1.0.tar.gz
    1native_capnp_download_dir=/home/russ/work/bitcoin/depends/work/download/native_capnp-1.1.0
    2native_capnp_source=/home/russ/work/bitcoin/depends/sources/capnproto-cxx-1.1.0.tar.gz
    3native_libmultiprocess_local_dir=../src/ipc/libmultiprocess
    4native_libmultiprocess_fetched=/home/russ/work/bitcoin/depends/sources/download-stamps/.stamp_fetched-native_libmultiprocess-.hash
    5native_libmultiprocess_source=/home/russ/work/bitcoin/depends/sources/src-ipc-libmultiprocess.tar
    

    It might also help to see the command line and complete output including V=1

  3. Sjors commented at 5:36 pm on January 28, 2025: member

    macOS 15.2 with Xcode 16.2

    0% make MULTIPROCESS=1 print-native_capnp_download_file
    1/bin/sh: command -v llvm-ranlib: No such file or directory
    2/bin/sh: command -v llvm-strip: No such file or directory
    3/bin/sh: command -v llvm-nm: No such file or directory
    4/bin/sh: command -v llvm-objdump: No such file or directory
    5/bin/sh: command -v dsymutil: No such file or directory
    6native_capnp_download_file=capnproto-c++-1.1.0.tar.gz
    

    These warnings happen on master too, see https://github.com/bitcoin/bitcoin/issues/30978

    I’ll omit them:

    0native_capnp_download_file=capnproto-c++-1.1.0.tar.gz
    1native_capnp_download_dir=/Users/sjors/dev/bitcoin/depends/work/download/native_capnp-1.1.0
    2native_capnp_source=/Users/sjors/dev/bitcoin/depends/sources/capnproto-cxx-1.1.0.tar.gz
    3native_libmultiprocess_local_dir=../src/ipc/libmultiprocess
    4native_libmultiprocess_fetched=/Users/sjors/dev/bitcoin/depends/sources/download-stamps/.stamp_fetched-native_libmultiprocess-.hash
    5native_libmultiprocess_source=/Users/sjors/dev/bitcoin/depends/sources/src-ipc-libmultiprocess.tar
    
     0make MULTIPROCESS=1 NO_QT=1 NO_ZMQ=1 NO_WALLET=1 NO_USDT=1 V=1
     1...
     2mkdir -p /Users/sjors/dev/bitcoin/depends/sources/download-stamps /Users/sjors/dev/bitcoin/depends/sources
     3rm -f /Users/sjors/dev/bitcoin/depends/sources/download-stamps/.stamp_fetched-native_libmultiprocess-.hash
     4touch /Users/sjors/dev/bitcoin/depends/sources/download-stamps/.stamp_fetched-native_libmultiprocess-.hash
     5cd /Users/sjors/dev/bitcoin/depends/sources/download-stamps; ( test -f /Users/sjors/dev/bitcoin/depends/sources/ || (     ( mkdir -p /Users/sjors/dev/bitcoin/depends/work/download/native_libmultiprocess- && echo Fetching  from  && curl --location --fail --connect-timeout 30 --retry 3 -o "/Users/sjors/dev/bitcoin/depends/work/download/native_libmultiprocess-/.temp" "/" && echo "  /Users/sjors/dev/bitcoin/depends/work/download/native_libmultiprocess-/.temp" > /Users/sjors/dev/bitcoin/depends/work/download/native_libmultiprocess-/..hash && shasum -a 256 -c /Users/sjors/dev/bitcoin/depends/work/download/native_libmultiprocess-/..hash && mv /Users/sjors/dev/bitcoin/depends/work/download/native_libmultiprocess-/.temp /Users/sjors/dev/bitcoin/depends/sources/ && rm -rf /Users/sjors/dev/bitcoin/depends/work/download/native_libmultiprocess- ) ||     ( mkdir -p /Users/sjors/dev/bitcoin/depends/work/download/native_libmultiprocess- && echo Fetching  from https://bitcoincore.org/depends-sources && curl --location --fail --connect-timeout 30 --retry 3 -o "/Users/sjors/dev/bitcoin/depends/work/download/native_libmultiprocess-/.temp" "https://bitcoincore.org/depends-sources/" && echo "  /Users/sjors/dev/bitcoin/depends/work/download/native_libmultiprocess-/.temp" > /Users/sjors/dev/bitcoin/depends/work/download/native_libmultiprocess-/..hash && shasum -a 256 -c /Users/sjors/dev/bitcoin/depends/work/download/native_libmultiprocess-/..hash && mv /Users/sjors/dev/bitcoin/depends/work/download/native_libmultiprocess-/.temp /Users/sjors/dev/bitcoin/depends/sources/ && rm -rf /Users/sjors/dev/bitcoin/depends/work/download/native_libmultiprocess- )))
     6Fetching from
     7curl: (3) URL rejected: No host part in the URL
     8Fetching from https://bitcoincore.org/depends-sources
     9  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
    10                                 Dload  Upload   Total   Spent    Left  Speed
    11  0  308k    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
    12curl: (22) The requested URL returned error: 403
    13make: *** [/Users/sjors/dev/bitcoin/depends/sources/download-stamps/.stamp_fetched-native_libmultiprocess-.hash] Error 22
    

    Full log which includes the successfully built stuff: https://gist.github.com/Sjors/2b966733f511d984e298418e792835bc

  4. ryanofsky commented at 7:19 pm on January 28, 2025: collaborator

    Thanks, I misread the original message and thought it was failing trying to download native_capnp sources, but actually looking later in the log it is failing trying to download the native_libmultiprocess sources. This is still wrong, because it should be using the subtree and not downloading anything. But at least it makes more sense.

    For debugging, first thing it would be helpful to know if the two printed files exist:

    native_libmultiprocess_source=/Users/sjors/dev/bitcoin/depends/sources/src-ipc-libmultiprocess.tar native_libmultiprocess_fetched=/Users/sjors/dev/bitcoin/depends/sources/download-stamps/.stamp_fetched-

    before & after running the command. You should also be able to get in a clean state by deleting them before running it. The first file is supposed to contain a tarball of the git subtree, and second file is supposed to contain sha256 checksum file containing a hash of the tarball.

    In your gist the first indication that there is a problem is line 537 where it appears make is trying to run the native_libmultiprocess_fetched build rule which is supposed to be skipped because the $(1)_fetched file .stamp_fetched-native_libmultiprocess-.hash should have already been created earlier on as part of computing the build ids.

    It would also be helpful to see output of the following print command to see if build id is including a tarball hash:

    0make MULTIPROCESS=1 print-native_libmultiprocess_all_file_checksums
    

    And a make –trace command which should reveal why make is trying to build a stamp_fetched-native_libmultiprocess-.hash file that should already exist.

    0make MULTIPROCESS=1 --trace native_libmultiprocess_fetched V=1
    

    It would also be helpful if you can add some debug prints in code supposed to be creating the tarball and hash file:

     0--- a/depends/funcs.mk
     1+++ b/depends/funcs.mk
     2@@ -41,12 +41,15 @@ endef
     3 
     4 define int_get_local_dir
     5 $(eval $(1)_sha256_hash:=$(shell
     6+    set -x; \
     7+    echo >&2 HELLO HELLO CREATING $($(1)_fetched); \
     8     if ! [ -f $($(1)_fetched) ] || [ $($(1)_fetched) -ot $($(1)_local_dir) ]; then \
     9         mkdir -p $(dir $($(1)_fetched)); \
    10         $(build_TAR) -c --sort=name --mtime=0 --owner=0 --group=0 --numeric-owner -f $($(1)_source) -C $($(1)_local_dir) . && \
    11         $(build_SHA256SUM) $($(1)_source) > $($(1)_fetched); \
    12     fi; \
    13-    cut -d" " -f1 $($(1)_fetched); ))
    14+    cut -d" " -f1 $($(1)_fetched); \
    15+    cat >&2 $($(1)_fetched); ))
    16 $(eval $(1)_all_file_checksums+=$($(1)_sha256_hash))
    17 endef
    

    This output should show up early on when running any of the commands above.

  5. Sjors commented at 7:36 pm on January 28, 2025: member

    For debugging, first thing it would be helpful to know if the two printed files exist:

    Not before and not after.

    With the patch applied, there’s no HELLO in the output (with V=1).

    0native_libmultiprocess_all_file_checksums=8a0685199f5ff048f31c04cedb8bf13bc01d1177b96e08dd862846dcad812f4a ec2577614252326f889df1de97b9a457c03a9a94811048563c211a44496d8ba3 465c5fe67c7d36b72e808812716445d4d38d4b94734ca8d36a8639d12323878b 03ebe6e49b63a03435727b4c55d29f5e36ee5a1836e96456a2392b210e543b73 5ef5512589a90c1670dc231f6e996ef63af81827d03308b53a44c16591ec7c4a 7efbfcf0f23a34e643e8966fbcf78137f7a72e17c08e9b3d60730a023c0b16aa 0813e891aee723243545e1f5334622dafc861fd8abc2baace9e893e13330eca0 7ff2d66419eced83a5db9e06bd80f1139f53a8f9be95af1924abad6ba1ad045a 7261275dea35a4448176996fca08adc766445f7048ea2cacc15334d30f0e0ebe 
    

    There’s no --trace argument for make, did you mean --debug?

     0             Successfully remade target file `native_capnp'.
     1            File `/Users/sjors/dev/bitcoin/depends/built/aarch64-apple-darwin24.2.0/native_libmultiprocess/native_libmultiprocess--6dd32f3a9cb.tar.gz' does not exist.
     2             File `/Users/sjors/dev/bitcoin/depends/work/staging/aarch64-apple-darwin24.2.0/native_libmultiprocess/-6dd32f3a9cb/Users/sjors/dev/bitcoin/depends/aarch64-apple-darwin24.2.0/native/.stamp_postprocessed' does not exist.
     3              File `/Users/sjors/dev/bitcoin/depends/work/staging/aarch64-apple-darwin24.2.0/native_libmultiprocess/-6dd32f3a9cb/.stamp_staged' does not exist.
     4               File `/Users/sjors/dev/bitcoin/depends/work/build/aarch64-apple-darwin24.2.0/native_libmultiprocess/-6dd32f3a9cb/./.stamp_built' does not exist.
     5                File `/Users/sjors/dev/bitcoin/depends/aarch64-apple-darwin24.2.0/.native_libmultiprocess_stamp_configured' does not exist.
     6                 File `/Users/sjors/dev/bitcoin/depends/work/build/aarch64-apple-darwin24.2.0/native_libmultiprocess/-6dd32f3a9cb/.stamp_preprocessed' does not exist.
     7                  File `/Users/sjors/dev/bitcoin/depends/work/build/aarch64-apple-darwin24.2.0/native_libmultiprocess/-6dd32f3a9cb/.stamp_extracted' does not exist.
     8                   File `/Users/sjors/dev/bitcoin/depends/sources/download-stamps/.stamp_fetched-native_libmultiprocess-.hash' does not exist.
     9                  Must remake target `/Users/sjors/dev/bitcoin/depends/sources/download-stamps/.stamp_fetched-native_libmultiprocess-.hash'.
    10mkdir -p /Users/sjors/dev/bitcoin/depends/sources/download-stamps /Users/sjors/dev/bitcoin/depends/sources
    11rm -f /Users/sjors/dev/bitcoin/depends/sources/download-stamps/.stamp_fetched-native_libmultiprocess-.hash
    12touch /Users/sjors/dev/bitcoin/depends/sources/download-stamps/.stamp_fetched-native_libmultiprocess-.hash
    13cd /Users/sjors/dev/bitcoin/depends/sources/download-stamps; ( test -f /Users/sjors/dev/bitcoin/depends/sources/ || (     ( mkdir -p /Users/sjors/dev/bitcoin/depends/work/download/native_libmultiprocess- && echo Fetching  from  && curl --location --fail --connect-timeout 30 --retry 3 -o "/Users/sjors/dev/bitcoin/depends/work/download/native_libmultiprocess-/.temp" "/" && echo "  /Users/sjors/dev/bitcoin/depends/work/download/native_libmultiprocess-/.temp" > /Users/sjors/dev/bitcoin/depends/work/download/native_libmultiprocess-/..hash && shasum -a 256 -c /Users/sjors/dev/bitcoin/depends/work/download/native_libmultiprocess-/..hash && mv /Users/sjors/dev/bitcoin/depends/work/download/native_libmultiprocess-/.temp /Users/sjors/dev/bitcoin/depends/sources/ && rm -rf /Users/sjors/dev/bitcoin/depends/work/download/native_libmultiprocess- ) ||     ( mkdir -p /Users/sjors/dev/bitcoin/depends/work/download/native_libmultiprocess- && echo Fetching  from https://bitcoincore.org/depends-sources && curl --location --fail --connect-timeout 30 --retry 3 -o "/Users/sjors/dev/bitcoin/depends/work/download/native_libmultiprocess-/.temp" "https://bitcoincore.org/depends-sources/" && echo "  /Users/sjors/dev/bitcoin/depends/work/download/native_libmultiprocess-/.temp" > /Users/sjors/dev/bitcoin/depends/work/download/native_libmultiprocess-/..hash && shasum -a 256 -c /Users/sjors/dev/bitcoin/depends/work/download/native_libmultiprocess-/..hash && mv /Users/sjors/dev/bitcoin/depends/work/download/native_libmultiprocess-/.temp /Users/sjors/dev/bitcoin/depends/sources/ && rm -rf /Users/sjors/dev/bitcoin/depends/work/download/native_libmultiprocess- )))
    14Fetching from
    15curl: (3) URL rejected: No host part in the URL
    16Fetching from https://bitcoincore.org/depends-sources
    17  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
    18                                 Dload  Upload   Total   Spent    Left  Speed
    19  0  308k    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
    20curl: (22) The requested URL returned error: 403
    21make: *** [/Users/sjors/dev/bitcoin/depends/sources/download-stamps/.stamp_fetched-native_libmultiprocess-.hash] Error 22
    

    Hope that helps, happy to test more tomorrow.

  6. ryanofsky commented at 9:34 pm on January 28, 2025: collaborator

    There’s no --trace argument for make, did you mean --debug?

    This might be a big hint. My version of make definitely has a –trace (GNU Make 4.4.1). Maybe the problem is caused by a difference in make versions? It is definitely a strange thing that the new code does not seem to be executed in your case. Would be curious to know your make --version and maybe I can experiment with different versions.

  7. Sjors commented at 8:52 am on January 29, 2025: member
    0% which make
    1/usr/bin/make
    2% make --version
    3GNU Make 3.81
    4Copyright (C) 2006  Free Software Foundation, Inc.
    5This is free software; see the source for copying conditions.
    6There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
    7PARTICULAR PURPOSE.
    8
    9This program built for i386-apple-darwin11.3.0
    
  8. Sjors commented at 9:05 am on January 29, 2025: member

    It tried using gmake 4.4.1 installed via Homebrew, but that doesn’t help. Not even with PATH="$HOMEBREW_PREFIX/opt/make/libexec/gnubin:$PATH".

    It does however give me the --trace option and it echos HELLO from your patch, so here you go:

     0% which make
     1/opt/homebrew/opt/make/libexec/gnubin/make
     2% make --trace MULTIPROCESS=1 NO_QT=1 NO_ZMQ=1 NO_WALLET=1 NO_USDT=1 V=1
     3+ echo HELLO HELLO CREATING /Users/sjors/dev/bitcoin/depends/sources/download-stamps/.stamp_fetched-libmultiprocess-.hash
     4HELLO HELLO CREATING /Users/sjors/dev/bitcoin/depends/sources/download-stamps/.stamp_fetched-libmultiprocess-.hash
     5+ '[' -f /Users/sjors/dev/bitcoin/depends/sources/download-stamps/.stamp_fetched-libmultiprocess-.hash ']'
     6+ mkdir -p /Users/sjors/dev/bitcoin/depends/sources/download-stamps/
     7+ tar -c --sort=name --mtime=0 --owner=0 --group=0 --numeric-owner -f /Users/sjors/dev/bitcoin/depends/sources/src-ipc-libmultiprocess.tar -C ../src/ipc/libmultiprocess .
     8tar: Option --sort=name is not supported
     9Usage:
    10  List:    tar -tf <archive-filename>
    11  Extract: tar -xf <archive-filename>
    12  Create:  tar -cf <archive-filename> [filenames...]
    13  Help:    tar --help
    14+ cut '-d ' -f1 /Users/sjors/dev/bitcoin/depends/sources/download-stamps/.stamp_fetched-libmultiprocess-.hash
    15cut: /Users/sjors/dev/bitcoin/depends/sources/download-stamps/.stamp_fetched-libmultiprocess-.hash: No such file or directory
    16+ cat /Users/sjors/dev/bitcoin/depends/sources/download-stamps/.stamp_fetched-libmultiprocess-.hash
    17cat: /Users/sjors/dev/bitcoin/depends/sources/download-stamps/.stamp_fetched-libmultiprocess-.hash: No such file or directory
    18+ echo HELLO HELLO CREATING /Users/sjors/dev/bitcoin/depends/sources/download-stamps/.stamp_fetched-native_libmultiprocess-.hash
    19HELLO HELLO CREATING /Users/sjors/dev/bitcoin/depends/sources/download-stamps/.stamp_fetched-native_libmultiprocess-.hash
    20+ '[' -f /Users/sjors/dev/bitcoin/depends/sources/download-stamps/.stamp_fetched-native_libmultiprocess-.hash ']'
    21+ mkdir -p /Users/sjors/dev/bitcoin/depends/sources/download-stamps/
    22+ tar -c --sort=name --mtime=0 --owner=0 --group=0 --numeric-owner -f /Users/sjors/dev/bitcoin/depends/sources/src-ipc-libmultiprocess.tar -C ../src/ipc/libmultiprocess .
    23tar: Option --sort=name is not supported
    24Usage:
    25  List:    tar -tf <archive-filename>
    26  Extract: tar -xf <archive-filename>
    27  Create:  tar -cf <archive-filename> [filenames...]
    28  Help:    tar --help
    29+ cut '-d ' -f1 /Users/sjors/dev/bitcoin/depends/sources/download-stamps/.stamp_fetched-native_libmultiprocess-.hash
    30cut: /Users/sjors/dev/bitcoin/depends/sources/download-stamps/.stamp_fetched-native_libmultiprocess-.hash: No such file or directory
    31+ cat /Users/sjors/dev/bitcoin/depends/sources/download-stamps/.stamp_fetched-native_libmultiprocess-.hash
    32cat: /Users/sjors/dev/bitcoin/depends/sources/download-stamps/.stamp_fetched-native_libmultiprocess-.hash: No such file or directory
    33Makefile:262: update target 'check-sources' due to: target is .PHONY
    34
    35...
    36
    37funcs.mk:318: update target '/Users/sjors/dev/bitcoin/depends/sources/download-stamps/.stamp_fetched-native_libmultiprocess-.hash' due to: target does not exist
    38mkdir -p /Users/sjors/dev/bitcoin/depends/sources/download-stamps /Users/sjors/dev/bitcoin/depends/sources
    39rm -f /Users/sjors/dev/bitcoin/depends/sources/download-stamps/.stamp_fetched-native_libmultiprocess-.hash
    40touch /Users/sjors/dev/bitcoin/depends/sources/download-stamps/.stamp_fetched-native_libmultiprocess-.hash
    41cd /Users/sjors/dev/bitcoin/depends/sources/download-stamps; ( test -f /Users/sjors/dev/bitcoin/depends/sources/ || (     ( mkdir -p /Users/sjors/dev/bitcoin/depends/work/download/native_libmultiprocess- && echo Fetching  from  && curl --location --fail --connect-timeout 30 --retry 3 -o "/Users/sjors/dev/bitcoin/depends/work/download/native_libmultiprocess-/.temp" "/" && echo "  /Users/sjors/dev/bitcoin/depends/work/download/native_libmultiprocess-/.temp" > /Users/sjors/dev/bitcoin/depends/work/download/native_libmultiprocess-/..hash && shasum -a 256 -c /Users/sjors/dev/bitcoin/depends/work/download/native_libmultiprocess-/..hash && mv /Users/sjors/dev/bitcoin/depends/work/download/native_libmultiprocess-/.temp /Users/sjors/dev/bitcoin/depends/sources/ && rm -rf /Users/sjors/dev/bitcoin/depends/work/download/native_libmultiprocess- ) ||     ( mkdir -p /Users/sjors/dev/bitcoin/depends/work/download/native_libmultiprocess- && echo Fetching  from https://bitcoincore.org/depends-sources && curl --location --fail --connect-timeout 30 --retry 3 -o "/Users/sjors/dev/bitcoin/depends/work/download/native_libmultiprocess-/.temp" "https://bitcoincore.org/depends-sources/" && echo "  /Users/sjors/dev/bitcoin/depends/work/download/native_libmultiprocess-/.temp" > /Users/sjors/dev/bitcoin/depends/work/download/native_libmultiprocess-/..hash && shasum -a 256 -c /Users/sjors/dev/bitcoin/depends/work/download/native_libmultiprocess-/..hash && mv /Users/sjors/dev/bitcoin/depends/work/download/native_libmultiprocess-/.temp /Users/sjors/dev/bitcoin/depends/sources/ && rm -rf /Users/sjors/dev/bitcoin/depends/work/download/native_libmultiprocess- )))
    42Fetching from
    43curl: (3) URL rejected: No host part in the URL
    44Fetching from https://bitcoincore.org/depends-sources
    45  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
    46                                 Dload  Upload   Total   Spent    Left  Speed
    47  0  308k    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
    48curl: (22) The requested URL returned error: 403
    49make: *** [funcs.mk:321: /Users/sjors/dev/bitcoin/depends/sources/download-stamps/.stamp_fetched-native_libmultiprocess-.hash] Error 22
    50sjors@Pzndsr4U depends % 
    
  9. Sjors commented at 9:16 am on January 29, 2025: member
    0% sort --version
    12.3-Apple (190.0.1)
    

    If I also add coreutils/libexec/gnubin to my path it still doesn’t work, because tar doesn’t use it.

    0% which tar
    1/usr/bin/tar
    2
    3% tar --version
    4bsdtar 3.5.3 - libarchive 3.5.3 zlib/1.2.12 liblzma/5.4.3 bz2lib/1.0.8 
    

    Installing gnu-tar finally does the trick. But this seems a bit too invasive.

  10. ryanofsky commented at 11:15 am on January 29, 2025: collaborator

    Great! So there are two problems here. (1) The bigger problem is that the makefile code only seems to run in newer version of make to language differences and (2) the smaller problem is tar doesn’t accept the same options.

    The smaller problem (2) can be fixed by just dropping the options. They were added to make tarball generation more deterministic. But this is not actually important. The only thing that is important is that the build hash needs to change if the tarball contents change, it is fine if build hash changes even when tarball contents do not change, since tarball itself is meant to be just cached and used locally and only rebuilt if removed or the source is touched to have a newer mtime.

    The problem (1) I will need to debug by testing with 3.81 locally. I’m not sure what the issue is but chatgpt had some ideas https://chatgpt.com/share/679a0d79-6e5c-800a-8285-be26d3d017e9

  11. ryanofsky commented at 11:23 am on January 29, 2025: collaborator
    If you want to try something else you could try chatgpt’s suggestion of splitting the define int_get_local_dir into two parts: define int_get_local_dir and define do_local_dir_fetch which seems like it would be cleaner and could avoid some issues. Otherwise I will try 3.81 myself later today.
  12. Sjors commented at 11:33 am on January 29, 2025: member
    I you can make me a patch I’ll give it a try.
  13. hebasto commented at 12:53 pm on January 29, 2025: member

    (1) The bigger problem is that the makefile code only seems to run in newer version of make to language differences

    This is not the first time when Apple’s default make has caused problems.

    Perhaps we should require a minimum version of GNU Make.

  14. Sjors commented at 12:58 pm on January 29, 2025: member

    Or switch depends to cmake?

    I think it’s fine to ask Apple users that want to build depends to brew install make and then use gmake instead of make. As long as we don’t ask them to override the default make.

  15. hebasto commented at 1:17 pm on January 29, 2025: member

    Or switch depends to cmake?

    I think it’s fine to ask Apple users that want to build depends to brew install make and then use gmake instead of make. As long as we don’t ask them to override the default make.

    Btw, the gmake invocation works for GNU Make packages across multiple OSes, with the notable exception of Guix.

  16. ryanofsky commented at 2:28 pm on January 29, 2025: collaborator
    It is pretty funny how old apple’s version of make is. It’s from 2006!. But it turned out to be very easy to support and https://github.com/bitcoin/bitcoin/pull/31741 should be fixed now. The new code is actually simpler than the old code, so I am pleased with the result of this.
  17. ryanofsky commented at 2:56 pm on January 30, 2025: collaborator
    I think original issue seems to be fixed so will close this
  18. ryanofsky closed this on Jan 30, 2025


github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin-core/libmultiprocess. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2025-12-04 19:30 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me