Influxdb: [0.10.0] Unable to build on arm (rpi2)

Created on 6 Feb 2016  ·  8Comments  ·  Source: influxdata/influxdb

Hi,

I used to build ARM version of influxdb for a few versions as described on my blog and it worked so far.

But doing the same with 0.10.0 or following your build instructions, it fails with:

pi@cixi ~/gocodez/src/github.com/influxdata/influxdb $ ./package.sh -t deb -p 0.10.0

Starting package process...

/home/pi/.gvm/bin/gvm
Now using version go1.4.3
GOPATH (/home/pi/gocodez) looks sane, using /home/pi/gocodez for installation.
Déjà sur 'master'
Votre branche est à jour avec 'origin/master'.
# github.com/influxdata/influxdb/cmd/influx_stress
usage: 5l [options] main.5
  -1    use alternate profiling code
  -B info
        define ELF NT_GNU_BUILD_ID note
  -C    check Go calls to C code
  -D addr
        data address
  -E sym
        entry symbol
  -G    debug pseudo-ops
  -I interp
        set ELF interp
  -L dir
        add dir to library path
  -H head
        header type
  -K    add stack underflow checks
  -M    disable software div/mod
  -O    print pc-line tables
  -Q    debug byte-register code gen
  -P    debug code generation
  -R rnd
        address rounding
  -S    check type signatures
  -T addr
        text address
  -V    print version and exit
  -W    disassemble input
  -X name value
        define string data
  -Z    clear stack frame on entry
  -a    disassemble output
  -c    dump call graph
  -d    disable dynamic executable
  -extld ld
        linker to run in external mode
  -extldflags ldflags
        flags for external linker
  -f    ignore version mismatch
  -g    disable go package data checks
  -installsuffix suffix
        pkg directory suffix
  -k sym
        set field tracking symbol
  -linkmode mode
        set link mode (internal, external, auto)
  -n    dump symbol table
  -o outfile
        set output file
  -r dir1:dir2:...
        set ELF dynamic linker search path
  -race
        enable race detector
  -s    disable symbol table
  -shared
        generate shared object (implies -linkmode external)
  -tmpdir dir
        leave temporary files in this directory
  -u    reject unsafe packages
  -v    print link trace
  -w    disable DWARF generation
# github.com/influxdata/influxdb/services/collectd/test_client
usage: 5l [options] main.5
  -1    use alternate profiling code
  -B info
        define ELF NT_GNU_BUILD_ID note
  -C    check Go calls to C code
  -D addr
        data address
  -E sym
        entry symbol
  -G    debug pseudo-ops
  -I interp
        set ELF interp
  -L dir
        add dir to library path
  -H head
        header type
  -K    add stack underflow checks
  -M    disable software div/mod
  -O    print pc-line tables
  -Q    debug byte-register code gen
  -P    debug code generation
  -R rnd
        address rounding
  -S    check type signatures
  -T addr
        text address
  -V    print version and exit
  -W    disassemble input
  -X name value
        define string data
  -Z    clear stack frame on entry
  -a    disassemble output
  -c    dump call graph
  -d    disable dynamic executable
  -extld ld
        linker to run in external mode
  -extldflags ldflags
        flags for external linker
  -f    ignore version mismatch
  -g    disable go package data checks
  -installsuffix suffix
        pkg directory suffix
  -k sym
        set field tracking symbol
  -linkmode mode
        set link mode (internal, external, auto)
  -n    dump symbol table
  -o outfile
        set output file
  -r dir1:dir2:...
        set ELF dynamic linker search path
  -race
        enable race detector
  -s    disable symbol table
  -shared
        generate shared object (implies -linkmode external)
  -tmpdir dir
        leave temporary files in this directory
  -u    reject unsafe packages
  -v    print link trace
  -w    disable DWARF generation
