Coder Social home page Coder Social logo

go-build's Introduction

go-build

Build scripts for Ethereum Mist.

OS X

Install all build dependencies.

  • brew install go gmp readline
  • npm install -g appdmg
  • go get -u github.com/ethereum/go-ethereum/cmd/mist
  • Open build.py and edit the (macdeployqt) paths.
  • python build.py

If everything went ok you should now have a Mist.dmg file in your current folder.

Windows

Install all build dependencies.

After all these things have been satisfied go get -u github.com/ethereum/go-ethereum/cmd/mist

Once the compilation is completed you can create a setup binary.

  • Edit build.bat and change qtPath and mingwPath to the paths of your installed versions.
  • right-click the nsi file and select "Compile NSIS Script".

If everything went well you should now have a windows-setup file.

Troubleshooting

Now it will be a miracle if the windows build works in one go. So here are some possible solutions for things that can go wrong:

Expected unqualified-id

qopenglversionfunctions.h:785:43: error: expected unqualified-id before ')' token
     void (QOPENGLF_APIENTRYP MemoryBarrier)(GLbitfield barriers);

See this ticket for a couple of solutions.

pkg-config path

pkg-config might complain about the config path. Setup an environment value PKG_CONFIG_PATH and set it to C:\Qt\Qt5.2.1\5.2.1\mingw48_32\lib\pkgconfig. Adopted to your QT version.

If there are any build problems please create an issue.

go-build's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

go-build's Issues

mist.exe crashes on Windows 10 Technical Preview

I managed to get it built.
When I run ethereum.exe it starts fine:

