Skip to content

Commit

Permalink
Moving to the latest go and fixing libmerge
Browse files Browse the repository at this point in the history
  • Loading branch information
rupor-github committed Oct 4, 2019
1 parent 6201fa6 commit 15e0000
Show file tree
Hide file tree
Showing 19 changed files with 237 additions and 191 deletions.
80 changes: 40 additions & 40 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake)

# Project version number
set(PRJ_VERSION_MAJOR 9)
set(PRJ_VERSION_MINOR 44)
set(PRJ_VERSION_MINOR 45)

if(WIN32 AND NOT DEFINED ENV{MSYSTEM})
message(FATAL_ERROR "Currently unsuppored environment. Use MINGW for Windows builds. CMake willl exit now.")
Expand Down Expand Up @@ -48,9 +48,11 @@ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static-libgcc -static-lib
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
message(STATUS "** Debug mode")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -D_XML_DEBUG")
set(TEST_RUN_ARGS "-v")
else()
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -s")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -s")
set(GO_MOD_ARGS "-mod=vendor")
endif()

find_package(Git REQUIRED)
Expand Down Expand Up @@ -150,43 +152,7 @@ install(FILES ${MYSQL_LIB_DIR}/../share/english/errmsg.sys DESTINATION ${PROJECT
# go targets are always out of date, "go build" will figure it out
########################################################################################################

find_package(Go 1.11 REQUIRED)

set(GODEP_REQ_VER "0.5.0")
find_package(Godep "${GODEP_REQ_VER}")
if(NOT GODEP_FOUND)
set(G_TAG "v${GODEP_REQ_VER}")
set(G_ARCH "linux-amd64")
set(G_SHA256 "287b08291e14f1fae8ba44374b26a2b12eb941af3497ed0ca649253e21ba2f83")

message(STATUS "Installing godep (ver ${G_TAG}) into ${PROJECT_BINARY_DIR}")
file(DOWNLOAD "https://github.com/golang/dep/releases/download/${G_TAG}/dep-${G_ARCH}" ${PROJECT_BINARY_DIR}/dep
INACTIVITY_TIMEOUT 60
TIMEOUT 300
STATUS DOWNLOAD_RES
EXPECTED_HASH SHA256=${G_SHA256})
list(GET DOWNLOAD_RES 0 RES)
list(GET DOWNLOAD_RES 1 MSG)
if(RES)
message(FATAL_ERROR, "${MSG}")
endif()
execute_process(COMMAND sh -c "chmod +x ${PROJECT_BINARY_DIR}/dep" WORKING_DIRECTORY ${PROJECT_BINARY_DIR})

if(EXISTS ${PROJECT_BINARY_DIR}/dep)
set(GODEP_FOUND true)
set(GODEP_EXECUTABLE ${PROJECT_BINARY_DIR}/dep)
set(GODEP_VERSION ${GODEP_REQ_VER})
else()
message(FATAL_ERROR "Unable to obtain and install requred version of go dep. Exiting...")
endif()

message(STATUS "Vendoring for go")
set(ENV{GOPATH} ${PROJECT_SOURCE_DIR})
if(NOT EXISTS ${PROJECT_SOURCE_DIR}/src/inpxcreator/Gopkg.toml)
message(FATAL_ERROR "Unable to find Gopkg.toml. Exiting...")
endif()
execute_process(COMMAND ${GODEP_EXECUTABLE} ensure -vendor-only WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/src/inpxcreator")
endif()
find_package(Go 1.13 REQUIRED)

if(CMAKE_CROSSCOMPILING)
# Set Go target environments
Expand All @@ -203,20 +169,54 @@ configure_file("${PROJECT_SOURCE_DIR}/cmake/version.go.in" "${PROJECT_SOURCE_DIR

add_custom_target(bin_libget2 ALL
DEPENDS gen_git_ver
COMMAND GOPATH=${PROJECT_SOURCE_DIR} GOOS=${CROSS_GOOS} GOARCH=${CROSS_GOARCH}
COMMAND GOPATH=${PROJECT_SOURCE_DIR} GO111MODULE=on GOOS=${CROSS_GOOS} GOARCH=${CROSS_GOARCH}
${GO_EXECUTABLE} build -o ${PROJECT_BINARY_DIR}/libget2${CMAKE_EXECUTABLE_SUFFIX}
-ldflags='-X main.LastGitCommit=\$\(shell cat ${PROJECT_BINARY_DIR}/inpxc_git_ver\)'
${GO_MOD_ARGS}
inpxcreator/cmd/libget2
COMMENT "Building libget2..."
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/src/inpxcreator")
install(PROGRAMS ${PROJECT_BINARY_DIR}/libget2${CMAKE_EXECUTABLE_SUFFIX} DESTINATION ${DEST_DIR} CONFIGURATIONS Release)

add_custom_target(bin_libmerge ALL
DEPENDS gen_git_ver
COMMAND GOPATH=${PROJECT_SOURCE_DIR} GOOS=${CROSS_GOOS} GOARCH=${CROSS_GOARCH}
COMMAND GOPATH=${PROJECT_SOURCE_DIR} GO111MODULE=on GOOS=${CROSS_GOOS} GOARCH=${CROSS_GOARCH}
${GO_EXECUTABLE} build -o ${PROJECT_BINARY_DIR}/libmerge${CMAKE_EXECUTABLE_SUFFIX}
-ldflags='-X main.LastGitCommit=\$\(shell cat ${PROJECT_BINARY_DIR}/inpxc_git_ver\)'
${GO_MOD_ARGS}
inpxcreator/cmd/libmerge
COMMENT "Building libmerge..."
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/src/inpxcreator")
install(PROGRAMS ${PROJECT_BINARY_DIR}/libmerge${CMAKE_EXECUTABLE_SUFFIX} DESTINATION ${DEST_DIR} CONFIGURATIONS Release)

########################################################################################################
# Go dependency management
########################################################################################################

add_custom_target(deps_print
SOURCES ${PROJECT_SOURCE_DIR}/src/inpxcreator/go.mod
COMMAND GOPATH=${PROJECT_SOURCE_DIR} GO111MODULE=on ${GO_EXECUTABLE} mod graph
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/src/inpxcreator"
COMMENT "Printing dependencies (go mod graph)"
VERBATIM)

add_custom_target(deps_tidy
SOURCES ${PROJECT_SOURCE_DIR}/src/inpxcreator/go.mod
COMMAND GOPATH=${PROJECT_SOURCE_DIR} GO111MODULE=on ${GO_EXECUTABLE} mod tidy
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/src/inpxcreator"
COMMENT "Cleaning dependencies (go mod tidy)"
VERBATIM)

add_custom_target(deps_verify
SOURCES ${PROJECT_SOURCE_DIR}/src/inpxcreator/go.mod
COMMAND GOPATH=${PROJECT_SOURCE_DIR} GO111MODULE=on ${GO_EXECUTABLE} mod verify
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/src/inpxcreator"
COMMENT "Verifying dependencies (go mod verify)"
VERBATIM)

add_custom_target(deps_vendor
SOURCES ${PROJECT_SOURCE_DIR}/src/inpxcreator/go.mod
COMMAND GOPATH=${PROJECT_SOURCE_DIR} GO111MODULE=on ${GO_EXECUTABLE} mod vendor
WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/src/inpxcreator"
COMMENT "Creating vendor directory (go mod vendor)"
VERBATIM)
8 changes: 4 additions & 4 deletions docker/Dockerfile.build
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
FROM ubuntu:16.04

RUN apt-get -qqy update &&\
apt-get -qqy install wget curl build-essential git git-extras automake pkg-config libcurl4-openssl-dev zlib1g-dev libaio-dev libboost-all-dev p7zip-full gdb mingw-w64 binutils-mingw-w64 mingw-w64-tools libz-mingw-w64-dev
apt-get -qqy install tzdata wget curl build-essential git git-extras automake pkg-config libcurl4-openssl-dev zlib1g-dev libaio-dev libboost-all-dev p7zip-full gdb mingw-w64 binutils-mingw-w64 mingw-w64-tools libz-mingw-w64-dev

WORKDIR /root/

Expand Down Expand Up @@ -76,9 +76,9 @@ RUN ./get-maria.sh

# ---------- download golang

RUN curl -LO https://dl.google.com/go/go1.12.2.linux-amd64.tar.gz \
&& tar -xvf go1.12.2.linux-amd64.tar.gz \
&& rm go1.12.2.linux-amd64.tar.gz \
RUN curl -LO https://dl.google.com/go/go1.13.1.linux-amd64.tar.gz \
&& tar -xvf go1.13.1.linux-amd64.tar.gz \
&& rm go1.13.1.linux-amd64.tar.gz \
&& sed -i -e '$a export PATH=$PATH:/root/go/bin' .bashrc \
&& sed -i -e '$a export GOROOT=/root/go' .bashrc

Expand Down
31 changes: 0 additions & 31 deletions src/inpxcreator/Gopkg.lock

This file was deleted.

38 changes: 0 additions & 38 deletions src/inpxcreator/Gopkg.toml

This file was deleted.

3 changes: 2 additions & 1 deletion src/inpxcreator/cmd/libget2/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import (
"os"
"path/filepath"
"regexp"
"runtime"
"strconv"
"strings"
"time"
Expand Down Expand Up @@ -440,7 +441,7 @@ func main() {
log.SetPrefix("\n*** ")

flag.Usage = func() {
fmt.Fprintf(os.Stderr, "\nTool to download library updates\nVersion %s %s\n\n", misc.GetVersion(), LastGitCommit)
fmt.Fprintf(os.Stderr, "\nTool to download library updates\nVersion %s (%s) %s\n\n", misc.GetVersion(), runtime.Version(), LastGitCommit)
fmt.Fprintf(os.Stderr, "Usage: %s [options]\n\n", os.Args[0])
flag.PrintDefaults()
}
Expand Down
9 changes: 7 additions & 2 deletions src/inpxcreator/cmd/libmerge/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import (
"os"
"path/filepath"
"regexp"
"runtime"
"sort"
"strconv"
"strings"
Expand Down Expand Up @@ -158,7 +159,7 @@ func main() {
var code int

flag.Usage = func() {
fmt.Fprintf(os.Stderr, "\nTool to merge library updates\nVersion %s %s\n\n", misc.GetVersion(), LastGitCommit)
fmt.Fprintf(os.Stderr, "\nTool to merge library updates\nVersion %s (%s) %s\n\n", misc.GetVersion(), runtime.Version(), LastGitCommit)
fmt.Fprintf(os.Stderr, "Usage: %s [options]\n\n", os.Args[0])
flag.PrintDefaults()
}
Expand Down Expand Up @@ -218,7 +219,11 @@ func main() {
} else {
merge.begin, merge.end = last.begin, last.end
if verbose {
fmt.Printf("Merge archive: %s - from %d to %d size %d\n", "**new**", merge.begin, merge.end, last.info.Size())
var sz int64
if last.info != nil {
sz = last.info.Size()
}
fmt.Printf("Merge archive: %s - from %d to %d size %d\n", "**new**", merge.begin, merge.end, sz)
}
}

Expand Down
8 changes: 8 additions & 0 deletions src/inpxcreator/go.mod
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
module inpxcreator

go 1.13

require (
github.com/pkg/errors v0.8.1
golang.org/x/net v0.0.0-20191003171128-d98b1b443823
)
7 changes: 7 additions & 0 deletions src/inpxcreator/go.sum
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/net v0.0.0-20191003171128-d98b1b443823 h1:Ypyv6BNJh07T1pUSrehkLemqPKXhus2MkfktJ91kRh4=
golang.org/x/net v0.0.0-20191003171128-d98b1b443823/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
12 changes: 8 additions & 4 deletions src/inpxcreator/vendor/github.com/pkg/errors/.travis.yml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions src/inpxcreator/vendor/github.com/pkg/errors/README.md

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit 15e0000

Please sign in to comment.