Skip to content
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

brew install etlas not working #3

Open
anirudh-eka opened this issue May 23, 2018 · 3 comments
Open

brew install etlas not working #3

anirudh-eka opened this issue May 23, 2018 · 3 comments

Comments

@anirudh-eka
Copy link

Disclaimer: I'm very new to stack and the haskell ecosystem as well as been only a consumer of brew.

Seems that brew install etlas is not working. Typically I expect when I execute brew install *, the package (etlas) will be available as a terminal command.

When I execute it I get the following:

$ brew install etlas
==> Installing etlas from typelead/eta
==> Downloading https://github.com/typelead/etlas/archive/1.2.0.0.tar.gz
Already downloaded: /Users/anirudhd/Library/Caches/Homebrew/etlas-1.2.0.0.tar.gz
==> Downloading https://api.github.com/repos/Jyothsnasrinivas/hackage-security/tarball/190438fa4433e8402dd0d2e0e2170dad02bcf65f
Already downloaded: /Users/anirudhd/Library/Caches/Homebrew/etlas--hackage-security-1.2.0.0.com
==> stack setup
==> stack install etlas --local-bin-path=/usr/local/Cellar/etlas/1.2.0.0/bin

It simply hangs at stack install etlas. I was eventually able to install etlas by cloning the repository, cd-ing into it and running

stack install etlas --local-bin-path=/usr/local/Cellar/etlas/1.2.0.0/bin