C:\Ethereum\go\src\github.com\ethereum\go-ethereum\ethereum>ethereum
Qt: Untested Windows version 6.4 detected!
2014/10/07 02:10:17 [CLI] identity created
2014/10/07 02:10:17 [CHAIN] Last block (#0) 08436a4d33c77e6acf013e586a3333ad152f25d31df8b68749d85046810e1f4b
2014/10/07 02:10:17 [CLI] Starting Ethereum(G)/v0.6.7/windows/go1.3.3
2014/10/07 02:10:17 [REACTOR] started
2014/10/07 02:10:17 [SERV] Ready and accepting connections
2014/10/07 02:10:19 [SERV] Server started

But when I run mist.exe it pops a message "mist.exe has stopped working. Windows is checking for a solution to the problem".

The machine is running in VirtualBox and I'm connecting to it through Remote Desktop. Could be a graphics/driver/qt problem. I'll try to run it when connected to the terminal tomorrow.

Windows build error

C:\Windows\system32>go get -u github.com/ethereum/go-ethereum/cmd/mist

github.com/obscuren/qml

In file included from c:\mingw\lib\gcc\mingw32\4.8.1\include\c++\cmath:44:0,
from c:\mingw\lib\gcc\mingw32\4.8.1\include\c++\random:38,
from c:\mingw\lib\gcc\mingw32\4.8.1\include\c++\bits\stl_algo.h:65,
from c:\mingw\lib\gcc\mingw32\4.8.1\include\c++\algorithm:62,
from C:/Qt/5.4/mingw491_32/include/QtCore/qglobal.h:81,
from C:/Qt/5.4/mingw491_32/include/QtCore/qcoreapplication.h:37,
from C:/Qt/5.4/mingw491_32/include/QtWidgets/qapplication.h:37,
from C:/Qt/5.4/mingw491_32/include/QtWidgets/QApplication:1,
from C:\Ethereum\src\github.com\obscuren\qml\cpp/capi.cpp:1,
from C:\Ethereum\src\github.com\obscuren\qml\all.cpp:2:
c:\mingw\include\math.h: In function 'float hypotf(float, float)':
c:\mingw\include\math.h:635:30: error: '_hypot' was not declared in this scope
{ return (float)(_hypot (x, y)); }
^

secp256k throwing after windows build (32 bit go on win64)

Can't run on win64. Builds, but panics when secp256 function is called. Using MinGW32 gmp library as per the instructions. I have generated a working go executable using the gmp lib (5.1.2), so that part works. Output when running the secp256 tests:

=== RUN Test_Secp256_00
--- PASS: Test_Secp256_00 (0.00 seconds)
=== RUN Test_Secp256_01
2014/12/23 15:14:22 --- FAIL: Test_Secp256_01 (0.00 seconds)
panic:  [recovered]
        panic:

goroutine 21 [running]:
runtime.panic(0x5085a0, 0x124be118)
        C:/Go/src/pkg/runtime/panic.c:279 +0xe9
testing.func┬À006()
        C:/Go/src/pkg/testing/testing.go:416 +0x12d
runtime.panic(0x5085a0, 0x124be118)
        C:/Go/src/pkg/runtime/panic.c:248 +0x176
log.Panic(0x0, 0x0, 0x0)
        C:/Go/src/pkg/log/log.go:307 +0xa1
github.com/obscuren/secp256k1-go.VerifyPubkeyValidity(0x124ac4b0, 0x41, 0x41, 0x1)
        C:/Users/Andreas/go/src/github.com/obscuren/secp256k1-go/secp256.go:188 +0x38
github.com/obscuren/secp256k1-go.Test_Secp256_01(0x124ae6c0)
        C:/Users/Andreas/go/src/github.com/obscuren/secp256k1-go/secp256_test.go:45 +0xa6
testing.tRunner(0x124ae6c0, 0x5f292c)
        C:/Go/src/pkg/testing/testing.go:422 +0x87
created by testing.RunTests
        C:/Go/src/pkg/testing/testing.go:504 +0x720

goroutine 16 [chan receive]:
testing.RunTests(0x57ac04, 0x5f2920, 0x9, 0x9, 0x422101)
        C:/Go/src/pkg/testing/testing.go:505 +0x75c
testing.Main(0x57ac04, 0x5f2920, 0x9, 0x9, 0x5f8dc0, 0x0, 0x0, 0x5f8dc0, 0x0, 0x0)
        C:/Go/src/pkg/testing/testing.go:435 +0x6e
main.main()
        github.com/obscuren/secp256k1-go/_test/_testmain.go:63 +0x86

goroutine 17 [syscall]:
runtime.goexit()
        C:/Go/src/pkg/runtime/proc.c:1445

goroutine 19 [finalizer wait]:
runtime.park(0x412d30, 0x5f6998, 0x5f5c89)
        C:/Go/src/pkg/runtime/proc.c:1369 +0x94
runtime.parkunlock(0x5f6998, 0x5f5c89)
        C:/Go/src/pkg/runtime/proc.c:1385 +0x3f
runfinq()
        C:/Go/src/pkg/runtime/mgc0.c:2644 +0xc5
runtime.goexit()
        C:/Go/src/pkg/runtime/proc.c:1445
exit status 2
FAIL    github.com/obscuren/secp256k1-go        0.942s

Some info:

Windows 8.1, 64 bit
go 1.3.3, 32 bit
gcc 4.8.1
gmp-5.1.2-1-mingw32

[Compilation] sys/mman.h - no such file or directory

When compiling on windows, I've got this error.

# gopkg.in/qml.v1
C:\Users\**\Go\src\gopkg.in\qml.v1\testing.go:3:23: fatal error: sys/mman.h: No such file or directory
 // #include <sys/mman.h>

How to get rid of this ? sys/mman.h
with Mingw32

Build and content mismatch

When attempting to downloading latest go-ethereum for OSX I am encountering a different build than indicated.

The latest build as of writing is build #290. Download.

This is built from:
go-build: 50ea31aed1
go-ethereum: a1c830cd3c

There are a couple visual clues that downloaded version is not who it claims to be.

First the background image for the installer is outdated, it was updated here b4de147589 which should be included in this build.
image

Additionally, the version number tagged on Mist.app is outdated. This was updated here 44eb620983 and should be included in this build.
image

While the visible clues are tiny and unimportant, they hint that some other part of the build process is failing, which is a more serious issue.

nsi file compile error: see log for details

MakeNSIS v3.0b1 - Copyright 1999-2014 Contributors
See the file COPYING for license details.
Credits can be found in the Users Manual.

Processing config: C:\Program Files (x86)\NSIS\nsisconf.nsh
Processing default plugins: "C:\Program Files (x86)\NSIS\Plugins\x86-ansi*.dll"

  • Banner::destroy
  • Banner::getWindow
  • Banner::show
  • BgImage::AddImage
  • BgImage::AddText
  • BgImage::Clear
  • BgImage::Destroy
  • BgImage::Redraw
  • BgImage::SetBg
  • BgImage::SetReturn
  • BgImage::Sound
  • Dialer::AttemptConnect
  • Dialer::AutodialHangup
  • Dialer::AutodialOnline
  • Dialer::AutodialUnattended
  • Dialer::GetConnectedState
  • InstallOptions::dialog
  • InstallOptions::initDialog
  • InstallOptions::show
  • LangDLL::LangDialog
  • Math::Script
  • StartMenu::Init
  • StartMenu::Select
  • StartMenu::Show
  • System::Alloc
  • System::Call
  • System::Copy
  • System::Free
  • System::Get
  • System::Int64Op
  • System::Store
  • System::StrAlloc
  • TypeLib::GetLibVersion
  • TypeLib::Register
  • TypeLib::UnRegister
  • UserInfo::GetAccountType
  • UserInfo::GetName
  • UserInfo::GetOriginalAccountType
  • VPatch::GetFileCRC32
  • VPatch::GetFileMD5
  • VPatch::vpatchfile
  • advsplash::show
  • nsDialogs::Create
  • nsDialogs::CreateControl
  • nsDialogs::CreateItem
  • nsDialogs::CreateTimer
  • nsDialogs::GetUserData
  • nsDialogs::KillTimer
  • nsDialogs::OnBack
  • nsDialogs::OnChange
  • nsDialogs::OnClick
  • nsDialogs::OnNotify
  • nsDialogs::SelectFileDialog
  • nsDialogs::SelectFolderDialog
  • nsDialogs::SetRTL
  • nsDialogs::SetUserData
  • nsDialogs::Show
  • nsExec::Exec
  • nsExec::ExecToLog
  • nsExec::ExecToStack
  • nsisdl::download
  • nsisdl::download_quiet
  • splash::show

!define: "MUI_INSERT_NSISCONF"=""

Changing directory to: "C:\Ethereum\Go"

Processing script file: "C:\Ethereum\Go\EthereumBuildEnv.nsi" (ACP)
Invalid command: GOPATH=C:\Ethereum\go
Error in script "C:\Ethereum\Go\EthereumBuildEnv.nsi" on line 1 -- aborting creation process

serpent-go.a(_all.o): malformed pe -- invalid symbol binding 105

After following the instructions on the README, I get the following error.

C:\Users\IEUser\gocode\src\github.com\ethereum\go-ethereum\ethereal>go install
# github.com/ethereum/go-ethereum/ethereal
C:\Users\IEUser\go\pkg\windows_386/github.com/obscuren/serpent-go.a(_all.o):
 malformed pe file: __ZNSt6vectorI4NodeSaIS0_EE12emplace_backIJS0_EEEvDpOT_: invalid symbol binding 105

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.