# github.com/influxdata/influxdb/cmd/influx
usage: 5l [options] main.5
  -1    use alternate profiling code
  -B info
        define ELF NT_GNU_BUILD_ID note
  -C    check Go calls to C code
  -D addr
        data address
  -E sym
        entry symbol
  -G    debug pseudo-ops
  -I interp
        set ELF interp
  -L dir
        add dir to library path
  -H head
        header type
  -K    add stack underflow checks
  -M    disable software div/mod
  -O    print pc-line tables
  -Q    debug byte-register code gen
  -P    debug code generation
  -R rnd
        address rounding
  -S    check type signatures
  -T addr
        text address
  -V    print version and exit
  -W    disassemble input
  -X name value
        define string data
  -Z    clear stack frame on entry
  -a    disassemble output
  -c    dump call graph
  -d    disable dynamic executable
  -extld ld
        linker to run in external mode
  -extldflags ldflags
        flags for external linker
  -f    ignore version mismatch
  -g    disable go package data checks
  -installsuffix suffix
        pkg directory suffix
  -k sym
        set field tracking symbol
  -linkmode mode
        set link mode (internal, external, auto)
  -n    dump symbol table
  -o outfile
        set output file
  -r dir1:dir2:...
        set ELF dynamic linker search path
  -race
        enable race detector
  -s    disable symbol table
  -shared
        generate shared object (implies -linkmode external)
  -tmpdir dir
        leave temporary files in this directory
  -u    reject unsafe packages
  -v    print link trace
  -w    disable DWARF generation
# github.com/influxdata/influxdb/cmd/influx_inspect
usage: 5l [options] main.5
  -1    use alternate profiling code
  -B info
        define ELF NT_GNU_BUILD_ID note
  -C    check Go calls to C code
  -D addr
        data address
  -E sym
        entry symbol
  -G    debug pseudo-ops
  -I interp
        set ELF interp
  -L dir
        add dir to library path
  -H head
        header type
  -K    add stack underflow checks
  -M    disable software div/mod
  -O    print pc-line tables
  -Q    debug byte-register code gen
  -P    debug code generation
  -R rnd
        address rounding
  -S    check type signatures
  -T addr
        text address
  -V    print version and exit
  -W    disassemble input
  -X name value
        define string data
  -Z    clear stack frame on entry
  -a    disassemble output
  -c    dump call graph
  -d    disable dynamic executable
  -extld ld
        linker to run in external mode
  -extldflags ldflags
        flags for external linker
  -f    ignore version mismatch
  -g    disable go package data checks
  -installsuffix suffix
        pkg directory suffix
  -k sym
        set field tracking symbol
  -linkmode mode
        set link mode (internal, external, auto)
  -n    dump symbol table
  -o outfile
        set output file
  -r dir1:dir2:...
        set ELF dynamic linker search path
  -race
        enable race detector
  -s    disable symbol table
  -shared
        generate shared object (implies -linkmode external)
  -tmpdir dir
        leave temporary files in this directory
  -u    reject unsafe packages
  -v    print link trace
  -w    disable DWARF generation
# github.com/influxdata/influxdb/cmd/influx_tsm
usage: 5l [options] main.5
  -1    use alternate profiling code
  -B info
        define ELF NT_GNU_BUILD_ID note
  -C    check Go calls to C code
  -D addr
        data address
  -E sym
        entry symbol
  -G    debug pseudo-ops
  -I interp
        set ELF interp
  -L dir
        add dir to library path
  -H head
        header type
  -K    add stack underflow checks
  -M    disable software div/mod
  -O    print pc-line tables
  -Q    debug byte-register code gen
  -P    debug code generation
  -R rnd
        address rounding
  -S    check type signatures
  -T addr
        text address
  -V    print version and exit
  -W    disassemble input
  -X name value
        define string data
  -Z    clear stack frame on entry
  -a    disassemble output
  -c    dump call graph
  -d    disable dynamic executable
  -extld ld
        linker to run in external mode
  -extldflags ldflags
        flags for external linker
  -f    ignore version mismatch
  -g    disable go package data checks
  -installsuffix suffix
        pkg directory suffix
  -k sym
        set field tracking symbol
  -linkmode mode
        set link mode (internal, external, auto)
  -n    dump symbol table
  -o outfile
        set output file
  -r dir1:dir2:...
        set ELF dynamic linker search path
  -race
        enable race detector
  -s    disable symbol table
  -shared
        generate shared object (implies -linkmode external)
  -tmpdir dir
        leave temporary files in this directory
  -u    reject unsafe packages
  -v    print link trace
  -w    disable DWARF generation