which seems to be what the brew script is also doing internally. I think one source of the problem maybe because stack is not able to resolve where to get etlas as it is not on stackage where it normally looks or available locally. It looks like brew is able to download the tar (Downloading https://github.com/typelead/etlas/archive/1.2.0.0.tar.gz), but is unable to use that as the source for the stack install. I'm not sure how to specify that with stack install.

Any ideas how to solve this?

@anirudh-eka
Copy link
Author

After more investigation into how brew formulas work in the documentation, it says:

When your code in the install function is run, the current working directory is set to the extracted tarball.

I guess the idea is then when stack install is executed the etlas repo will be available. Something in this step I'm guessing is failing.

@rahulmutt
Copy link
Member

@anirudh-eka Etlas is known to take several minutes (expect 5-10 mins depending on your RAM) to build, so it may not be hanging. Are you getting any error messages? The recommend way to install etlas is via the binaries.

@md5
Copy link

md5 commented May 12, 2021

I'll probably just install via the binaries and skip brew install etlas for the time being, but I wanted to note that I'm running into trouble using this tap. I'm seeing this failure in my installation:

==> stack install etlas --local-bin-path=/usr/local/Cellar/etlas/1.5.1.0/bin
Last 15 lines from /Users/mike/Library/Logs/Homebrew/etlas/02.stack:
Cabal               > [76 of 81] Compiling Distribution.Simple.Configure ( Distribution/Simple/Configure.hs, .stack-work/dist/x86_64-osx/Cabal-1.22.5.0/build/Distribution/Simple/Configure.o )
Cabal               > [77 of 81] Compiling Distribution.Simple.Build ( Distribution/Simple/Build.hs, .stack-work/dist/x86_64-osx/Cabal-1.22.5.0/build/Distribution/Simple/Build.o )
Cabal               > [78 of 81] Compiling Distribution.Simple.Haddock ( Distribution/Simple/Haddock.hs, .stack-work/dist/x86_64-osx/Cabal-1.22.5.0/build/Distribution/Simple/Haddock.o )
Cabal               > [79 of 81] Compiling Distribution.Simple.Test.ExeV10 ( Distribution/Simple/Test/ExeV10.hs, .stack-work/dist/x86_64-osx/Cabal-1.22.5.0/build/Distribution/Simple/Test/ExeV10.o )
Cabal               > [80 of 81] Compiling Distribution.Simple.Test ( Distribution/Simple/Test.hs, .stack-work/dist/x86_64-osx/Cabal-1.22.5.0/build/Distribution/Simple/Test.o )
Cabal               > [81 of 81] Compiling Distribution.Simple ( Distribution/Simple.hs, .stack-work/dist/x86_64-osx/Cabal-1.22.5.0/build/Distribution/Simple.o )
Cabal               > In-place registering Cabal-1.22.8.0...
Cabal               > copy/register
Cabal               > Installing library in
Cabal               > /private/tmp/etlas-20210511-95700-vg7ok1/etlas-1.5.1.0/.brew_home/.stack/snapshots/x86_64-osx/9849c09a4f9230b0f63d09c48dcf2ea551c3e622414160bae205e7975902494d/7.10.3/lib/x86_64-osx-ghc-7.10.3/Cabal-1.22.8.0-Ku2CIqstfjg7Z2SNHUypWH
Cabal               > Registering Cabal-1.22.8.0...

--  While building package alex-3.1.7 (scroll up to its section to see the error) using:
      /private/tmp/stack-394e167ea98b4c1e/alex-3.1.7/.stack-work/dist/x86_64-osx/Cabal-1.22.5.0/setup/setup --builddir=.stack-work/dist/x86_64-osx/Cabal-1.22.5.0 build --ghc-options ""
    Process exited with code: ExitFailure 1

If I look back in 02.stack for the installation logs for alex, I see this:

text                > [30 of 44] Compiling Data.Text.IO     ( Data/Text/IO.hs, .stack-work/dist/x86_64-osx/Cabal-1.22.5.0/build/Data/Text/IO.o )
alex                > Configuring alex-3.1.7...
text                > [31 of 44] Compiling Data.Text.Internal.Lazy ( Data/Text/Internal/Lazy.hs, .stack-work/dist/x86_64-osx/Cabal-1.22.5.0/build/Data/Text/Internal/Lazy.o )
alex                > clang: warning: -Wl,-headerpad_max_install_names: 'linker' input unused [-Wunused-command-line-argument]
alex                > clang: warning: argument unused during compilation: '-L/usr/local/lib' [-Wunused-command-line-argument]
alex                > clang: warning: argument unused during compilation: '-L/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Li
brary/Frameworks/OpenGL.framework/Versions/Current/Libraries' [-Wunused-command-line-argument]
text                > [32 of 44] Compiling Data.Text.Internal.Lazy.Fusion ( Data/Text/Internal/Lazy/Fusion.hs, .stack-work/dist/x86_64-osx/Cabal-1.22.5.0/build/Data/Text/Internal/La
zy/Fusion.o )
alex                > build
alex                > Building alex-3.1.7...
alex                > Preprocessing executable 'alex' for alex-3.1.7...
alex                > setup: The program 'happy' is required but it could not be found

I don't see any other references to happy in the log, so it doesn't seem like stack install etlas is attempting to install happy before trying to install alex.

Edit to add: I'm not actually able to download the binary either... I'm getting an NXDOMAIN for https://cdnverify.eta-lang.org/eta-binaries//etlas-1.5.0.0/binaries/x86_64-osx/etlas

Looks like cdnverify.eta-lang.org successfully resolves to a CNAME pointing to etabinaries.azureedge.net, but that etabinaries.azureedge.net itself is not resolving. This seems to be covered at typelead/etlas#109 on further inspection.

Based on guidance in typelead/etlas#109, I thought I'd try the source installation, but my install.sh bombed out with this error (on branch stable):

Error: While constructing the build plan, the following exceptions were encountered:

In the dependencies for eta-0.8.6.5:
    hpc needed, but this GHC boot package has been pruned (issue #4510); you need to add the package explicitly to extra-deps  (latest matching version is 0.6.0.3)
needed since eta is a build target.

Some different approaches to resolving this:

  * Recommended action: try adding the following to your extra-deps in /Users/mike/Code/eta/stack.yaml:

- hpc-0.6.0.3@sha256:de3f7982345d315f1d7713df38b4f2cf09bd274f7d64dffec0cf2a0d9c8aab19,1185

Plan construction failed.

Guess I won't be trying out Eta today... Looks like a cool project, so I look forward to being able to work out these issues at some point soon.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants