Giter VIP home page Giter VIP logo

Comments (27)

mkitti avatar mkitti commented on June 21, 2024 1

I was able to build master today using the following.

% make -j8

Base  ────────── 23.872582 seconds
FileWatching  ──  2.695978 seconds
Libdl  ─────────  0.002505 seconds
Artifacts  ─────  0.185451 seconds
SHA  ───────────  0.123926 seconds
Sockets  ───────  0.174381 seconds
LinearAlgebra  ─  4.337545 seconds
Random  ────────  0.505880 seconds
Stdlibs total  ─  8.029323 seconds
Sysimage built. Summary:
Base ────────  23.872582 seconds 74.829%
Stdlibs ─────   8.029323 seconds 25.168%
Total ───────  31.902868 seconds
    JULIA usr/lib/julia/sys-o.a
Collecting and executing precompile statements
└ Collect (Basic: ✓ 843) => Execute ✓ 613
Outputting sysimage file...
Output ──────  22.123140 seconds
    LINK usr/lib/julia/sys.dylib
...
    JULIA stdlib/REPLExt.release.image
 │ Attempted to find missing packages in package registries but no registries are installed.
 └ Use package mode to install a registry. `pkg> registry add` will install the default registries.

% sw_vers
ProductName:            macOS
ProductVersion:         13.6.3
BuildVersion:           22G436

% which make
/usr/bin/make

% make -v
GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for i386-apple-darwin11.3.0

from julia.

mkitti avatar mkitti commented on June 21, 2024 1

The problem seems to be with the Pkg library download and a missing hash / version.

/path/to/julia/deps/tools/jldownload /path/to/julia/stdlib/srccache/Pkg-.tar.gz

I believe this was a fresh clone since I usually do not develop Julia on macOS, but I can check.

from julia.

mkitti avatar mkitti commented on June 21, 2024 1

xref: https://julialang.zulipchat.com/#narrow/stream/274208-helpdesk-.28published.29/topic/Building.20Julia.20on.20macOS.2012.2E6.2E3.20fails/near/421291189

from julia.

mkitti avatar mkitti commented on June 21, 2024 1

Here's a traceback of the relevant Makefile lines:

$$(JLDOWNLOAD) $$@ $$(call $2_TAR_URL,$$($2_SHA1))

$$(eval $$(call git-external,$1,$2,,,$$(BUILDDIR)))

$(foreach module, $(STDLIBS_EXT), $(eval $(call stdlib-external,$(module),$(shell echo $(module) | tr a-z A-Z))))

from julia.

DilumAluthge avatar DilumAluthge commented on June 21, 2024 1

Also, what's the output of make -C stdlib print-PKG_SRC_FILE?

from julia.

mnemnion avatar mnemnion commented on June 21, 2024 1

As of commit 2e876fc7f665cd660, the build process continues to error out in the same place. In case it might be useful, I made a gist of the full build output, with the path scrubbed.

Am I right in thinking no one has been able to reproduce this problem?

from julia.

mbauman avatar mbauman commented on June 21, 2024

gmake 4.4.1

Why gmake? Have you tried using the macOS' default /usr/bin/make?

from julia.

mnemnion avatar mnemnion commented on June 21, 2024

I've tried it both ways, I figured a newer version was better, and that the error messages were somewhat more informative.

Here's what I get attempting to build 71f68b4ce9189e64f320631f3f74ffb3dd10e875 with the building macOS make VERBOSE=1:

/usr/bin/tar -xmUf /path/to/julia/usr-staging/libwhich-99a0ea12689e41164456dba03e93bc40924de880.tar -C /path/to/julia/usr
echo 'libwhich-99a0ea12689e41164456dba03e93bc40924de880 staged-uninstaller' > /path/to/julia/usr/manifest/libwhich
/path/to/julia/deps/tools/jldownload /path/to/julia/stdlib/srccache/Pkg-.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   285  100   285    0     0   3659      0 --:--:-- --:--:-- --:--:--  3701
100   361  100   361    0     0   3501      0 --:--:-- --:--:-- --:--:--  3501
100   513  100   513    0     0   4000      0 --:--:-- --:--:-- --:--:--  4000
100   817  100   817    0     0   5300      0 --:--:-- --:--:-- --:--:--  5300
100  1425  100  1425    0     0   7940      0 --:--:-- --:--:-- --:--:--  7940
100  2641  100  2641    0     0  12842      0 --:--:-- --:--:-- --:--:-- 12842
100  5073  100  5073    0     0  21785      0 --:--:-- --:--:-- --:--:-- 21785
  0   157    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