# github.com/influxdata/influxdb/cmd/influxd
usage: 5l [options] main.5
  -1    use alternate profiling code
  -B info
        define ELF NT_GNU_BUILD_ID note
  -C    check Go calls to C code
  -D addr
        data address
  -E sym
        entry symbol
  -G    debug pseudo-ops
  -I interp
        set ELF interp
  -L dir
        add dir to library path
  -H head
        header type
  -K    add stack underflow checks
  -M    disable software div/mod
  -O    print pc-line tables
  -Q    debug byte-register code gen
  -P    debug code generation
  -R rnd
        address rounding
  -S    check type signatures
  -T addr
        text address
  -V    print version and exit
  -W    disassemble input
  -X name value
        define string data
  -Z    clear stack frame on entry
  -a    disassemble output
  -c    dump call graph
  -d    disable dynamic executable
  -extld ld
        linker to run in external mode
  -extldflags ldflags
        flags for external linker
  -f    ignore version mismatch
  -g    disable go package data checks
  -installsuffix suffix
        pkg directory suffix
  -k sym
        set field tracking symbol
  -linkmode mode
        set link mode (internal, external, auto)
  -n    dump symbol table
  -o outfile
        set output file
  -r dir1:dir2:...
        set ELF dynamic linker search path
  -race
        enable race detector
  -s    disable symbol table
  -shared
        generate shared object (implies -linkmode external)
  -tmpdir dir
        leave temporary files in this directory
  -u    reject unsafe packages
  -v    print link trace
  -w    disable DWARF generation
# github.com/influxdata/influxdb/stress/stress_test_server
usage: 5l [options] main.5
  -1    use alternate profiling code
  -B info
        define ELF NT_GNU_BUILD_ID note
  -C    check Go calls to C code
  -D addr
        data address
  -E sym
        entry symbol
  -G    debug pseudo-ops
  -I interp
        set ELF interp
  -L dir
        add dir to library path
  -H head
        header type
  -K    add stack underflow checks
  -M    disable software div/mod
  -O    print pc-line tables
  -Q    debug byte-register code gen
  -P    debug code generation
  -R rnd
        address rounding
  -S    check type signatures
  -T addr
        text address
  -V    print version and exit
  -W    disassemble input
  -X name value
        define string data
  -Z    clear stack frame on entry
  -a    disassemble output
  -c    dump call graph
  -d    disable dynamic executable
  -extld ld
        linker to run in external mode
  -extldflags ldflags
        flags for external linker
  -f    ignore version mismatch
  -g    disable go package data checks
  -installsuffix suffix
        pkg directory suffix
  -k sym
        set field tracking symbol
  -linkmode mode
        set link mode (internal, external, auto)
  -n    dump symbol table
  -o outfile
        set output file
  -r dir1:dir2:...
        set ELF dynamic linker search path
  -race
        enable race detector
  -s    disable symbol table
  -shared
        generate shared object (implies -linkmode external)
  -tmpdir dir
        leave temporary files in this directory
  -u    reject unsafe packages
  -v    print link trace
  -w    disable DWARF generation
# github.com/influxdata/influxdb/tests/urlgen
usage: 5l [options] main.5
  -1    use alternate profiling code
  -B info
        define ELF NT_GNU_BUILD_ID note
  -C    check Go calls to C code
  -D addr
        data address
  -E sym
        entry symbol
  -G    debug pseudo-ops
  -I interp
        set ELF interp
  -L dir
        add dir to library path
  -H head
        header type
  -K    add stack underflow checks
  -M    disable software div/mod
  -O    print pc-line tables
  -Q    debug byte-register code gen
  -P    debug code generation
  -R rnd
        address rounding
  -S    check type signatures
  -T addr
        text address
  -V    print version and exit
  -W    disassemble input
  -X name value
        define string data
  -Z    clear stack frame on entry
  -a    disassemble output
  -c    dump call graph
  -d    disable dynamic executable
  -extld ld
        linker to run in external mode
  -extldflags ldflags
        flags for external linker
  -f    ignore version mismatch
  -g    disable go package data checks
  -installsuffix suffix
        pkg directory suffix
  -k sym
        set field tracking symbol
  -linkmode mode
        set link mode (internal, external, auto)
  -n    dump symbol table
  -o outfile
        set output file
  -r dir1:dir2:...
        set ELF dynamic linker search path
  -race
        enable race detector
  -s    disable symbol table
  -shared
        generate shared object (implies -linkmode external)
  -tmpdir dir
        leave temporary files in this directory
  -u    reject unsafe packages
  -v    print link trace
  -w    disable DWARF generation
Build failed, unable to create package -- aborting
pi@cixi ~/gocodez/src/github.com/influxdata/influxdb $ 

Any idea on why it fails ?

Thanks,
Nicolas

arepackaging

Most helpful comment

Just to say it works well with build.py script as follow:

$ ./build.py --package --version=0.10.3 --arch=armhf

Full process:

$ wget https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer
$ chmod +x gvm-installer 
$ ./gvm-installer
Cloning from https://github.com/moovweb/gvm.git to /home/pi/.gvm
No existing Go versions detected
Installed GVM v1.0.22
Please restart your terminal session or to get started right away run
 `source /home/pi/.gvm/scripts/gvm`
$ source /home/pi/.gvm/scripts/gvm
$ gvm install go1.4.3
Downloading Go source...
Installing go1.4.3...
 * Compiling...
$ gvm use go1.4.3 --default
Now using version go1.4.3
$ mkdir $HOME/gocodez
$ export GOPATH=$HOME/gocodez
$ go get github.com/influxdata/influxdb
$ cd $GOPATH/src/github.com/influxdata/influxdb
$ ./build.py --package --version=0.10.3 --arch=armhf
$ sudo dpkg -i build/influxdb_0.10.3-1_armhf.deb

All 8 comments

@nsteinmetz What is the output of a go install ./...?

You might also want to try the build.py script. Just running ./build.py --package should give you similar results to the package.sh script (by default, output goes to ./build/).

Hi,

At first, go install ./... returned nothing.

I had a space disk issue on my RPi ; so I restarted from scratch and then, I had:

pi@cixi ~/gocodez/src/github.com/influxdb/influxdb $ go install ./...
tsdb/engine.go:12:2: cannot find package "github.com/boltdb/bolt" in any of:
    /home/pi/.gvm/gos/go1.4.3/src/github.com/boltdb/bolt (from $GOROOT)
    /home/pi/gocodez/src/github.com/boltdb/bolt (from $GOPATH)
cluster/rpc.go:7:2: cannot find package "github.com/gogo/protobuf/proto" in any of:
    /home/pi/.gvm/gos/go1.4.3/src/github.com/gogo/protobuf/proto (from $GOROOT)
    /home/pi/gocodez/src/github.com/gogo/protobuf/proto (from $GOPATH)
services/meta/handler.go:19:2: cannot find package "github.com/hashicorp/raft" in any of:
    /home/pi/.gvm/gos/go1.4.3/src/github.com/hashicorp/raft (from $GOROOT)
    /home/pi/gocodez/src/github.com/hashicorp/raft (from $GOPATH)
services/meta/raft_state.go:15:2: cannot find package "github.com/hashicorp/raft-boltdb" in any of:
    /home/pi/.gvm/gos/go1.4.3/src/github.com/hashicorp/raft-boltdb (from $GOROOT)
    /home/pi/gocodez/src/github.com/hashicorp/raft-boltdb (from $GOPATH)
services/meta/client.go:25:2: cannot find package "golang.org/x/crypto/bcrypt" in any of:
    /home/pi/.gvm/gos/go1.4.3/src/golang.org/x/crypto/bcrypt (from $GOROOT)
    /home/pi/gocodez/src/golang.org/x/crypto/bcrypt (from $GOPATH)
cluster/client_pool.go:7:2: cannot find package "gopkg.in/fatih/pool.v2" in any of:
    /home/pi/.gvm/gos/go1.4.3/src/gopkg.in/fatih/pool.v2 (from $GOROOT)
    /home/pi/gocodez/src/gopkg.in/fatih/pool.v2 (from $GOPATH)
cmd/influx/cli/cli.go:25:2: cannot find package "github.com/peterh/liner" in any of:
    /home/pi/.gvm/gos/go1.4.3/src/github.com/peterh/liner (from $GOROOT)
    /home/pi/gocodez/src/github.com/peterh/liner (from $GOPATH)
tsdb/engine/tsm1/float.go:17:2: cannot find package "github.com/dgryski/go-bits" in any of:
    /home/pi/.gvm/gos/go1.4.3/src/github.com/dgryski/go-bits (from $GOROOT)
    /home/pi/gocodez/src/github.com/dgryski/go-bits (from $GOPATH)
tsdb/engine/tsm1/float.go:18:2: cannot find package "github.com/dgryski/go-bitstream" in any of:
    /home/pi/.gvm/gos/go1.4.3/src/github.com/dgryski/go-bitstream (from $GOROOT)
    /home/pi/gocodez/src/github.com/dgryski/go-bitstream (from $GOPATH)
cmd/influx_inspect/tsm.go:15:2: cannot find package "github.com/golang/snappy" in any of:
    /home/pi/.gvm/gos/go1.4.3/src/github.com/golang/snappy (from $GOROOT)
    /home/pi/gocodez/src/github.com/golang/snappy (from $GOPATH)
tsdb/engine/tsm1/int.go:27:2: cannot find package "github.com/jwilder/encoding/simple8b" in any of:
    /home/pi/.gvm/gos/go1.4.3/src/github.com/jwilder/encoding/simple8b (from $GOROOT)
    /home/pi/gocodez/src/github.com/jwilder/encoding/simple8b (from $GOPATH)
stress/config.go:6:2: cannot find package "github.com/BurntSushi/toml" in any of:
    /home/pi/.gvm/gos/go1.4.3/src/github.com/BurntSushi/toml (from $GOROOT)
    /home/pi/gocodez/src/github.com/BurntSushi/toml (from $GOPATH)
services/httpd/handler.go:20:2: cannot find package "github.com/bmizerany/pat" in any of:
    /home/pi/.gvm/gos/go1.4.3/src/github.com/bmizerany/pat (from $GOROOT)
    /home/pi/gocodez/src/github.com/bmizerany/pat (from $GOPATH)
cmd/influxd/run/server.go:33:2: cannot find package "github.com/influxdb/usage-client/v1" in any of:
    /home/pi/.gvm/gos/go1.4.3/src/github.com/influxdb/usage-client/v1 (from $GOROOT)
    /home/pi/gocodez/src/github.com/influxdb/usage-client/v1 (from $GOPATH)
services/collectd/service.go:18:2: cannot find package "github.com/kimor79/gollectd" in any of:
    /home/pi/.gvm/gos/go1.4.3/src/github.com/kimor79/gollectd (from $GOROOT)
    /home/pi/gocodez/src/github.com/kimor79/gollectd (from $GOPATH)
statik/statik.go:4:2: cannot find package "github.com/rakyll/statik/fs" in any of:
    /home/pi/.gvm/gos/go1.4.3/src/github.com/rakyll/statik/fs (from $GOROOT)
    /home/pi/gocodez/src/github.com/rakyll/statik/fs (from $GOPATH)
services/collectd/test_client/client.go:4:2: cannot find package "collectd.org/api" in any of:
    /home/pi/.gvm/gos/go1.4.3/src/collectd.org/api (from $GOROOT)
    /home/pi/gocodez/src/collectd.org/api (from $GOPATH)
services/collectd/test_client/client.go:5:2: cannot find package "collectd.org/network" in any of:
    /home/pi/.gvm/gos/go1.4.3/src/collectd.org/network (from $GOROOT)
    /home/pi/gocodez/src/collectd.org/network (from $GOPATH)
stress/stress_test_server/server.go:6:2: cannot find package "github.com/paulbellamy/ratecounter" in any of:
    /home/pi/.gvm/gos/go1.4.3/src/github.com/paulbellamy/ratecounter (from $GOROOT)
    /home/pi/gocodez/src/github.com/paulbellamy/ratecounter (from $GOPATH)

Previously (ie when I submitted the bug), I think I add all dependencies resolved ; so maybe it was linked to the space issue but I didn't noticed it :-/

So doing build.py --package:

pi@cixi ~/gocodez/src/github.com/influxdb/influxdb $ ./build.py --package

Checking environment:
- GOPATH -> /home/pi/gocodez
- GOBIN -> None
- GOROOT -> /home/pi/.gvm/gos/go1.4.3

Checking for dependencies:
- git -> /usr/bin/git
- go -> /home/pi/.gvm/gos/go1.4.3/bin/go
- gvm (optional) -> /home/pi/.gvm/bin/gvm
- fpm (optional) -> /usr/local/bin/fpm
- rpmbuild (optional) -> ?

Retrieving Go dependencies...
Moving back to branch 'master'...

-------------------------

Build Plan:
- version: v0.10.0
- commit: 7d03cd8
- branch: master
- platform: linux
- arch: arm
- ARM version: 6
- nightly? false
- race enabled? false

Starting build...
Building 'build/influx_stress'...
Building 'build/influxd'...
Building 'build/influx_inspect'...
Building 'build/influx'...
Building 'build/influx_tsm'...

-------------------------

Packaging...
Creating package filesystem at root: /tmp/influxdb-build.bUbTsR/linux/arm/influxdb-v0.10.0-1
Copying scripts and sample configuration to build directory
Packaging directory '/tmp/influxdb-build.bUbTsR/linux/arm/influxdb-v0.10.0-1' as 'deb'...
MD5(build/influxdb_v0.10.0-1_arm.deb) = b17c22e13b68ed93be26371d682748ec
Packaging directory '/tmp/influxdb-build.bUbTsR/linux/arm/influxdb-v0.10.0-1' as 'rpm'...


Executed command failed!
-- Command run was: fpm -f -s dir --log error --vendor InfluxData --url https://github.com/influxdata/influxdb --after-install scripts/post-install.sh --before-install scripts/pre-install.sh --after-remove scripts/post-uninstall.sh --license MIT --maintainer [email protected] --directories /var/log/influxdb --directories /var/lib/influxdb --description "Distributed time-series database." --config-files /etc/influxdb/influxdb.conf --config-files /etc/logrotate.d/influxdb --name influxdb -a arm -t rpm --version v0.10.0 --iteration 1 -C /tmp/influxdb-build.bUbTsR/linux/arm/influxdb-v0.10.0-1 -p build --depends coreutils --rpm-posttrans scripts/post-install.sh
-- Failure was: {:timestamp=>"2016-02-08T23:08:05.624250+0100", :message=>"Need executable 'rpmbuild' to convert dir to rpm", :level=>:error}


Stopping.

But I can't upgrade my previous package :

sudo dpkg -i ./build/influxdb_v0.10.0-1_arm.deb
dpkg: erreur de traitement de l'archive ./build/influxdb_v0.10.0-1_arm.deb (--install) :
 analyse du fichier '/var/lib/dpkg/tmp.ci/control' vers la ligne 2 paquet 'influxdb' :
 erreur dans la chaîne du champ « Version » : « v0.10.0-1 »: le numéro de version ne commence pas par un chiffre 
Des erreurs ont été rencontrées pendant l'exécution :
 ./build/influxdb_v0.10.0-1_arm.deb

it says that version v0.10.0-1 does not start with a number.

But maybe this should be another bug?

@nsteinmetz Ah, sorry, try running this instead:

./build.py --package --version=0.10.1

The 'version does not start with a number' error will be fixed shortly. It will still break on RPM package step, but if you don't need RPM's then it can be ignored.

Hi @rossmcdonald,

Almost:

influx  influxd  influxdb_0.10.0-1_arm.deb  influxdb_0.10.1-1_arm.deb  influx_inspect  influx_stress  influx_tsm
pi@cixi ~/gocodez/src/github.com/influxdb/influxdb $ sudo dpkg -i build/influxdb_0.10.1-1_arm.deb
dpkg: erreur de traitement de l'archive build/influxdb_0.10.1-1_arm.deb (--install) :
 l'architecture du paquet (arm) ne correspond pas à celle du système (armhf)
Des erreurs ont été rencontrées pendant l'exécution :
 build/influxdb_0.10.1-1_arm.deb

It says that package arch (arm) does not fit system arch (armhf)

If I try with --arch=armhf, it fails:

pi@cixi ~/gocodez/src/github.com/influxdb/influxdb $ ./build.py --package --version=0.10.1 --arch=armhf

Checking environment:
- GOPATH -> /home/pi/gocodez
- GOBIN -> None
- GOROOT -> /home/pi/.gvm/gos/go1.4.3

Checking for dependencies:
- git -> /usr/bin/git
- go -> /home/pi/.gvm/gos/go1.4.3/bin/go
- gvm (optional) -> /home/pi/.gvm/bin/gvm
- fpm (optional) -> /usr/local/bin/fpm
- rpmbuild (optional) -> ?

Retrieving Go dependencies...
Moving back to branch 'master'...

-------------------------

Build Plan:
- version: 0.10.1
- commit: 7d03cd8
- branch: master
- platform: linux
- arch: armhf
- nightly? false
- race enabled? false

