gentoo-overlay/www-apps/gogs/gogs-0.9.97.ebuild

216 lines
6.4 KiB
Bash

# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$
EAPI=6
GOLANG_PKG_IMPORTPATH="github.com/gogits"
GOLANG_PKG_ARCHIVEPREFIX="v"
GOLANG_PKG_LDFLAGS="-X github.com/gogits/gogs/modules/setting.BuildTime=$(date -u '+%Y-%m-%d') -X github.com/gogits/gogs/modules/setting.BuildGitHash=8ee14db"
GOLANG_PKG_USE_CGO=1
GOLANG_PKG_HAVE_TEST=1
# Dependencies
GOLANG_PKG_DEPENDENCIES=(
"github.com/alexcesaro/quotedprintable:2caba25 -> gopkg.in/alexcesaro/quotedprintable.v3"
"github.com/bradfitz/gomemcache:fb1f79c"
"github.com/Unknwon/cae:c6aac99"
"github.com/Unknwon/com:28b053d"
"github.com/Unknwon/i18n:39d6f27"
"github.com/Unknwon/paginater:7748a72"
"github.com/go-macaron/binding:9440f33"
"github.com/go-macaron/cache:5617353"
"github.com/go-macaron/captcha:8aa5919"
"github.com/go-macaron/csrf:6a9a7df"
"github.com/go-macaron/gzip:cad1c65"
"github.com/go-macaron/i18n:ef57533"
"github.com/go-macaron/inject:d8a0b86"
"github.com/go-macaron/session:66031fc"
"github.com/go-macaron/toolbox:99a42f2"
"github.com/go-sql-driver/mysql:0b58b37"
"github.com/go-xorm/core:5bf745d"
"github.com/go-xorm/xorm:37e2a03"
"github.com/gogits/chardet:2404f77"
"github.com/gogits/go-gogs-client:d8aff57"
"github.com/gogits/cron:7f3990a"
"github.com/gogits/git-module:b3009dc"
"github.com/issue9/identicon:d36b545"
"github.com/jaytaylor/html2text:52d9b78"
"github.com/klauspost/compress:08fe86a"
"github.com/klauspost/cpuid:09cded8"
"github.com/klauspost/crc32:19b0b33"
"github.com/lib/pq:50761b0"
"github.com/mattn/go-sqlite3:b5c99a7"
"github.com/mcuadros/go-version:d52711f"
"github.com/microcosm-cc/bluemonday:7d0cad0"
"github.com/msteinert/pam:02ccfbf"
"github.com/nfnt/resize:891127d"
"github.com/russross/blackfriday:93622da"
"github.com/shurcooL/sanitized_anchor_name:10ef21a"
"github.com/satori/go.uuid:0aa62d5"
"github.com/sergi/go-diff:ec7fdbb"
"github.com/strk/go-libravatar:5eed7bf"
"github.com/urfave/cli:a14d7d3"
"github.com/golang/net:1358eff -> golang.org/x"
"github.com/golang/sys:a646d33 -> golang.org/x"
"github.com/golang/text:ceefd22 -> golang.org/x"
"github.com/go-gomail/gomail:81ebce5 -> gopkg.in/gomail.v2"
"github.com/go-ini/ini:6e4869b -> gopkg.in/ini.v1"
"github.com/go-macaron/macaron:dc39d5d -> gopkg.in/macaron.v1"
"github.com/go-redis/redis:e617904 -> gopkg.in/redis.v2" #v2.3.2
"github.com/go-bufio/bufio:fe7b595 -> gopkg.in/bufio.v1"
"github.com/go-ldap/ldap:d0a5ced -> gopkg.in/ldap.v2" #v2.4.1
"github.com/go-asn1-ber/asn1-ber:4e86f43 -> gopkg.in/asn1-ber.v1" #v1.1
"github.com/editorconfig/editorconfig-core-go:a872f05 -> gopkg.in/editorconfig/editorconfig-core-go.v1"
# tidb
"github.com/go-xorm/tidb:21e4919"
"github.com/ngaut/log:cec23d3"
"github.com/pingcap/tidb:5a3f87d"
"github.com/boltdb/bolt:583e893" #v1.3.0
"github.com/juju/errors:6f54ff6"
"github.com/ngaut/pool:4406601"
"github.com/pingcap/check:ce8a2f8"
"github.com/pingcap/go-hbase:7a98d1f"
"github.com/pingcap/go-themis:dbb9966"
"github.com/syndtr/goleveldb:6ae1797"
"github.com/twinj/uuid:b505f2c"
"github.com/golang/protobuf:1f49d83"
"github.com/golang/snappy:d9eb7a3"
"github.com/ngaut/go-zookeeper:9c3719e"
"github.com/ngaut/tso:118f6c1"
"github.com/ngaut/deadline:fae8f9d"
# Unit testing
"github.com/golang/crypto:f160b6b -> golang.org/x"
"github.com/smartystreets/goconvey:5db88ed"
"github.com/smartystreets/assertions:2063fd1"
"github.com/jtolds/gls:8ddce2a"
)
inherit user golang-single
DESCRIPTION="Gogs is a self-hosted Git service written in Go"
HOMEPAGE="https://gogs.io"
LICENSE="BSD"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE_CACHE_ADAPTER="redis memcached"
IUSE_DATABASE_ADAPTER="mysql postgres +sqlite tidb"
IUSE="$IUSE_DATABASE_ADAPTER $IUSE_CACHE_ADAPTER pam +ssl"
REQUIRED_USE="|| ( sqlite tidb mysql postgres )"
DEPEND=">=dev-go/go-bindata-3.0.7"
RDEPEND="${DEPEND}
app-shells/bash
dev-vcs/git[curl,threads]
pam? ( virtual/pam )
ssl? ( net-misc/openssh )
mysql? ( virtual/mysql )
postgres? ( dev-db/postgresql[pam?,ssl?] )
sqlite? ( dev-db/sqlite:3 )
redis? ( dev-db/redis )
tidb? ( dev-db/tidb )
memcached? ( net-misc/memcached )"
USER_NAME="gogs"
USER_DIR="/var/lib/${USER_NAME}"
LOG_DIR="/var/log/${PN}"
THEME_DIR="/usr/share/theme/${PN}"
pkg_setup() {
enewgroup ${USER_NAME}
enewuser ${USER_NAME} -1 /bin/bash "${USER_DIR}" ${USER_NAME}
}
src_prepare() {
golang-single_src_prepare
sed -i \
-e "s:^# NEVER EVER.*::" \
-e "s:^# PLEASE MAKE.*::" \
-e "s:^RUN_USER =.*:RUN_USER = ${USER_NAME}:" \
-e "s:^RUN_MODE =.*:RUN_MODE = prod:" \
-e "s:^ROOT =.*:ROOT = ${EPREFIX}${USER_DIR}/repositories:" \
-e "s:^HTTP_ADDR =.*:HTTP_ADDR = 127.0.0.1:" \
-e "s:^OFFLINE_MODE =.*:OFFLINE_MODE = true:" \
-e "s:^DISABLE_ROUTER_LOG =.*:DISABLE_ROUTER_LOG = true:" \
-e "s:^STATIC_ROOT_PATH =.*:STATIC_ROOT_PATH = ${EPREFIX}${THEME_DIR}:" \
-e "s:^PATH = data/gogs.db:PATH = ${EPREFIX}${USER_DIR}/database/${PN}.db:" \
-e "s:^DISABLE_GRAVATAR =.*:DISABLE_GRAVATAR = true:" \
-e "s:^ROOT_PATH =.*:ROOT_PATH = ${EPREFIX}${LOG_DIR}:" \
conf/app.ini || die
# Fallback for sqlite as main backend
if use sqlite; then
sed -i \
-e "s:^DB_TYPE = mysql.*:DB_TYPE = sqlite3:" \
conf/app.ini || die
fi
}
src_compile() {
ebegin "Building binary data"
go-bindata \
-nomemcopy \
-o=modules/bindata/bindata.go \
-ignore="\\.DS_Store|README" \
-pkg=bindata \
conf/... || die
eend
GOLANG_PKG_TAGS=""
use sqlite && GOLANG_PKG_TAGS+=" sqlite"
use redis && GOLANG_PKG_TAGS+=" redis"
use tidb && GOLANG_PKG_TAGS+=" tidb"
use memcached && GOLANG_PKG_TAGS+=" memcache"
use ssl && GOLANG_PKG_TAGS+=" cert"
use pam && GOLANG_PKG_TAGS+=" pam"
golang-single_src_compile
}
src_install() {
golang-single_src_install
newinitd "${FILESDIR}"/${PN}.initd ${PN}
# Install configuration files
insinto ${USER_DIR}/custom/conf
insopts -m640
doins conf/app.ini
# Install HTTPS certs
if use ssl; then
keepdir ${USER_DIR}/custom/https
fi
# Fix permissions of config files
keepdir ${USER_DIR}/custom
fowners -R ${USER_NAME}:${USER_NAME} ${USER_DIR}/custom
# Install theme files
insinto ${THEME_DIR}
insopts -m440
doins -r public/
doins -r templates/
fowners -R ${USER_NAME}:${USER_NAME} ${THEME_DIR}
# Create log directory
keepdir ${LOG_DIR}
fowners -R ${USER_NAME}:${USER_NAME} ${LOG_DIR}
}
src_test() {
if has sandbox $FEATURES && has network-sandbox $FEATURES; then
eerror "Some tests require 'sandbox', and 'network-sandbox' to be disabled in FEATURES."
fi
golang-single_src_test
}