app-emulation/reg: Include patch to set listen addr
authorManuel Rüger <mrueg@gentoo.org>
Mon, 6 Aug 2018 14:27:22 +0000 (16:27 +0200)
committerManuel Rüger <mrueg@gentoo.org>
Mon, 6 Aug 2018 17:40:11 +0000 (19:40 +0200)
Package-Manager: Portage-2.3.44, Repoman-2.3.10

app-emulation/reg/files/reg-0.15.4-listen-addr.patch [new file with mode: 0644]
app-emulation/reg/reg-0.15.4-r2.ebuild [new file with mode: 0644]

diff --git a/app-emulation/reg/files/reg-0.15.4-listen-addr.patch b/app-emulation/reg/files/reg-0.15.4-listen-addr.patch
new file mode 100644 (file)
index 0000000..21f2759
--- /dev/null
@@ -0,0 +1,47 @@
+From b3c826e2e48108d832cbe9fc3b630e7ff207915a Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Manuel=20R=C3=BCger?= <manuel@rueg.eu>
+Date: Wed, 18 Jul 2018 19:47:12 +0200
+Subject: [PATCH] server: Allow to restrict listen address (#115)
+
+e.g. limit to listen on localhost only
+---
+ server.go | 12 +++++++-----
+ 2 files changed, 8 insertions(+), 5 deletions(-)
+
+diff --git a/server.go b/server.go
+index 8866efed..a7cc2048 100644
+--- a/server.go
++++ b/server.go
+@@ -35,6 +35,7 @@ func (cmd *serverCommand) Register(fs *flag.FlagSet) {
+       fs.StringVar(&cmd.cert, "cert", "", "path to ssl cert")
+       fs.StringVar(&cmd.key, "key", "", "path to ssl key")
++      fs.StringVar(&cmd.listenAddress, "listen-address", "", "address to listen on")
+       fs.StringVar(&cmd.port, "port", "8080", "port for server to run on")
+       fs.StringVar(&cmd.assetPath, "asset-path", "", "Path to assets and templates")
+@@ -48,10 +49,11 @@ type serverCommand struct {
+       generateAndExit bool
+-      cert      string
+-      key       string
+-      port      string
+-      assetPath string
++      cert          string
++      key           string
++      listenAddress string
++      port          string
++      assetPath     string
+ }
+ func (cmd *serverCommand) Run(ctx context.Context, args []string) error {
+@@ -180,7 +182,7 @@ func (cmd *serverCommand) Run(ctx context.Context, args []string) error {
+       // Set up the server.
+       server := &http.Server{
+-              Addr:    ":" + cmd.port,
++              Addr:    cmd.listenAddress + ":" + cmd.port,
+               Handler: mux,
+       }
+       logrus.Infof("Starting server on port %q", cmd.port)
diff --git a/app-emulation/reg/reg-0.15.4-r2.ebuild b/app-emulation/reg/reg-0.15.4-r2.ebuild
new file mode 100644 (file)
index 0000000..1bebb08
--- /dev/null
@@ -0,0 +1,50 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit golang-build golang-vcs-snapshot user
+
+EGO_PN="github.com/genuinetools/reg"
+GIT_COMMIT="8c930c585418564a4ce472fbbfccb8c5741c2520"
+ARCHIVE_URI="https://${EGO_PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+KEYWORDS="~amd64"
+
+DESCRIPTION="Docker registry v2 command line client"
+HOMEPAGE="https://github.com/genuinetools/reg"
+SRC_URI="${ARCHIVE_URI}"
+LICENSE="MIT"
+SLOT="0"
+IUSE=""
+
+RESTRICT="test"
+
+PATCHES=( "${FILESDIR}"/${P}-listen-addr.patch )
+
+pkg_setup() {
+       enewgroup reg
+       enewuser reg -1 -1 /var/lib/reg reg
+}
+
+src_prepare() {
+       pushd src/${EGO_PN} || die
+       default
+       popd || die
+}
+
+src_compile() {
+       pushd src/${EGO_PN} || die
+       GOPATH="${S}" go build -v -ldflags "-X ${EGO_PN}/version.GITCOMMIT=${GIT_COMMIT} -X ${EGO_PN}/version.VERSION=${PV}" -o "${S}"/bin/reg . || die
+       popd || die
+}
+
+src_install() {
+       dobin bin/*
+       dodoc src/${EGO_PN}/README.md
+       insinto /var/lib/${PN}
+       doins -r src/${EGO_PN}/server/*
+       newinitd "${FILESDIR}"/reg.initd reg
+       newconfd "${FILESDIR}"/reg.confd reg
+
+       keepdir /var/log/reg
+       fowners -R reg:reg /var/log/reg /var/lib/reg/static
+}