Starting build...
Building 'build/influx_stress'...


Executed command failed!
-- Command run was: GOOS=linux GOARCH=armhf go build -o build/influx_stress -ldflags="-X main.buildTime '2016-02-09T06:56:04.862575' -X main.version 0.10.1 -X main.branch master -X main.commit 7d03cd859e0d5249facb227982929637d98d33cd" ./cmd/influx_stress/influx_stress.go
-- Failure was: 2016/02/09 07:56:04 unsupported GOARCH armhf


Stopping.

@nsteinmetz
Can you try with:
./build.py --package --version=0.10.1 --arch=arm --pkgarch=armhf

Hi @markusr

Here's the output:

pi@cixi ~/gocodez/src/github.com/influxdb/influxdb $ ./build.py --package --version=0.10.1 --arch=arm --pkgarch=armhf

Checking environment:
- GOPATH -> /home/pi/gocodez
- GOBIN -> None
- GOROOT -> /home/pi/.gvm/gos/go1.4.3

Checking for dependencies:
- git -> /usr/bin/git
- go -> /home/pi/.gvm/gos/go1.4.3/bin/go
- gvm (optional) -> /home/pi/.gvm/bin/gvm
- fpm (optional) -> /usr/local/bin/fpm
- rpmbuild (optional) -> ?

Retrieving Go dependencies...
Moving back to branch 'master'...

-------------------------

Build Plan:
- version: 0.10.1
- commit: 7d03cd8
- branch: master
- platform: linux
- arch: arm
- ARM version: 6
- nightly? false
- race enabled? false

Starting build...
Building 'build/influx_stress'...
Building 'build/influxd'...
Building 'build/influx_inspect'...
Building 'build/influx'...
Building 'build/influx_tsm'...

-------------------------

Packaging...
Creating package filesystem at root: /tmp/influxdb-build.LdYcDR/linux/arm/influxdb-0.10.1-1
Copying scripts and sample configuration to build directory
Packaging directory '/tmp/influxdb-build.LdYcDR/linux/arm/influxdb-0.10.1-1' as 'deb'...
MD5(build/influxdb_0.10.1-1_armhf.deb) = f90dc7577d21776f4e8ede4c4a31ab37
Packaging directory '/tmp/influxdb-build.LdYcDR/linux/arm/influxdb-0.10.1-1' as 'rpm'...
Traceback (most recent call last):
  File "./build.py", line 826, in <module>
    sys.exit(main())
  File "./build.py", line 819, in main
    packages = build_packages(build_output, version, package_arch, nightly=nightly, rc=rc, iteration=iteration)
  File "./build.py", line 538, in build_packages
    current_location = build_output[p][a]
KeyError: 'armhf'

so .deb file was correctly created and could be installed (upgraded in my case)

Thanks for your support and sorry for the noise as it seems my first issue was linked to my out of space issue I did'nt see.

As a heads up, https://github.com/influxdata/influxdb/pull/5596 removes the --pkgarch and --goarm flags from the build script. Instead, using --arch=arm (or --arch=armhf) will default to using armhf as the package architecture with a GOARM value of 6.

The relevant sections are here and here, where armhf, armel, and arm64 are broken out as different target architectures.

Feel free to comment on the PR if there are any concerns.

Just to say it works well with build.py script as follow:

$ ./build.py --package --version=0.10.3 --arch=armhf

Full process:

$ wget https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer
$ chmod +x gvm-installer 
$ ./gvm-installer
Cloning from https://github.com/moovweb/gvm.git to /home/pi/.gvm
No existing Go versions detected
Installed GVM v1.0.22
Please restart your terminal session or to get started right away run
 `source /home/pi/.gvm/scripts/gvm`
$ source /home/pi/.gvm/scripts/gvm
$ gvm install go1.4.3
Downloading Go source...
Installing go1.4.3...
 * Compiling...
$ gvm use go1.4.3 --default
Now using version go1.4.3
$ mkdir $HOME/gocodez
$ export GOPATH=$HOME/gocodez
$ go get github.com/influxdata/influxdb
$ cd $GOPATH/src/github.com/influxdata/influxdb
$ ./build.py --package --version=0.10.3 --arch=armhf
$ sudo dpkg -i build/influxdb_0.10.3-1_armhf.deb
Was this page helpful?
0 / 5 - 0 ratings