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

influxdb v2 binaries for FreeBSD? #16902

Open
hellvesper opened this issue Feb 16, 2020 · 14 comments
Open

influxdb v2 binaries for FreeBSD? #16902

hellvesper opened this issue Feb 16, 2020 · 14 comments
Assignees
Milestone

Comments

@hellvesper
Copy link

Proposal:
influxdb2 binaries for FreeBSD

Current behavior:
There is only v1 available at the moment

Desired behavior:
I want influxdb2 on FreeBSD

Alternatives considered:
Or build instructions for v2

@russorat
Copy link
Contributor

@hellvesper thanks for the issue. Yes we would like to create binaries for additional OSes. We will make sure FreeBSD is added to the list.

In the meantime, have you tried building from source? https://github.com/influxdata/influxdb/blob/master/CONTRIBUTING.md#getting--building-from-source

Did you run into any problems?

@jacobmarble
Copy link
Member

@ayang64 FYI

@hellvesper
Copy link
Author

@hellvesper thanks for the issue. Yes we would like to create binaries for additional OSes. We will make sure FreeBSD is added to the list.

In the meantime, have you tried building from source? https://github.com/influxdata/influxdb/blob/master/CONTRIBUTING.md#getting--building-from-source

Did you run into any problems?

Yes, I tried to build beta2 without luck, there was some problem with wasm-pack and workspaces. But current master builds without any problem, thanks!

@8none1 8none1 added this to the OSS GA milestone Mar 5, 2020
@rickspencer3
Copy link
Contributor

rickspencer3 commented Mar 31, 2020

We would like to offer these binaries, and would be happy to take such a contribution. However, we can add this any time of we GA 2.0 Open Source, so I am de-prioritizing this. Please leave a comment if you disagree with this decision.

@rawkode
Copy link
Contributor

rawkode commented May 20, 2020

CC @SlicerDicer

@ayang64 ayang64 self-assigned this Nov 9, 2020
@GitKalle
Copy link

@hellvesper thanks for the issue. Yes we would like to create binaries for additional OSes. We will make sure FreeBSD is added to the list.

In the meantime, have you tried building from source? https://github.com/influxdata/influxdb/blob/master/CONTRIBUTING.md#getting--building-from-source

Did you run into any problems?

I try to compile freebsd and run into a problem. Please see the output:

root@influx:/home/influx/influxdb # gmake
gmake -C http all
gmake[1]: Entering directory '/usr/home/influx/influxdb/http'
gmake[1]: Nothing to be done for 'all'.
gmake[1]: Leaving directory '/usr/home/influx/influxdb/http'
gmake -C ui all
gmake[1]: Entering directory '/usr/home/influx/influxdb/ui'
gmake[1]: Nothing to be done for 'all'.
gmake[1]: Leaving directory '/usr/home/influx/influxdb/ui'
gmake -C chronograf all
gmake[1]: Entering directory '/usr/home/influx/influxdb/chronograf'
gmake -C dist all
gmake[2]: Entering directory '/usr/home/influx/influxdb/chronograf/dist'
gmake[2]: Nothing to be done for 'all'.
gmake[2]: Leaving directory '/usr/home/influx/influxdb/chronograf/dist'
gmake -C server all
gmake[2]: Entering directory '/usr/home/influx/influxdb/chronograf/server'
gmake[2]: Nothing to be done for 'all'.
gmake[2]: Leaving directory '/usr/home/influx/influxdb/chronograf/server'
gmake -C canned all
gmake[2]: Entering directory '/usr/home/influx/influxdb/chronograf/canned'
gmake[2]: Nothing to be done for 'all'.
gmake[2]: Leaving directory '/usr/home/influx/influxdb/chronograf/canned'
gmake[1]: Leaving directory '/usr/home/influx/influxdb/chronograf'
gmake -C storage all
gmake[1]: Entering directory '/usr/home/influx/influxdb/storage'
gmake -C flux all
gmake[2]: Entering directory '/usr/home/influx/influxdb/storage/flux'
gmake[2]: Nothing to be done for 'all'.
gmake[2]: Leaving directory '/usr/home/influx/influxdb/storage/flux'
gmake[1]: Leaving directory '/usr/home/influx/influxdb/storage'
env GO111MODULE=on go build -tags 'assets' -ldflags "-s -w  -X main.commit=2a45f0c037 -X main.version=v2.0.7" -o bin/freebsd/influx ./cmd/influx
# /home/influx/influxdb/scripts/pkg-config.sh --cflags  -- flux
/home/influx/influxdb/scripts/pkg-config.sh: fork/exec /home/influx/influxdb/scripts/pkg-config.sh: no such file or directory
gmake: *** [Makefile:97: bin/freebsd/influx] Error 2

I don't know, what's wrong. The pkg-config.sh exist in that location:

root@influx:/home/influx/influxdb # ls -la /home/influx/influxdb/scripts/pkg-config.sh
-rwxr-xr-x  1 influx  influx  448 Jun  7 14:09 /home/influx/influxdb/scripts/pkg-config.sh

Any suggestion?

@ayang64
Copy link
Contributor

ayang64 commented Jun 17, 2021

@GitKalle -- the problem is that the "magic number" (the first line of the script) is #!/bin/bash. FreeBSD, rightfully, puts bash in /usr/local/bin/bash.

If you change that it should work.

I think the solution to this might be to use env like:

#!/usr/bin/env bash

That should allow the script to run on FreeBSD, Linux, Mac, etc.

It compiles under FreeBSD when I make this change.

@GitKalle
Copy link

@GitKalle -- the problem is that the "magic number" (the first line of the script) is #!/bin/bash. FreeBSD, rightfully, puts bash in /usr/local/bin/bash.

If you change that it should work.

I think the solution to this might be to use env like:

#!/usr/bin/env bash

That should allow the script to run on FreeBSD, Linux, Mac, etc.

It compiles under FreeBSD when I make this change.

Perfect, it works. Thank you very much.

@ayang64
Copy link
Contributor

ayang64 commented Jun 22, 2021

Perfect, it works. Thank you very much.

awesome! now submit a pull request fixing the #! line in all of the scripts to use /usr/bin/env instead of bash directly. i think that'd improve the portability of influxdb 2.

@phaethon
Copy link

phaethon commented Oct 23, 2022

If it helps anyone, just successfully built influxdb v2.4.0 in a fresh 13.1-RELEASE jail.

# Running as root in a jail. Home dir /root

pkg install git
pkg install gmake
pkg install go
pkg install rust
pkg install pkgconf
pkg install goprotobuf
pkg install bash
bash

export PATH=$PATH:/root/go/bin

git clone https://github.com/influxdata/influxdb.git --branch v2.4.0 --single-branch
git clone https://github.com/influxdata/influx-cli.git --branch v2.4.0 --single-branch

cd influx-cli
gmake

cd ../influxdb

# Within each .proto file replace line starting with 'option go_package = ".;' to start with 'option go_package = "./;'
find . -name *.proto -exec sed -i .bkp 's$^option go_package = ".;$option go_package = "./;$' \{\} \;
find . -name *.proto.bkp -exec rm \{\} \;

gmake

Have not done any thorough tests, but at least the build completes successfully, and I can run the binary bin/freebsd/influxd

@tarkhil
Copy link

tarkhil commented Oct 23, 2022

Thanks a lot!

@phaethon
Copy link

Running gmake test all tests seem to pass except these:

--- FAIL: TestNewGroupResultSet_Sorting (0.00s)
    --- FAIL: TestNewGroupResultSet_Sorting/group_by_tag1_in_partial_series (0.00s)
        group_resultset_test.go:275: unexpected value; -got/+exp
              []string{
                ... // 6 identical elements
                "  tag key      : _m,tag0,tag1",
                "  partition key: val11",
            -   "    series: _m=cpu,tag0=val00,tag1=val11",
                "    series: _m=cpu,tag0=val01,tag1=val11",
            +   "    series: _m=cpu,tag0=val00,tag1=val11",
                "group:",
                "  tag key      : _m,tag0,tag1",
                "  partition key: val12",
            +   "    series: _m=cpu,tag0=val01,tag1=val12",
                "    series: _m=cpu,tag0=val00,tag1=val12",
            -   "    series: _m=cpu,tag0=val01,tag1=val12",
                "group:",
                "  tag key      : _m,tag0",
                ... // 4 identical elements
              }
--- FAIL: TestNewGroupResultSet_SortOrder (0.00s)
    --- FAIL: TestNewGroupResultSet_SortOrder/nil_lo (0.00s)
        group_resultset_test.go:401: unexpected value; -got/+exp
              []string{
                "group:",
                "  tag key      : _m,tag1,tag2",
                "  partition key: <nil>,val20",
            -   "    series: _m=mem,tag1=val10,tag2=val20",
                "    series: _m=mem,tag1=val11,tag2=val20",
            +   "    series: _m=mem,tag1=val10,tag2=val20",
                "group:",
                "  tag key      : _m,tag1,tag2",
                ... // 3 identical elements
                "  tag key      : _m,tag0,tag1",
                "  partition key: val00,<nil>",
            -   "    series: _m=aaa,tag0=val00",
                "    series: _m=cpu,tag0=val00,tag1=val10",
                "    series: _m=cpu,tag0=val00,tag1=val11",
                "    series: _m=cpu,tag0=val00,tag1=val12",
            +   "    series: _m=aaa,tag0=val00",
                "group:",
                "  tag key      : _m,tag0",
                ... // 3 identical elements
              }
FAIL
FAIL    github.com/influxdata/influxdb/v2/storage/reads 0.437s

@jeffreyssmith2nd
Copy link
Contributor

If you're using Go 1.19, there was a change in sorting behavior that will lead to those tests failing. At the moment, it is recommended to build with Go 1.18 until it is validated that those sorting changes are acceptable.

@phaethon
Copy link

You are right. Now I installed go 1.18 via gvm and gmake test returns no error.
I still used the package for go1.19 in order to be able to build go1.18.
This is a full updated script to build and test influxdb.

# Running as root in a jail. Home dir /root

pkg install git
pkg install gmake
pkg install go
pkg install rust
pkg install pkgconf
pkg install goprotobuf
pkg install bash
pkg install bison
pkg install gcc
bash
bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
source /root/.gvm/scripts/gvm
gvm install go1.18 -b
gvm use go1.18

export PATH=$PATH:/root/go/bin

git clone https://github.com/influxdata/influxdb.git --branch v2.4.0 --single-branch
git clone https://github.com/influxdata/influx-cli.git --branch v2.4.0 --single-branch

cd influx-cli
gmake

cd ../influxdb

# Within each .proto file replace line starting with 'option go_package = ".;' to start with 'option go_package = "./;'
find . -name *.proto -exec sed -i .bkp 's$^option go_package = ".;$option go_package = "./;$' \{\} \;
find . -name *.proto.bkp -exec rm \{\} \;

gmake
gmake test

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

No branches or pull requests