Merge pull request #4357 from MilhouseVH/le10_fix_go_path

buildsystem: fix go-based packages
This commit is contained in:
Matthias Reichl 2020-05-06 18:59:53 +02:00 committed by GitHub
commit c7c6430382
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 103 additions and 186 deletions

View File

@ -911,6 +911,47 @@ target_has_feature() {
listcontains "$TARGET_FEATURES" "$1"
}
# configure variables for go
go_configure() {
unset GOARCH GOARM
case ${TARGET_ARCH} in
x86_64)
export GOARCH=amd64
;;
arm)
export GOARCH=arm
case ${TARGET_CPU} in
arm1176jzf-s)
export GOARM=6
;;
*)
export GOARM=7
;;
esac
;;
aarch64)
export GOARCH=arm64
;;
esac
export GOOS=linux
export GOROOT=${TOOLCHAIN}/lib/golang
export PATH=${PATH}:${GOROOT}/bin
go_configure_path
export CGO_ENABLED=1
export CGO_NO_EMULATION=1
export CGO_CFLAGS=$CFLAGS
}
go_configure_path() {
export GOLANG=${TOOLCHAIN}/lib/golang/bin/go
export GOPATH=${PKG_BUILD}/.gopath
export GOFLAGS="-modcacherw"
}
# find path for matching file or directory, searching standard directory hierarchy, using optional default
# if a path is located it will be set in FOUND_PATH and exit code will be 0.
find_path() {

View File

@ -16,46 +16,20 @@ PKG_TOOLCHAIN="manual"
PKG_GIT_COMMIT="a4bc1d432a2c33aa2eed37f338dceabb93641310"
pre_make_target() {
case ${TARGET_ARCH} in
x86_64)
export GOARCH=amd64
;;
arm)
export GOARCH=arm
case ${TARGET_CPU} in
arm1176jzf-s)
export GOARM=6
;;
*)
export GOARM=7
;;
esac
;;
aarch64)
export GOARCH=arm64
;;
esac
go_configure
export GOOS=linux
export CGO_ENABLED=1
export CGO_NO_EMULATION=1
export CGO_CFLAGS=${CFLAGS}
export CONTAINERD_VERSION=${PKG_VERSION}
export CONTAINERD_REVISION=${PKG_GIT_COMMIT}
export CONTAINERD_PKG=github.com/containerd/containerd
export LDFLAGS="-w -extldflags -static -X ${CONTAINERD_PKG}/version.Version=${CONTAINERD_VERSION} -X ${CONTAINERD_PKG}/version.Revision=${CONTAINERD_REVISION} -X ${CONTAINERD_PKG}/version.Package=${CONTAINERD_PKG} -extld $CC"
export GOLANG=${TOOLCHAIN}/lib/golang/bin/go
export GOPATH=${PKG_BUILD}/.gopath
export GOROOT=${TOOLCHAIN}/lib/golang
export PATH=${PATH}:${GOROOT}/bin
mkdir -p ${PKG_BUILD}/.gopath
mkdir -p ${GOPATH}
if [ -d ${PKG_BUILD}/vendor ]; then
mv ${PKG_BUILD}/vendor ${PKG_BUILD}/.gopath/src
mv ${PKG_BUILD}/vendor ${GOPATH}/src
fi
ln -fs ${PKG_BUILD} ${PKG_BUILD}/.gopath/src/github.com/containerd/containerd
ln -fs ${PKG_BUILD} ${GOPATH}/src/github.com/containerd/containerd
}
make_target() {

View File

@ -3,8 +3,8 @@
# Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv)
PKG_NAME="go"
PKG_VERSION="1.12.9"
PKG_SHA256="c31433aa0bb01856c812d40a91336e25cbce2e50800eb9fe88a7adf0305f1a5b"
PKG_VERSION="1.14.2"
PKG_SHA256="97b24d8992a8623eaf717cfc18a190b33f789cadd8cafdfd3c1b3616fd511d16"
PKG_LICENSE="BSD"
PKG_SITE="https://golang.org"
PKG_URL="https://github.com/golang/go/archive/${PKG_NAME}${PKG_VERSION}.tar.gz"

View File

@ -13,43 +13,17 @@ PKG_LONGDESC="A native Go implementation for connecting containers."
PKG_TOOLCHAIN="manual"
pre_make_target() {
case $TARGET_ARCH in
x86_64)
export GOARCH=amd64
;;
arm)
export GOARCH=arm
go_configure
case $TARGET_CPU in
arm1176jzf-s)
export GOARM=6
;;
*)
export GOARM=7
;;
esac
;;
aarch64)
export GOARCH=arm64
;;
esac
export GOOS=linux
export CGO_ENABLED=0
export CGO_NO_EMULATION=1
export CGO_CFLAGS=$CFLAGS
export LDFLAGS="-extld $CC"
export GOLANG=$TOOLCHAIN/lib/golang/bin/go
export GOPATH=$PKG_BUILD/.gopath
export GOROOT=$TOOLCHAIN/lib/golang
export PATH=$PATH:$GOROOT/bin
mkdir -p $PKG_BUILD/.gopath
mkdir -p ${GOPATH}
if [ -d $PKG_BUILD/vendor ]; then
mv $PKG_BUILD/vendor $PKG_BUILD/.gopath/src
mv $PKG_BUILD/vendor ${GOPATH}/src
fi
ln -fs $PKG_BUILD $PKG_BUILD/.gopath/src/github.com/docker/libnetwork
ln -fs $PKG_BUILD ${GOPATH}/src/github.com/docker/libnetwork
}
make_target() {

View File

@ -16,43 +16,16 @@ PKG_TOOLCHAIN="manual"
PKG_GIT_COMMIT="425e105d5a03fabd737a126ad93d62a9eeede87f"
pre_make_target() {
case $TARGET_ARCH in
x86_64)
export GOARCH=amd64
;;
arm)
export GOARCH=arm
go_configure
case $TARGET_CPU in
arm1176jzf-s)
export GOARM=6
;;
*)
export GOARM=7
;;
esac
;;
aarch64)
export GOARCH=arm64
;;
esac
export GOOS=linux
export CGO_ENABLED=1
export CGO_NO_EMULATION=1
export CGO_CFLAGS=$CFLAGS
export LDFLAGS="-w -extldflags -static -X main.gitCommit=${PKG_GIT_COMMIT} -X main.version=$(cat ./VERSION) -extld $CC"
export GOLANG=$TOOLCHAIN/lib/golang/bin/go
export GOPATH=$PKG_BUILD/.gopath
export GOROOT=$TOOLCHAIN/lib/golang
export PATH=$PATH:$GOROOT/bin
mkdir -p $PKG_BUILD/.gopath
mkdir -p ${GOPATH}
if [ -d $PKG_BUILD/vendor ]; then
mv $PKG_BUILD/vendor $PKG_BUILD/.gopath/src
mv $PKG_BUILD/vendor ${GOPATH}/src
fi
ln -fs $PKG_BUILD $PKG_BUILD/.gopath/src/github.com/opencontainers/runc
ln -fs $PKG_BUILD ${GOPATH}/src/github.com/opencontainers/runc
}
make_target() {

View File

@ -23,86 +23,63 @@ PKG_IS_ADDON="yes"
PKG_ADDON_NAME="Docker"
PKG_ADDON_TYPE="xbmc.service"
PKG_DOCKER_BUILDTAGS="daemon \
autogen \
exclude_graphdriver_devicemapper \
exclude_graphdriver_aufs \
exclude_graphdriver_btrfs \
journald"
configure_target() {
export DOCKER_BUILDTAGS="daemon \
autogen \
exclude_graphdriver_devicemapper \
exclude_graphdriver_aufs \
exclude_graphdriver_btrfs \
journald"
go_configure
case ${TARGET_ARCH} in
x86_64)
export GOARCH=amd64
;;
arm)
export GOARCH=arm
PKG_GOPATH_ENGINE=${GOPATH}
PKG_GOPATH_CLI=${GOPATH}_cli
export GOPATH=${PKG_GOPATH_CLI}:${PKG_GOPATH_ENGINE}
case ${TARGET_CPU} in
arm1176jzf-s)
export GOARM=6
;;
*)
export GOARM=7
;;
esac
;;
aarch64)
export GOARCH=arm64
;;
esac
export GOOS=linux
export CGO_ENABLED=1
export CGO_NO_EMULATION=1
export CGO_CFLAGS=${CFLAGS}
export LDFLAGS="-w -linkmode external -extldflags -Wl,--unresolved-symbols=ignore-in-shared-libs -extld $CC"
export GOLANG=${TOOLCHAIN}/lib/golang/bin/go
export GOPATH=${PKG_BUILD}/.gopath_cli:${PKG_BUILD}/.gopath
export GOROOT=${TOOLCHAIN}/lib/golang
export PATH=${PATH}:${GOROOT}/bin
mkdir -p ${PKG_BUILD}/.gopath
mkdir -p ${PKG_BUILD}/.gopath_cli
mkdir -p ${PKG_GOPATH_ENGINE}
mkdir -p ${PKG_GOPATH_CLI}
PKG_ENGINE_PATH=${PKG_BUILD}/components/engine
PKG_CLI_PATH=${PKG_BUILD}/components/cli
if [ -d ${PKG_ENGINE_PATH}/vendor ]; then
mv ${PKG_ENGINE_PATH}/vendor ${PKG_BUILD}/.gopath/src
mv ${PKG_ENGINE_PATH}/vendor ${PKG_GOPATH_ENGINE}/src
fi
if [ -d ${PKG_CLI_PATH}/vendor ]; then
mv ${PKG_CLI_PATH}/vendor ${PKG_BUILD}/.gopath_cli/src
mv ${PKG_CLI_PATH}/vendor ${PKG_GOPATH_CLI}/src
fi
# Fix missing/incompatible .go files
cp -rf ${PKG_BUILD}/.gopath/src/github.com/moby/buildkit/frontend/* ${PKG_BUILD}/.gopath_cli/src/github.com/moby/buildkit/frontend
cp -rf ${PKG_BUILD}/.gopath/src/github.com/moby/buildkit/frontend/gateway/* ${PKG_BUILD}/.gopath_cli/src/github.com/moby/buildkit/frontend/gateway
cp -rf ${PKG_BUILD}/.gopath/src/github.com/moby/buildkit/solver/* ${PKG_BUILD}/.gopath_cli/src/github.com/moby/buildkit/solver
cp -rf ${PKG_BUILD}/.gopath/src/github.com/moby/buildkit/util/progress/* ${PKG_BUILD}/.gopath_cli/src/github.com/moby/buildkit/util/progress
cp -rf ${PKG_BUILD}/.gopath/src/github.com/docker/swarmkit/manager/* ${PKG_BUILD}/.gopath_cli/src/github.com/docker/swarmkit/manager
cp -rf ${PKG_BUILD}/.gopath/src/github.com/coreos/etcd/raft/* ${PKG_BUILD}/.gopath_cli/src/github.com/coreos/etcd/raft
cp -rf ${PKG_BUILD}/.gopath/src/golang.org/x/* ${PKG_BUILD}/.gopath_cli/src/golang.org/x
cp -rf ${PKG_BUILD}/.gopath/src/github.com/opencontainers/runtime-spec/specs-go/* ${PKG_BUILD}/.gopath_cli/src/github.com/opencontainers/runtime-spec/specs-go
cp -rf ${PKG_GOPATH_ENGINE}/src/github.com/moby/buildkit/frontend/* ${PKG_GOPATH_CLI}/src/github.com/moby/buildkit/frontend
cp -rf ${PKG_GOPATH_ENGINE}/src/github.com/moby/buildkit/frontend/gateway/* ${PKG_GOPATH_CLI}/src/github.com/moby/buildkit/frontend/gateway
cp -rf ${PKG_GOPATH_ENGINE}/src/github.com/moby/buildkit/solver/* ${PKG_GOPATH_CLI}/src/github.com/moby/buildkit/solver
cp -rf ${PKG_GOPATH_ENGINE}/src/github.com/moby/buildkit/util/progress/* ${PKG_GOPATH_CLI}/src/github.com/moby/buildkit/util/progress
cp -rf ${PKG_GOPATH_ENGINE}/src/github.com/docker/swarmkit/manager/* ${PKG_GOPATH_CLI}/src/github.com/docker/swarmkit/manager
cp -rf ${PKG_GOPATH_ENGINE}/src/github.com/coreos/etcd/raft/* ${PKG_GOPATH_CLI}/src/github.com/coreos/etcd/raft
cp -rf ${PKG_GOPATH_ENGINE}/src/golang.org/x/* ${PKG_GOPATH_CLI}/src/golang.org/x
cp -rf ${PKG_GOPATH_ENGINE}/src/github.com/opencontainers/runtime-spec/specs-go/* ${PKG_GOPATH_CLI}/src/github.com/opencontainers/runtime-spec/specs-go
rm -rf ${PKG_BUILD}/.gopath_cli/src/github.com/containerd/containerd
mkdir -p ${PKG_BUILD}/.gopath_cli/src/github.com/containerd/containerd
cp -rf ${PKG_BUILD}/.gopath/src/github.com/containerd/containerd/* ${PKG_BUILD}/.gopath_cli/src/github.com/containerd/containerd
rm -rf ${PKG_GOPATH_CLI}/src/github.com/containerd/containerd
mkdir -p ${PKG_GOPATH_CLI}/src/github.com/containerd/containerd
cp -rf ${PKG_GOPATH_ENGINE}/src/github.com/containerd/containerd/* ${PKG_GOPATH_CLI}/src/github.com/containerd/containerd
rm -rf ${PKG_BUILD}/.gopath_cli/src/github.com/containerd/continuity
mkdir -p ${PKG_BUILD}/.gopath_cli/src/github.com/containerd/continuity
cp -rf ${PKG_BUILD}/.gopath/src/github.com/containerd/continuity/* ${PKG_BUILD}/.gopath_cli/src/github.com/containerd/continuity
rm -rf ${PKG_GOPATH_CLI}/src/github.com/containerd/continuity
mkdir -p ${PKG_GOPATH_CLI}/src/github.com/containerd/continuity
cp -rf ${PKG_GOPATH_ENGINE}/src/github.com/containerd/continuity/* ${PKG_GOPATH_CLI}/src/github.com/containerd/continuity
mkdir -p ${PKG_BUILD}/.gopath_cli/src/github.com/docker/docker/builder
cp -rf ${PKG_ENGINE_PATH}/builder/* ${PKG_BUILD}/.gopath_cli/src/github.com/docker/docker/builder
mkdir -p ${PKG_GOPATH_CLI}/src/github.com/docker/docker/builder
cp -rf ${PKG_ENGINE_PATH}/builder/* ${PKG_GOPATH_CLI}/src/github.com/docker/docker/builder
if [ ! -L ${PKG_BUILD}/.gopath/src/github.com/docker/docker ];then
ln -fs ${PKG_ENGINE_PATH} ${PKG_BUILD}/.gopath/src/github.com/docker/docker
if [ ! -L ${PKG_GOPATH_ENGINE}/src/github.com/docker/docker ];then
ln -fs ${PKG_ENGINE_PATH} ${PKG_GOPATH_ENGINE}/src/github.com/docker/docker
fi
if [ ! -L ${PKG_BUILD}/.gopath_cli/src/github.com/docker/cli ];then
ln -fs ${PKG_CLI_PATH} ${PKG_BUILD}/.gopath_cli/src/github.com/docker/cli
if [ ! -L ${PKG_GOPATH_CLI}/src/github.com/docker/cli ];then
ln -fs ${PKG_CLI_PATH} ${PKG_GOPATH_CLI}/src/github.com/docker/cli
fi
# used for docker version
@ -120,8 +97,8 @@ make_target() {
PKG_CLI_FLAGS="-X 'github.com/docker/cli/cli/version.Version=${VERSION}'"
PKG_CLI_FLAGS="${PKG_CLI_FLAGS} -X 'github.com/docker/cli/cli/version.GitCommit=${GITCOMMIT}'"
PKG_CLI_FLAGS="${PKG_CLI_FLAGS} -X 'github.com/docker/cli/cli/version.BuildTime=${BUILDTIME}'"
${GOLANG} build -v -o bin/docker -a -tags "${DOCKER_BUILDTAGS}" -ldflags "${LDFLAGS} ${PKG_CLI_FLAGS}" ./components/cli/cmd/docker
${GOLANG} build -v -o bin/dockerd -a -tags "${DOCKER_BUILDTAGS}" -ldflags "${LDFLAGS}" ./components/engine/cmd/dockerd
${GOLANG} build -v -o bin/docker -a -tags "${PKG_DOCKER_BUILDTAGS}" -ldflags "${LDFLAGS} ${PKG_CLI_FLAGS}" ./components/cli/cmd/docker
${GOLANG} build -v -o bin/dockerd -a -tags "${PKG_DOCKER_BUILDTAGS}" -ldflags "${LDFLAGS}" ./components/engine/cmd/dockerd
}
makeinstall_target() {

View File

@ -1,3 +1,6 @@
110
- Update to 1.5.0
109
- Update to 1.4.2

View File

@ -2,9 +2,9 @@
# Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv)
PKG_NAME="syncthing"
PKG_VERSION="1.4.2"
PKG_SHA256="061af43c1bbfcdf949499cdc50a325fff7cd67fb48f9d270adb52b4decbab899"
PKG_REV="109"
PKG_VERSION="1.5.0"
PKG_SHA256="4b4e3c9bbe9dd796919d300118b6817edfe3db9513b067a58591524b3c5a248d"
PKG_REV="110"
PKG_ARCH="any"
PKG_LICENSE="MPLv2"
PKG_SITE="https://syncthing.net/"
@ -12,7 +12,7 @@ PKG_URL="https://github.com/syncthing/syncthing/releases/download/v${PKG_VERSION
PKG_DEPENDS_TARGET="toolchain go:host"
PKG_SECTION="service/system"
PKG_SHORTDESC="Syncthing: open source continuous file synchronization"
PKG_LONGDESC="Syncthing ($PKG_VERSION) replaces proprietary sync and cloud services with something open, trustworthy and decentralized. Your data is your data alone and you deserve to choose where it is stored, if it is shared with some third party and how it's transmitted over the Internet."
PKG_LONGDESC="Syncthing (${PKG_VERSION}) replaces proprietary sync and cloud services with something open, trustworthy and decentralized. Your data is your data alone and you deserve to choose where it is stored, if it is shared with some third party and how it's transmitted over the Internet."
PKG_TOOLCHAIN="manual"
PKG_IS_ADDON="yes"
@ -21,42 +21,17 @@ PKG_ADDON_TYPE="xbmc.service"
PKG_MAINTAINER="Anton Voyl (awiouy)"
configure_target() {
export CGO_CFLAGS=${CFLAGS}
export CGO_ENABLED=1
export CGO_NO_EMULATION=1
export GOLANG=${TOOLCHAIN}/lib/golang/bin/go
export GOOS=linux
export GOROOT=${TOOLCHAIN}/lib/golang
go_configure
export LDFLAGS="-w -linkmode external -extldflags -Wl,--unresolved-symbols=ignore-in-shared-libs -extld ${CC} \
-X github.com/syncthing/syncthing/lib/build.Version=v${PKG_VERSION}"
export PATH=${PATH}:${GOROOT}/bin
case $TARGET_ARCH in
x86_64)
export GOARCH=amd64
;;
aarch64)
export GOARCH=arm64
;;
arm)
export GOARCH=arm
case $TARGET_CPU in
arm1176jzf-s)
export GOARM=6
;;
*)
export GOARM=7
;;
esac
;;
esac
}
make_target() {
${GOLANG} build -v -o bin/syncthing -a -ldflags "${LDFLAGS}" ./cmd/syncthing
${GOLANG} build -a -ldflags "${LDFLAGS}" -o bin/syncthing -v ./cmd/syncthing
}
addon() {
mkdir -p ${ADDON_BUILD}/${PKG_ADDON_ID}/bin
cp -P ${PKG_BUILD}/bin/syncthing ${ADDON_BUILD}/${PKG_ADDON_ID}/bin
cp -P ${PKG_BUILD}/bin/syncthing \
${ADDON_BUILD}/${PKG_ADDON_ID}/bin
}