curl: (22) The requested URL returned error: 502
curl: Failed to extract a sensible file name from the URL to use for storage
curl: (3) URL using bad/illegal format or missing URL
make[1]: *** [/path/to/julia/stdlib/srccache/Pkg-.tar.gz] Error 3
make: *** [julia-stdlib] Error 2

So same failure point, with the details of the error different.

@mkitti, is that a build from a fresh clone? It doesn't look like it's doing the initial downloads, which is where this fails for me. I also notice you're on macOS 13.x, I'm still on 12.x. I'm not quite at the upgrade-the-os stage to get this to build, but I'm getting there.

from julia.

mnemnion avatar mnemnion commented on June 21, 2024

The problem seems to be with the Pkg library download and a missing hash / version.

That was more-or-less what we concluded on the Zulip, and it looked enough like a bug in the build process to be worth filing an issue over. Could still be some weirdness in my system, but I can't figure out how that might be.

from julia.

mkitti avatar mkitti commented on June 21, 2024

Here is what the relevant section should look like via make VERBOSE=1.

echo 'utf8proc-34db3f7954e9298e89f42641ac78e0450f80a70d staged-uninstaller' > /Users/<user>/Documents/src/julia/usr/manifest/utf8proc
[ ! -e /Users/<user>/Documents/src/julia/usr/manifest/libwhich ] || /Library/Developer/CommandLineTools/usr/bin/make uninstall-libwhich
cd /Users/<user>/Documents/src/julia/usr && rm -fv -- $(/usr/bin/tar -tf /Users/<user>/Documents/src/julia/usr-staging/libwhich-99a0ea12689e41164456dba03e93bc40924de880.tar | grep -v '/$')
./tools/libwhich
rm -f /Users/<user>/Documents/src/julia/usr/manifest/libwhich
/usr/bin/tar -xmUf /Users/<user>/Documents/src/julia/usr-staging/libwhich-99a0ea12689e41164456dba03e93bc40924de880.tar -C /Users/<user>/Documents/src/julia/usr
echo 'libwhich-99a0ea12689e41164456dba03e93bc40924de880 staged-uninstaller' > /Users/<user>/Documents/src/julia/usr/manifest/libwhich
/Users/<user>/Documents/src/julia/deps/tools/jldownload /Users/<user>/Documents/src/julia/stdlib/srccache/Pkg-1f16df404a2fbe8642ea3eecc9f4d7064c400a73.tar.gz https://api.github.com/repos/JuliaLang/Pkg.jl/tarball/1f16df404a2fbe8642ea3eecc9f4d7064c400a73
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   477  100   477    0     0   1131      0 --:--:-- --:--:-- --:--:--  1141
100  518k  100  518k    0     0   950k      0 --:--:-- --:--:-- --:--:--  950k

from julia.

mkitti avatar mkitti commented on June 21, 2024

What is the output of cat stdlib/Pkg.version?

Mine is now as follows.

% cat stdlib/Pkg.version 
PKG_BRANCH = master
PKG_SHA1 = 1f16df404a2fbe8642ea3eecc9f4d7064c400a73
PKG_GIT_URL := https://github.com/JuliaLang/Pkg.jl.git
PKG_TAR_URL = https://api.github.com/repos/JuliaLang/Pkg.jl/tarball/$1

That's consistent with https://github.com/JuliaLang/julia/blob/master/stdlib/Pkg.version

from julia.

mkitti avatar mkitti commented on June 21, 2024
% make -C stdlib print-PKG_TAR_URL
PKG_TAR_URL=https://api.github.com/repos/JuliaLang/Pkg.jl/tarball/
% make -C stdlib print-PKG_SHA1   
PKG_SHA1=1f16df404a2fbe8642ea3eecc9f4d7064c400a73
% make -C stdlib print-PKG_SRC_DIR
PKG_SRC_DIR=Pkg-1f16df404a2fbe8642ea3eecc9f4d7064c400a73

from julia.

DilumAluthge avatar DilumAluthge commented on June 21, 2024

What shell do you use, and what version of that shell?

(I doubt it's relevant, but I figured I'd ask, for completeness.)

from julia.

DilumAluthge avatar DilumAluthge commented on June 21, 2024

Another stray thought: do you have Homebrew installed on your machine?

from julia.

DilumAluthge avatar DilumAluthge commented on June 21, 2024

Also, can you give us the output of which -a $tool and $tool --version for each of the following values of $tool:

  1. curl
  2. wget
  3. fetch
  4. git

from julia.

