From 7b62a0ee1bf9c528b2f9ee2bddd6b45095edfbe6 Mon Sep 17 00:00:00 2001 From: leventeliu Date: Thu, 16 May 2019 21:11:36 +0800 Subject: [PATCH 1/6] Add docker and meta files for yocto --- docker/yocto-builder.Dockerfile | 80 +++++++++++++++++++ .../recipes-covenantsql/covenantsql.bb | 22 +++++ ...ve-unsupported-FlagSet.Name-in-go1.9.patch | 54 +++++++++++++ ...lve-int-overflow-in-32-bit-platforms.patch | 34 ++++++++ 4 files changed, 190 insertions(+) create mode 100644 docker/yocto-builder.Dockerfile create mode 100644 meta-covenantsql/recipes-covenantsql/covenantsql.bb create mode 100644 meta-covenantsql/recipes-covenantsql/files/0001-Resolve-unsupported-FlagSet.Name-in-go1.9.patch create mode 100644 meta-covenantsql/recipes-covenantsql/files/0002-Resolve-int-overflow-in-32-bit-platforms.patch diff --git a/docker/yocto-builder.Dockerfile b/docker/yocto-builder.Dockerfile new file mode 100644 index 000000000..3974d03ba --- /dev/null +++ b/docker/yocto-builder.Dockerfile @@ -0,0 +1,80 @@ +# Stage: builder +FROM ubuntu:14.04 + +RUN apt-get update \ + && apt-get install -y apt-transport-https \ + && > /etc/apt/sources.list echo "deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty main restricted universe multiverse" \ + && >> /etc/apt/sources.list echo "deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-updates main restricted universe multiverse" \ + && >> /etc/apt/sources.list echo "deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-backports main restricted universe multiverse" \ + && >> /etc/apt/sources.list echo "deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-security main restricted universe multiverse" \ + && apt-get update \ + && apt-get install -y \ + gawk \ + wget \ + git-core \ + diffstat \ + unzip \ + texinfo \ + gcc-multilib \ + build-essential \ + chrpath \ + socat \ + libsdl1.2-dev \ + xterm \ + sed \ + cvs \ + subversion \ + coreutils \ + texi2html \ + docbook-utils \ + python-pysqlite2 \ + help2man \ + make \ + gcc \ + g++ \ + desktop-file-utils \ + libgl1-mesa-dev \ + libglu1-mesa-dev \ + mercurial \ + autoconf \ + automake \ + groff \ + curl \ + lzop \ + asciidoc \ + u-boot-tools \ + cpio \ + sudo \ + locales \ + # install git-repo + && curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo >/usr/bin/repo \ + && chmod a+x /usr/bin/repo \ + # setup work user + && useradd --create-home work \ + && echo "work ALL=(ALL) NOPASSWD: ALL" >/etc/sudoers \ + # setup locale + && locale-gen en_US.UTF-8 \ + && update-locale LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 \ + && dpkg-reconfigure --frontend=noninteractive locales \ + # use bash as default shell + && ln -fs /bin/bash /bin/sh + +ENV LC_ALL=en_US.UTF-8 \ + LANG=en_US.UTF-8 \ + LANGUAGE=en_US.UTF-8 \ + DISTRO=fsl-imx-wayland \ + MACHINE=imx7ulpevk + +USER work +WORKDIR /home/work +RUN repo init -u https://source.codeaurora.org/external/imx/imx-manifest -b imx-linux-rocko -m imx-4.9.88-2.0.0_ga.xml \ + && repo sync \ + && mkdir -p build/conf && echo 'ACCEPT_FSL_EULA = "1"' >> build/conf/local.conf \ + && source fsl-setup-release.sh + +COPY ./meta-covenantsql /home/work/build/sources/meta-covenantsql +RUN echo 'BBLAYERS += " ${BSPDIR}/sources/meta-covenantsql"' >> build/conf/bblayers.conf \ + && echo 'IMAGE_INSTALL_append = "covenantsql"' >> build/conf/local.conf \ + && bitbake core-image-base + +CMD "/bin/bash" diff --git a/meta-covenantsql/recipes-covenantsql/covenantsql.bb b/meta-covenantsql/recipes-covenantsql/covenantsql.bb new file mode 100644 index 000000000..79d67a025 --- /dev/null +++ b/meta-covenantsql/recipes-covenantsql/covenantsql.bb @@ -0,0 +1,22 @@ +SRC_URI = "git://github.com/CovenantSQL/CovenantSQL.git;protocol=https;branch=develop" +SRCREV = "${AUTOREV}" +PV="0.6.0" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://${WORKDIR}/${PN}-${PV}/src/${GO_IMPORT}/LICENSE;md5=86d3f3a95c324c9479bd8986968f4327" + +inherit go + +SRC_URI += "\ + file://0001-Resolve-unsupported-FlagSet.Name-in-go1.9.patch;patchdir=${WORKDIR}/${PN}-${PV}/src/${GO_IMPORT} \ + file://0002-Resolve-int-overflow-in-32-bit-platforms.patch;patchdir=${WORKDIR}/${PN}-${PV}/src/${GO_IMPORT} \ +" + +LDFLAGS = "-pthread" +GO_IMPORT = "github.com/CovenantSQL/CovenantSQL" +GO_INSTALL = "${GO_IMPORT}/cmd/cql ${GO_IMPORT}/cmd/cql-minerd ${GO_IMPORT}/cmd/cqld" +CGO_ENABLED = "1" + +do_install_append() { + rm -rf ${D}/usr/lib/go/src/github.com/CovenantSQL/CovenantSQL +} diff --git a/meta-covenantsql/recipes-covenantsql/files/0001-Resolve-unsupported-FlagSet.Name-in-go1.9.patch b/meta-covenantsql/recipes-covenantsql/files/0001-Resolve-unsupported-FlagSet.Name-in-go1.9.patch new file mode 100644 index 000000000..1f6e5cad5 --- /dev/null +++ b/meta-covenantsql/recipes-covenantsql/files/0001-Resolve-unsupported-FlagSet.Name-in-go1.9.patch @@ -0,0 +1,54 @@ +From 34205e38e60e426bc936df38a2089c9448f2b38e Mon Sep 17 00:00:00 2001 +From: leventeliu +Date: Thu, 16 May 2019 11:28:04 +0800 +Subject: [PATCH 1/2] Resolve unsupported FlagSet.Name() in go1.9 + +--- + cmd/cql/internal/help.go | 13 ++++++------- + 1 file changed, 6 insertions(+), 7 deletions(-) + +diff --git a/cmd/cql/internal/help.go b/cmd/cql/internal/help.go +index 56b56361..e7caf577 100644 +--- a/cmd/cql/internal/help.go ++++ b/cmd/cql/internal/help.go +@@ -22,6 +22,7 @@ import ( + "fmt" + "os" + "runtime" ++ "strings" + ) + + const name = "cql" +@@ -76,10 +77,8 @@ func runVersion(cmd *Command, args []string) { + fmt.Print(PrintVersion(false)) + } + +-func printParamHelp(flagSet *flag.FlagSet) { +- if flagSet.Name() != "" { +- _, _ = fmt.Fprintf(os.Stdout, "\n%s:\n", flagSet.Name()) +- } ++func printParamHelp(section string, flagSet *flag.FlagSet) { ++ _, _ = fmt.Fprintf(os.Stdout, "\n%s:\n", section) + flagSet.SetOutput(os.Stdout) + flagSet.PrintDefaults() + } +@@ -89,13 +88,13 @@ func printCommandHelp(cmd *Command) { + _, _ = fmt.Fprintf(os.Stdout, cmd.Long) + + if cmd.Flag != nil { +- printParamHelp(cmd.Flag) ++ printParamHelp(fmt.Sprintf("%s params", strings.Title(cmd.Name())), cmd.Flag) + } + if cmd.CommonFlag != nil { +- printParamHelp(cmd.CommonFlag) ++ printParamHelp("Common params", cmd.CommonFlag) + } + if cmd.DebugFlag != nil { +- printParamHelp(cmd.DebugFlag) ++ printParamHelp("Debug params", cmd.DebugFlag) + } + } + +-- +2.21.0 + diff --git a/meta-covenantsql/recipes-covenantsql/files/0002-Resolve-int-overflow-in-32-bit-platforms.patch b/meta-covenantsql/recipes-covenantsql/files/0002-Resolve-int-overflow-in-32-bit-platforms.patch new file mode 100644 index 000000000..0bcb9bbb1 --- /dev/null +++ b/meta-covenantsql/recipes-covenantsql/files/0002-Resolve-int-overflow-in-32-bit-platforms.patch @@ -0,0 +1,34 @@ +From 89baafdcf4b75c47e4b4369bc090344430031352 Mon Sep 17 00:00:00 2001 +From: leventeliu +Date: Thu, 16 May 2019 11:57:54 +0800 +Subject: [PATCH 2/2] Resolve int overflow in 32-bit platforms + +--- + cmd/cql-minerd/integration_test.go | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/cmd/cql-minerd/integration_test.go b/cmd/cql-minerd/integration_test.go +index ceb079a8..e75ac993 100644 +--- a/cmd/cql-minerd/integration_test.go ++++ b/cmd/cql-minerd/integration_test.go +@@ -549,7 +549,7 @@ func TestFullProcess(t *testing.T) { + db.Query("SELECT 1") + + // test before write operation complete +- var result int ++ var result int64 + err = db.QueryRow("SELECT * FROM test WHERE test = 4 LIMIT 1").Scan(&result) + c.So(err, ShouldBeNil) + c.So(result, ShouldEqual, 4) +@@ -577,7 +577,7 @@ func TestFullProcess(t *testing.T) { + row = db.QueryRow("SELECT * FROM test WHERE test = 10000000000 LIMIT 1") + err = row.Scan(&result) + c.So(err, ShouldBeNil) +- c.So(result, ShouldEqual, 10000000000) ++ c.So(result, ShouldEqual, int64(10000000000)) + }) + + ctx2, ccl2 := context.WithTimeout(context.Background(), 3*time.Minute) +-- +2.21.0 + From 36ab1bfc9aa29979f6d45e1b4485e73be8b0faeb Mon Sep 17 00:00:00 2001 From: leventeliu Date: Mon, 20 May 2019 19:30:29 +0800 Subject: [PATCH 2/6] Update build scripts --- .../recipes-covenantsql/covenantsql.bb | 0 ...ve-unsupported-FlagSet.Name-in-go1.9.patch | 0 ...lve-int-overflow-in-32-bit-platforms.patch | 0 docker/scripts/build.sh | 29 ++++++ docker/scripts/init.sh | 95 +++++++++++++++++++ docker/yocto-builder.Dockerfile | 76 +-------------- 6 files changed, 128 insertions(+), 72 deletions(-) rename {meta-covenantsql => docker/meta-covenantsql}/recipes-covenantsql/covenantsql.bb (100%) rename {meta-covenantsql => docker/meta-covenantsql}/recipes-covenantsql/files/0001-Resolve-unsupported-FlagSet.Name-in-go1.9.patch (100%) rename {meta-covenantsql => docker/meta-covenantsql}/recipes-covenantsql/files/0002-Resolve-int-overflow-in-32-bit-platforms.patch (100%) create mode 100755 docker/scripts/build.sh create mode 100755 docker/scripts/init.sh diff --git a/meta-covenantsql/recipes-covenantsql/covenantsql.bb b/docker/meta-covenantsql/recipes-covenantsql/covenantsql.bb similarity index 100% rename from meta-covenantsql/recipes-covenantsql/covenantsql.bb rename to docker/meta-covenantsql/recipes-covenantsql/covenantsql.bb diff --git a/meta-covenantsql/recipes-covenantsql/files/0001-Resolve-unsupported-FlagSet.Name-in-go1.9.patch b/docker/meta-covenantsql/recipes-covenantsql/files/0001-Resolve-unsupported-FlagSet.Name-in-go1.9.patch similarity index 100% rename from meta-covenantsql/recipes-covenantsql/files/0001-Resolve-unsupported-FlagSet.Name-in-go1.9.patch rename to docker/meta-covenantsql/recipes-covenantsql/files/0001-Resolve-unsupported-FlagSet.Name-in-go1.9.patch diff --git a/meta-covenantsql/recipes-covenantsql/files/0002-Resolve-int-overflow-in-32-bit-platforms.patch b/docker/meta-covenantsql/recipes-covenantsql/files/0002-Resolve-int-overflow-in-32-bit-platforms.patch similarity index 100% rename from meta-covenantsql/recipes-covenantsql/files/0002-Resolve-int-overflow-in-32-bit-platforms.patch rename to docker/meta-covenantsql/recipes-covenantsql/files/0002-Resolve-int-overflow-in-32-bit-platforms.patch diff --git a/docker/scripts/build.sh b/docker/scripts/build.sh new file mode 100755 index 000000000..3c171c709 --- /dev/null +++ b/docker/scripts/build.sh @@ -0,0 +1,29 @@ +#! /usr/bin/env bash +set -eo pipefail + +export LC_ALL=en_US.UTF-8 +export LANG=en_US.UTF-8 +export LANGUAGE=en_US.UTF-8 +export DISTRO=fsl-imx-wayland +export MACHINE=imx7ulpevk + +main() { + local workspace=/home/work/yocto + mkdir -p "$workspace" + cd "$workspace" + + repo init -u https://source.codeaurora.org/external/imx/imx-manifest -b imx-linux-rocko -m imx-4.9.88-2.0.0_ga.xml + repo sync + + mkdir -p "$workspace/build/conf" + sed -i 's/^EULA_ACCEPTED=$/EULA_ACCEPTED=1/' "$workspace/sources/base/setup-environment" + source ./fsl-setup-release.sh + + mv /home/work/meta-covenantsql "$workspace/sources/meta-covenantsql" + echo 'ACCEPT_FSL_EULA = "1"' >>"$workspace/build/conf/local.conf" + echo 'BBLAYERS += " ${BSPDIR}/sources/meta-covenantsql"' >>"$workspace/build/conf/bblayers.conf" + echo 'IMAGE_INSTALL_append = "covenantsql"' >>"$workspace/build/conf/local.conf" + bitbake core-image-base +} + +main "$@" diff --git a/docker/scripts/init.sh b/docker/scripts/init.sh new file mode 100755 index 000000000..12f7b27fc --- /dev/null +++ b/docker/scripts/init.sh @@ -0,0 +1,95 @@ +#! /usr/bin/env bash +set -euo pipefail + +config_packages() { + apt-get update + apt-get install -y apt-transport-https + cat >/etc/apt/sources.list <>/etc/sudoers + + mv /root/scripts/build.sh /home/work/ + mv /root/meta-covenantsql /home/work/meta-covenantsql + chown -R work:work /home/work +} + +config_locale() { + locale-gen en_US.UTF-8 + update-locale LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 + dpkg-reconfigure --frontend=noninteractive locales +} + +main() { + if [[ $UID != 0 ]]; then + >&2 echo "Must run as root" + return 1 + fi + config_packages + config_user + config_locale +} + +main "$@" diff --git a/docker/yocto-builder.Dockerfile b/docker/yocto-builder.Dockerfile index 3974d03ba..d19f93ce4 100644 --- a/docker/yocto-builder.Dockerfile +++ b/docker/yocto-builder.Dockerfile @@ -1,80 +1,12 @@ # Stage: builder FROM ubuntu:14.04 -RUN apt-get update \ - && apt-get install -y apt-transport-https \ - && > /etc/apt/sources.list echo "deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty main restricted universe multiverse" \ - && >> /etc/apt/sources.list echo "deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-updates main restricted universe multiverse" \ - && >> /etc/apt/sources.list echo "deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-backports main restricted universe multiverse" \ - && >> /etc/apt/sources.list echo "deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ trusty-security main restricted universe multiverse" \ - && apt-get update \ - && apt-get install -y \ - gawk \ - wget \ - git-core \ - diffstat \ - unzip \ - texinfo \ - gcc-multilib \ - build-essential \ - chrpath \ - socat \ - libsdl1.2-dev \ - xterm \ - sed \ - cvs \ - subversion \ - coreutils \ - texi2html \ - docbook-utils \ - python-pysqlite2 \ - help2man \ - make \ - gcc \ - g++ \ - desktop-file-utils \ - libgl1-mesa-dev \ - libglu1-mesa-dev \ - mercurial \ - autoconf \ - automake \ - groff \ - curl \ - lzop \ - asciidoc \ - u-boot-tools \ - cpio \ - sudo \ - locales \ - # install git-repo - && curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo >/usr/bin/repo \ - && chmod a+x /usr/bin/repo \ - # setup work user - && useradd --create-home work \ - && echo "work ALL=(ALL) NOPASSWD: ALL" >/etc/sudoers \ - # setup locale - && locale-gen en_US.UTF-8 \ - && update-locale LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 \ - && dpkg-reconfigure --frontend=noninteractive locales \ - # use bash as default shell - && ln -fs /bin/bash /bin/sh - -ENV LC_ALL=en_US.UTF-8 \ - LANG=en_US.UTF-8 \ - LANGUAGE=en_US.UTF-8 \ - DISTRO=fsl-imx-wayland \ - MACHINE=imx7ulpevk +COPY ./docker/scripts /root/scripts +COPY ./docker/meta-covenantsql /root/meta-covenantsql +RUN /root/scripts/init.sh USER work WORKDIR /home/work -RUN repo init -u https://source.codeaurora.org/external/imx/imx-manifest -b imx-linux-rocko -m imx-4.9.88-2.0.0_ga.xml \ - && repo sync \ - && mkdir -p build/conf && echo 'ACCEPT_FSL_EULA = "1"' >> build/conf/local.conf \ - && source fsl-setup-release.sh - -COPY ./meta-covenantsql /home/work/build/sources/meta-covenantsql -RUN echo 'BBLAYERS += " ${BSPDIR}/sources/meta-covenantsql"' >> build/conf/bblayers.conf \ - && echo 'IMAGE_INSTALL_append = "covenantsql"' >> build/conf/local.conf \ - && bitbake core-image-base +RUN ./build.sh CMD "/bin/bash" From 2d749cc0b13477d1dd2305b453eaeb388a9f25eb Mon Sep 17 00:00:00 2001 From: leventeliu Date: Tue, 21 May 2019 17:10:17 +0800 Subject: [PATCH 3/6] Move meta-covenantsql to a separated repo --- .../recipes-covenantsql/covenantsql.bb | 22 -------- ...ve-unsupported-FlagSet.Name-in-go1.9.patch | 54 ------------------- ...lve-int-overflow-in-32-bit-platforms.patch | 34 ------------ docker/scripts/build.sh | 11 ++-- docker/scripts/init.sh | 1 - docker/yocto-builder.Dockerfile | 6 ++- 6 files changed, 8 insertions(+), 120 deletions(-) delete mode 100644 docker/meta-covenantsql/recipes-covenantsql/covenantsql.bb delete mode 100644 docker/meta-covenantsql/recipes-covenantsql/files/0001-Resolve-unsupported-FlagSet.Name-in-go1.9.patch delete mode 100644 docker/meta-covenantsql/recipes-covenantsql/files/0002-Resolve-int-overflow-in-32-bit-platforms.patch diff --git a/docker/meta-covenantsql/recipes-covenantsql/covenantsql.bb b/docker/meta-covenantsql/recipes-covenantsql/covenantsql.bb deleted file mode 100644 index 79d67a025..000000000 --- a/docker/meta-covenantsql/recipes-covenantsql/covenantsql.bb +++ /dev/null @@ -1,22 +0,0 @@ -SRC_URI = "git://github.com/CovenantSQL/CovenantSQL.git;protocol=https;branch=develop" -SRCREV = "${AUTOREV}" -PV="0.6.0" - -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://${WORKDIR}/${PN}-${PV}/src/${GO_IMPORT}/LICENSE;md5=86d3f3a95c324c9479bd8986968f4327" - -inherit go - -SRC_URI += "\ - file://0001-Resolve-unsupported-FlagSet.Name-in-go1.9.patch;patchdir=${WORKDIR}/${PN}-${PV}/src/${GO_IMPORT} \ - file://0002-Resolve-int-overflow-in-32-bit-platforms.patch;patchdir=${WORKDIR}/${PN}-${PV}/src/${GO_IMPORT} \ -" - -LDFLAGS = "-pthread" -GO_IMPORT = "github.com/CovenantSQL/CovenantSQL" -GO_INSTALL = "${GO_IMPORT}/cmd/cql ${GO_IMPORT}/cmd/cql-minerd ${GO_IMPORT}/cmd/cqld" -CGO_ENABLED = "1" - -do_install_append() { - rm -rf ${D}/usr/lib/go/src/github.com/CovenantSQL/CovenantSQL -} diff --git a/docker/meta-covenantsql/recipes-covenantsql/files/0001-Resolve-unsupported-FlagSet.Name-in-go1.9.patch b/docker/meta-covenantsql/recipes-covenantsql/files/0001-Resolve-unsupported-FlagSet.Name-in-go1.9.patch deleted file mode 100644 index 1f6e5cad5..000000000 --- a/docker/meta-covenantsql/recipes-covenantsql/files/0001-Resolve-unsupported-FlagSet.Name-in-go1.9.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 34205e38e60e426bc936df38a2089c9448f2b38e Mon Sep 17 00:00:00 2001 -From: leventeliu -Date: Thu, 16 May 2019 11:28:04 +0800 -Subject: [PATCH 1/2] Resolve unsupported FlagSet.Name() in go1.9 - ---- - cmd/cql/internal/help.go | 13 ++++++------- - 1 file changed, 6 insertions(+), 7 deletions(-) - -diff --git a/cmd/cql/internal/help.go b/cmd/cql/internal/help.go -index 56b56361..e7caf577 100644 ---- a/cmd/cql/internal/help.go -+++ b/cmd/cql/internal/help.go -@@ -22,6 +22,7 @@ import ( - "fmt" - "os" - "runtime" -+ "strings" - ) - - const name = "cql" -@@ -76,10 +77,8 @@ func runVersion(cmd *Command, args []string) { - fmt.Print(PrintVersion(false)) - } - --func printParamHelp(flagSet *flag.FlagSet) { -- if flagSet.Name() != "" { -- _, _ = fmt.Fprintf(os.Stdout, "\n%s:\n", flagSet.Name()) -- } -+func printParamHelp(section string, flagSet *flag.FlagSet) { -+ _, _ = fmt.Fprintf(os.Stdout, "\n%s:\n", section) - flagSet.SetOutput(os.Stdout) - flagSet.PrintDefaults() - } -@@ -89,13 +88,13 @@ func printCommandHelp(cmd *Command) { - _, _ = fmt.Fprintf(os.Stdout, cmd.Long) - - if cmd.Flag != nil { -- printParamHelp(cmd.Flag) -+ printParamHelp(fmt.Sprintf("%s params", strings.Title(cmd.Name())), cmd.Flag) - } - if cmd.CommonFlag != nil { -- printParamHelp(cmd.CommonFlag) -+ printParamHelp("Common params", cmd.CommonFlag) - } - if cmd.DebugFlag != nil { -- printParamHelp(cmd.DebugFlag) -+ printParamHelp("Debug params", cmd.DebugFlag) - } - } - --- -2.21.0 - diff --git a/docker/meta-covenantsql/recipes-covenantsql/files/0002-Resolve-int-overflow-in-32-bit-platforms.patch b/docker/meta-covenantsql/recipes-covenantsql/files/0002-Resolve-int-overflow-in-32-bit-platforms.patch deleted file mode 100644 index 0bcb9bbb1..000000000 --- a/docker/meta-covenantsql/recipes-covenantsql/files/0002-Resolve-int-overflow-in-32-bit-platforms.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 89baafdcf4b75c47e4b4369bc090344430031352 Mon Sep 17 00:00:00 2001 -From: leventeliu -Date: Thu, 16 May 2019 11:57:54 +0800 -Subject: [PATCH 2/2] Resolve int overflow in 32-bit platforms - ---- - cmd/cql-minerd/integration_test.go | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/cmd/cql-minerd/integration_test.go b/cmd/cql-minerd/integration_test.go -index ceb079a8..e75ac993 100644 ---- a/cmd/cql-minerd/integration_test.go -+++ b/cmd/cql-minerd/integration_test.go -@@ -549,7 +549,7 @@ func TestFullProcess(t *testing.T) { - db.Query("SELECT 1") - - // test before write operation complete -- var result int -+ var result int64 - err = db.QueryRow("SELECT * FROM test WHERE test = 4 LIMIT 1").Scan(&result) - c.So(err, ShouldBeNil) - c.So(result, ShouldEqual, 4) -@@ -577,7 +577,7 @@ func TestFullProcess(t *testing.T) { - row = db.QueryRow("SELECT * FROM test WHERE test = 10000000000 LIMIT 1") - err = row.Scan(&result) - c.So(err, ShouldBeNil) -- c.So(result, ShouldEqual, 10000000000) -+ c.So(result, ShouldEqual, int64(10000000000)) - }) - - ctx2, ccl2 := context.WithTimeout(context.Background(), 3*time.Minute) --- -2.21.0 - diff --git a/docker/scripts/build.sh b/docker/scripts/build.sh index 3c171c709..717d47ea6 100755 --- a/docker/scripts/build.sh +++ b/docker/scripts/build.sh @@ -1,12 +1,6 @@ #! /usr/bin/env bash set -eo pipefail -export LC_ALL=en_US.UTF-8 -export LANG=en_US.UTF-8 -export LANGUAGE=en_US.UTF-8 -export DISTRO=fsl-imx-wayland -export MACHINE=imx7ulpevk - main() { local workspace=/home/work/yocto mkdir -p "$workspace" @@ -15,14 +9,15 @@ main() { repo init -u https://source.codeaurora.org/external/imx/imx-manifest -b imx-linux-rocko -m imx-4.9.88-2.0.0_ga.xml repo sync - mkdir -p "$workspace/build/conf" sed -i 's/^EULA_ACCEPTED=$/EULA_ACCEPTED=1/' "$workspace/sources/base/setup-environment" source ./fsl-setup-release.sh - mv /home/work/meta-covenantsql "$workspace/sources/meta-covenantsql" + # Patch repo and add covenantsql layer + git clone https://github.com/CovenantSQL/meta-covenantsql.git "$workspace/sources/meta-covenantsql" echo 'ACCEPT_FSL_EULA = "1"' >>"$workspace/build/conf/local.conf" echo 'BBLAYERS += " ${BSPDIR}/sources/meta-covenantsql"' >>"$workspace/build/conf/bblayers.conf" echo 'IMAGE_INSTALL_append = "covenantsql"' >>"$workspace/build/conf/local.conf" + bitbake core-image-base } diff --git a/docker/scripts/init.sh b/docker/scripts/init.sh index 12f7b27fc..62b6f7e04 100755 --- a/docker/scripts/init.sh +++ b/docker/scripts/init.sh @@ -72,7 +72,6 @@ config_user() { echo "$id ALL=(ALL:ALL) NOPASSWD:ALL" >>/etc/sudoers mv /root/scripts/build.sh /home/work/ - mv /root/meta-covenantsql /home/work/meta-covenantsql chown -R work:work /home/work } diff --git a/docker/yocto-builder.Dockerfile b/docker/yocto-builder.Dockerfile index d19f93ce4..3d7c19aa2 100644 --- a/docker/yocto-builder.Dockerfile +++ b/docker/yocto-builder.Dockerfile @@ -2,11 +2,15 @@ FROM ubuntu:14.04 COPY ./docker/scripts /root/scripts -COPY ./docker/meta-covenantsql /root/meta-covenantsql RUN /root/scripts/init.sh USER work WORKDIR /home/work +ENV LC_ALL=en_US.UTF-8 +ENV LANG=en_US.UTF-8 +ENV LANGUAGE=en_US.UTF-8 +ENV DISTRO=fsl-imx-wayland +ENV MACHINE=imx7ulpevk RUN ./build.sh CMD "/bin/bash" From 870628e3034be2cf9b0b00110960410422e484a4 Mon Sep 17 00:00:00 2001 From: leventeliu Date: Tue, 21 May 2019 19:32:36 +0800 Subject: [PATCH 4/6] Minor fix --- docker/scripts/build.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/scripts/build.sh b/docker/scripts/build.sh index 717d47ea6..ebaffe124 100755 --- a/docker/scripts/build.sh +++ b/docker/scripts/build.sh @@ -16,7 +16,7 @@ main() { git clone https://github.com/CovenantSQL/meta-covenantsql.git "$workspace/sources/meta-covenantsql" echo 'ACCEPT_FSL_EULA = "1"' >>"$workspace/build/conf/local.conf" echo 'BBLAYERS += " ${BSPDIR}/sources/meta-covenantsql"' >>"$workspace/build/conf/bblayers.conf" - echo 'IMAGE_INSTALL_append = "covenantsql"' >>"$workspace/build/conf/local.conf" + echo 'IMAGE_INSTALL_append = "cql-minerd cql cqld"' >>"$workspace/build/conf/local.conf" bitbake core-image-base } From 71b95a8c8e2ad12a1cb8fecbb6eaa092394fd408 Mon Sep 17 00:00:00 2001 From: leventeliu Date: Thu, 23 May 2019 17:14:43 +0800 Subject: [PATCH 5/6] Add debug output --- vendor/github.com/ugorji/go/codec/encode.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/vendor/github.com/ugorji/go/codec/encode.go b/vendor/github.com/ugorji/go/codec/encode.go index 8462440c3..e4df612a0 100644 --- a/vendor/github.com/ugorji/go/codec/encode.go +++ b/vendor/github.com/ugorji/go/codec/encode.go @@ -364,9 +364,11 @@ func (z *bufioEncWriter) writestr(s string) { // z.writeb(bytesView(s)) // inlined below LOOP: a := len(z.buf) - z.n + fmt.Printf("copying %s to buffer: len=%d, n=%d, a=%d\n", s, len(z.buf), z.n, a) if len(s) > a { z.n += copy(z.buf[z.n:], s[:a]) s = s[a:] + fmt.Printf("copying %s to buffer result: n=%d\n", s, len(z.buf), z.n) z.flush() goto LOOP } From bc503ca26ea857a56a093e02b3b4fd59291a446a Mon Sep 17 00:00:00 2001 From: leventeliu Date: Thu, 23 May 2019 19:12:04 +0800 Subject: [PATCH 6/6] Add patch for go bbclass --- ...-compiler-optimizations-and-inlining.patch | 25 +++++++++++++++++++ docker/scripts/build.sh | 5 ++++ docker/scripts/init.sh | 1 + 3 files changed, 31 insertions(+) create mode 100644 docker/scripts/0001-Disable-compiler-optimizations-and-inlining.patch diff --git a/docker/scripts/0001-Disable-compiler-optimizations-and-inlining.patch b/docker/scripts/0001-Disable-compiler-optimizations-and-inlining.patch new file mode 100644 index 000000000..3009320db --- /dev/null +++ b/docker/scripts/0001-Disable-compiler-optimizations-and-inlining.patch @@ -0,0 +1,25 @@ +From 9bb7f70eb442b0bae3a3508b119b17e04b127630 Mon Sep 17 00:00:00 2001 +From: Levente Liu +Date: Thu, 23 May 2019 10:56:58 +0000 +Subject: [PATCH] Disable compiler optimizations and inlining + +--- + meta/classes/go.bbclass | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/meta/classes/go.bbclass b/meta/classes/go.bbclass +index 09b01a8..76f6d81 100644 +--- a/meta/classes/go.bbclass ++++ b/meta/classes/go.bbclass +@@ -40,7 +40,7 @@ GO_EXTLDFLAGS ?= "${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS} ${GO_RPATH_LINK} ${LDFLAGS + GO_LINKMODE ?= "" + GO_LINKMODE_class-nativesdk = "--linkmode=external" + GO_LDFLAGS ?= '-ldflags="${GO_RPATH} ${GO_LINKMODE} -extldflags '${GO_EXTLDFLAGS}'"' +-export GOBUILDFLAGS ?= "-v ${GO_LDFLAGS}" ++export GOBUILDFLAGS ?= "-v -gcflags='-N -l' ${GO_LDFLAGS}" + export GOPTESTBUILDFLAGS ?= "${GOBUILDFLAGS} -c" + export GOPTESTFLAGS ?= "-test.v" + GOBUILDFLAGS_prepend_task-compile = "${GO_PARALLEL_BUILD} " +-- +1.9.1 + diff --git a/docker/scripts/build.sh b/docker/scripts/build.sh index ebaffe124..687e548dc 100755 --- a/docker/scripts/build.sh +++ b/docker/scripts/build.sh @@ -12,12 +12,17 @@ main() { sed -i 's/^EULA_ACCEPTED=$/EULA_ACCEPTED=1/' "$workspace/sources/base/setup-environment" source ./fsl-setup-release.sh + # Patch go bbclass + cd "$workspace/sources/poky" + git apply /home/work/0001-Disable-compiler-optimizations-and-inlining.patch + # Patch repo and add covenantsql layer git clone https://github.com/CovenantSQL/meta-covenantsql.git "$workspace/sources/meta-covenantsql" echo 'ACCEPT_FSL_EULA = "1"' >>"$workspace/build/conf/local.conf" echo 'BBLAYERS += " ${BSPDIR}/sources/meta-covenantsql"' >>"$workspace/build/conf/bblayers.conf" echo 'IMAGE_INSTALL_append = "cql-minerd cql cqld"' >>"$workspace/build/conf/local.conf" + cd "$workspace" bitbake core-image-base } diff --git a/docker/scripts/init.sh b/docker/scripts/init.sh index 62b6f7e04..5f2f147b9 100755 --- a/docker/scripts/init.sh +++ b/docker/scripts/init.sh @@ -72,6 +72,7 @@ config_user() { echo "$id ALL=(ALL:ALL) NOPASSWD:ALL" >>/etc/sudoers mv /root/scripts/build.sh /home/work/ + mv /root/scripts/0001-Disable-compiler-optimizations-and-inlining.patch /home/work chown -R work:work /home/work }