~alpine/aports

community/minio: re-introduce aport v1 APPLIED

Drew DeVault: 1
 community/minio: re-introduce aport

 4 files changed, 121 insertions(+), 0 deletions(-)
Export patchset (mbox)
How do I use this?

Copy & paste the following snippet into your terminal to import this patchset into git:

curl -s https://lists.alpinelinux.org/~alpine/aports/patches/4115/mbox | git am -3
Learn more about email & git

[PATCH] community/minio: re-introduce aport Export this patch

This aport was removed citing concerns over the licensing change. Per
discussions on IRC, the license change was poorly executed, but not
actually a violation of anyone's licensing or copyright obligations.

This reverts commit 2f3cbd59cffd32e4c9c2c18daf33a331c5bfd091.
---
 community/minio/APKBUILD          | 77 +++++++++++++++++++++++++++++++
 community/minio/minio.confd       | 13 ++++++
 community/minio/minio.initd       | 25 ++++++++++
 community/minio/minio.pre-install |  6 +++
 4 files changed, 121 insertions(+)
 create mode 100644 community/minio/APKBUILD
 create mode 100644 community/minio/minio.confd
 create mode 100644 community/minio/minio.initd
 create mode 100644 community/minio/minio.pre-install

diff --git a/community/minio/APKBUILD b/community/minio/APKBUILD
new file mode 100644
index 0000000000..b25319d098
--- /dev/null
+++ b/community/minio/APKBUILD
@@ -0,0 +1,77 @@
# Maintainer: Drew DeVault <sir@cmpwn.com>
# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
# Contributor: Chloe Kudryavtsev <toast@toast.cafe>
pkgname=minio
_pkgver='RELEASE.2022-06-30T20-58-09Z'
pkgver=${_pkgver#*.}
pkgver=${pkgver%T*}
pkgver=0.${pkgver//-}
pkgrel=3
pkgdesc="An open source object storage server compatible with Amazon S3"
pkgusers="minio"
pkggroups="minio"
url="https://minio.io/"
license="Apache-2.0"
arch="all !x86 !armv7 !armhf" # test failures
arch="$arch !riscv64" # fails to build cpuinfo module
install="minio.pre-install"
makedepends="go"
source="
	minio.initd
	minio.confd
	$pkgname-$pkgver.tar.gz::https://github.com/minio/minio/archive/$_pkgver.tar.gz
"
builddir="$srcdir/$pkgname-$_pkgver"
options="net"
subpackages="$pkgname-openrc"

export GOPATH="$srcdir"
export CGO_ENABLED=0

# secfixes:
#   0.20200423-r0:
#     - CVE-2020-11012

build() {
	local _ldflags=$(go run buildscripts/gen-ldflags.go 2> /dev/null)
	go build -tags kqueue --ldflags "$_ldflags" -o bin/minio
}

check() {
	# cmd: disk usage errors, like same as pkg/disk
	# pkg/disk: doesn't know what btrfs is
	# pkg/s3select: fails on 32bit systems
	# pkg/event/target: fails on aarch64
	# pkg/sys: fails on aarch64
	# cmd/http: fails on aarch64, suspect ipv6 problem
	# pkg/dsync: fails on armv7
	go test -tags kqueue $(go list ./... | grep -v \
		-e 'cmd$' \
		-e pkg/disk \
		-e pkg/s3select \
		-e pkg/event/target \
		-e pkg/sys \
		-e cmd/http \
		-e pkg/dsync
		)
}

package() {
	install -Dm755 "$builddir"/bin/minio \
		"$pkgdir"/usr/bin/minio
	install -Dm755 "$srcdir"/"$pkgname".initd \
		"$pkgdir"/etc/init.d/"$pkgname"
	install -Dm644 "$srcdir"/"$pkgname".confd \
		"$pkgdir"/etc/conf.d/"$pkgname"
}

cleanup_srcdir() {
	go clean -modcache
	default_cleanup_srcdir
}

sha512sums="
6427a225d4e6c51cc5de077ccd29ddf52556722cf958e83e480df1c5882aa4fa7daebfeb970e80f8f9c3176594d8e427e8c8dbf268ce945647a11bdf1e69affd  minio.initd
ed9790fbadfb38e4d660eb1befd87e803d70dec04d936e8cd26def4a9c21240bb7cae8750ae3395aa4761e6738b9e346c86ba57761cfde30efe46d2cb459a7e4  minio.confd
283ba5ebd02b0d1946ea2992ac6f5ae9f79f9d2bd047b1069f211f1a46b04499bc7995cc1aa289bef4d4899f929542839020fae766d631fa6e21028a723f45fc  minio-0.20220630.tar.gz
"
diff --git a/community/minio/minio.confd b/community/minio/minio.confd
new file mode 100644
index 0000000000..952ce13564
--- /dev/null
+++ b/community/minio/minio.confd
@@ -0,0 +1,13 @@
# defaults to storing data in /srv/minio
# but you can run multiple instances, e.g minio.home in /srv/minio.home
MINIO_VOLUMES="/srv/${RC_SVCNAME}"

#export MINIO_ACCESS_KEY=myUser
#export MINIO_SECRET_KEY=mySecretKey

# recommended for production setups
#MINIO_OPTS='--quiet --anonymous'

# optional additional settings
#address=minio.example.com:9000
#export MINIO_DOMAIN=minio.example.com
diff --git a/community/minio/minio.initd b/community/minio/minio.initd
new file mode 100644
index 0000000000..7a8afcbb0d
--- /dev/null
+++ b/community/minio/minio.initd
@@ -0,0 +1,25 @@
#!/sbin/openrc-run
supervisor=supervise-daemon
respawn_delay=5
respawn_max=0
healthcheck_timer=30

name='Minio Block Storage Server'
command=/usr/bin/minio
command_args="server \
    ${address:+--address=$address} \
    $MINIO_OPTS \
    $MINIO_VOLUMES"
command_user="minio:minio"

start_pre() {
    # the conf.d file might contain secrets!
    [ -f "/etc/conf.d/${RC_SVCNAME}" ] && checkpath --file --mode 0600 --owner root:root "/etc/conf.d/${RC_SVCNAME}"
    # make sure the default volume exists
    checkpath --directory --mode 0700 --owner minio:minio "/srv/${RC_SVCNAME}"
}

healthcheck() {
    [ -x /usr/bin/curl ] || return 0
    /usr/bin/curl -q "${address:-localhost:9000}"/minio/health/ready
}
diff --git a/community/minio/minio.pre-install b/community/minio/minio.pre-install
new file mode 100644
index 0000000000..3015873c0f
--- /dev/null
+++ b/community/minio/minio.pre-install
@@ -0,0 +1,6 @@
#!/bin/sh

addgroup -S minio 2>/dev/null
adduser -S -D -h /var/lib/minio -s /sbin/nologin -G minio -g minio minio 2>/dev/null

exit 0

base-commit: 649c88dcec15c8e9c8f11a8c97a427a9fe2388b7
-- 
2.37.0