mnemnion avatar mnemnion commented on June 21, 2024
  • fish 3.6.4 (I've tried it under zsh 5.8.1 as well)
  • curl 8.4.0 (/usr/bin)
  • wget: GNU Wget 1.21.4 built on darwin21.6.0. (homebrew)
  • fetch... originally, no fetch! (weird). Alas, installing it doesn't fix the issue, but now it's fetch v0.4.6 in the homebrew directory
  • git 2.43.0 (homebrew)
>  cat stdlib/Pkg.version                                                                                                                    (base)
PKG_BRANCH = master
PKG_SHA1 = 1f16df404a2fbe8642ea3eecc9f4d7064c400a73
PKG_GIT_URL := https://github.com/JuliaLang/Pkg.jl.git
PKG_TAR_URL = https://api.github.com/repos/JuliaLang/Pkg.jl/tarball/$1
➜  make -C stdlib print-PKG_TAR_URL        
PKG_TAR_URL=https://api.github.com/repos/JuliaLang/Pkg.jl/tarball/
➜  make -C stdlib print-PKG_SHA1                   
PKG_SHA1=1f16df404a2fbe8642ea3eecc9f4d7064c400a73
➜  make -C stdlib print-PKG_SRC_DIR         
PKG_SRC_DIR=

That last line seems significant!

from julia.

DilumAluthge avatar DilumAluthge commented on June 21, 2024

What do which -a make and make --version give?

from julia.

DilumAluthge avatar DilumAluthge commented on June 21, 2024

Also:

  1. Do you have a Make.user file? (For most people, the answer will be no.)
  2. Is the environment variable DEPS_GIT defined in your environment? (For most people, the answer will be no.)

from julia.

mnemnion avatar mnemnion commented on June 21, 2024

PKG_SRC_DIR is also blank:

➜  make -C stdlib print-PKG_SRC_DIR   
PKG_SRC_DIR=

make is the standard /usr/bin version 3.81. I've also tried this with homebrew gmake, version 4.4.1. Only Make.user.* files are in the Julia distribution, DEPS_GIT is not defined.

from julia.

mnemnion avatar mnemnion commented on June 21, 2024

I think that was a bad copypaste on my part, PKG_SRC_FILE is also blank:

✗  make -C stdlib print-PKG_SRC_FILE                                                                                                         
PKG_SRC_FILE=

from julia.

mkitti avatar mkitti commented on June 21, 2024

Could it be a shell issue? I usually use bash everywhere.

from julia.

mnemnion avatar mnemnion commented on June 21, 2024

I've tried it with fish and zsh, the latter being the default shell on macOS. Just tried bash because why not, but same error.

from julia.

mbauman avatar mbauman commented on June 21, 2024

It isn't a bad-state issue in my copy of the repo, which I've download fresh every day I've tried.

Are you downloading GitHub's bundled-up .zip? The build process does expect to have state from a git clone... but I can successfully build from the zip, too.

I've never experienced or seen a build failure like this, no. What ENV vars do you have set? Can you try unsetting everything?

from julia.

mnemnion avatar mnemnion commented on June 21, 2024

Are you downloading GitHub's bundled-up .zip?

No, I'll try that next, thanks. I was following the README and using git clone, and in fact didn't realize there were release .zips. But since it's the bundle download process that's failing, this is certainly worth trying.

from julia.

mkitti avatar mkitti commented on June 21, 2024

git clone is how I usually do it.

from julia.

mkitti avatar mkitti commented on June 21, 2024

Could you try hardcoding PKG_SRC_FILE somewhere below line 60 in git-external.mk:

$2_SRC_DIR := $1-$$($2_SHA1)

$2_SRC_DIR := $1-$$($2_SHA1)
PKG_SRC_DIR := Pkg-6859d68579e7970daf00720901cf487563dca0da
$2_SRC_FILE := $$(SRCCACHE)/$$($2_SRC_DIR).tar.gz
$$($2_SRC_FILE): | $$(SRCCACHE)
	$$(JLDOWNLOAD) $$@ $$(call $2_TAR_URL,$$($2_SHA1))

6859d68579e7970daf00720901cf487563dca0da here should be match the output of make -C stdlib print-PKG_SHA1

from julia.

mnemnion avatar mnemnion commented on June 21, 2024

So, in trying to get julia to build with env -i PATH="$PATH" make, the command threw a brand new error showing that something in the build process was trying to call a binary with the same name as one of my custom tools. I haven't figured out which one, or why, or indeed, why stripping ENV down to PATH only made the error show up, but moving the directory containing all the commands which could be triggering it got the build to complete.

So thanks everyone for your help! I feel bad using the issue tracker here but I had long-since run out of theories for how my environment could be causing it. I'll close the issue now, and might attach a comment or two with a more specific postmortem of the build failure, for posterity, and just in case it proves useful for someone, somewhere. You never know.

from julia.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.