|
|
|
%define fullversion 2021-10-23T03-28-24Z
|
|
|
|
%define realversion %(echo %{fullversion} | sed -e 's/[^0-9]//g' | cut -c -8)
|
|
|
|
%define clientversion 2021-10-07T04-19-58Z
|
|
|
|
%define clientshort %(echo %{fullversion} | sed -e 's/[^0-9]//g' | cut -c -8)
|
|
|
|
|
|
|
|
%global _hardened_build 1
|
|
|
|
%define minio_user minio
|
|
|
|
%define minio_group minio
|
|
|
|
%define minio_home /var/lib/minio/
|
|
|
|
|
|
|
|
Name : minio
|
|
|
|
Version : %{realversion}
|
|
|
|
Release : 1%{?dist}
|
|
|
|
Summary : Web Object Cloud Storage Server
|
|
|
|
Group : System/Web
|
|
|
|
License : Apache License
|
|
|
|
URL : https://min.io
|
|
|
|
#Source0 : https://github.com/minio/minio/archive/RELEASE.2020-05-08T02-40-49Z.tar.gz
|
|
|
|
Source1 : minio-server.config
|
|
|
|
Source2 : minio-gateway.config
|
|
|
|
Source3 : minio-server.service
|
|
|
|
Source4 : minio-gateway.service
|
|
|
|
BuildRequires : golang
|
|
|
|
BuildRequires : git
|
|
|
|
|
|
|
|
|
|
|
|
%description
|
|
|
|
MinIO is an object storage server.
|
|
|
|
It is compatible with Amazon S3 cloud storage service.
|
|
|
|
It is best suited for storing unstructured data such as photos, videos, log
|
|
|
|
files, backups and container / VM images.
|
|
|
|
Size of an object can range from a few KBs to a maximum of 5TiB.
|
|
|
|
|
|
|
|
|
|
|
|
%package server
|
|
|
|
Summary: Web Object Cloud Storage Server
|
|
|
|
Requires: minio
|
|
|
|
%description server
|
|
|
|
Minio Server Package
|
|
|
|
|
|
|
|
|
|
|
|
%package gateway
|
|
|
|
Summary: Web Object Cloud Storage Server
|
|
|
|
Requires: minio
|
|
|
|
%description gateway
|
|
|
|
Minio Gateway Package
|
|
|
|
|
|
|
|
|
|
|
|
%package client
|
|
|
|
Summary: Web Object Cloud Storage Client
|
|
|
|
%description client
|
|
|
|
Minio Client
|
|
|
|
|
|
|
|
|
|
|
|
%prep
|
|
|
|
%setup -T -q -c %{name}-%{realversion}
|
|
|
|
export GOPATH=`pwd`
|
|
|
|
export GO111MODULE=on
|
|
|
|
mkdir -p go/src/github.com/minio/
|
|
|
|
cd go/src/github.com/minio/
|
|
|
|
git clone https://github.com/minio/minio
|
|
|
|
git clone https://github.com/minio/mc
|
|
|
|
|
|
|
|
|
|
|
|
%build
|
|
|
|
export GOPATH=`pwd`
|
|
|
|
export GO111MODULE=on
|
|
|
|
export CGO_ENABLED=0
|
|
|
|
export GOPROXY=https://goproxy.io
|
|
|
|
cd go/src/github.com/minio
|
|
|
|
pushd minio
|
|
|
|
git checkout tags/RELEASE.%{fullversion}
|
|
|
|
export COMMIT=$(git rev-parse HEAD)
|
|
|
|
export SHORTCOMMIT=$(git rev-parse --short HEAD)
|
|
|
|
export BUILDDATE=$(date +%Y%m%d)
|
|
|
|
sed 's/goGetTag = "DEVELOPMENT.GOGET"/goGetTag = "RELEASE.%{fullversion}"/' -i cmd/build-constants.go
|
|
|
|
sed 's/Version = goGetTag/Version = "%{fullversion}"/' -i cmd/build-constants.go
|
|
|
|
sed 's/ReleaseTag = goGetTag/ReleaseTag = "RELEASE.%{fullversion}"/' -i cmd/build-constants.go
|
|
|
|
sed 's/CommitID = goGetTag/CommitID = "'$COMMIT'"/' -i cmd/build-constants.go
|
|
|
|
sed 's/ShortCommitID = CommitID\[:12\]/ShortCommitID = "'$SHORTCOMMIT'"/' -i cmd/build-constants.go
|
|
|
|
go generate
|
|
|
|
go build -v -tags kqueue -trimpath --ldflags "-X github.com/minio/minio/cmd.ReleaseTag=RELEASE.%{fullversion} -X github.com/minio/minio/cmd.CommitID=$COMMIT -X github.com/minio/minio/cmd.ShortCommitID=$SHORTCOMMIT -X github.com/minio/minio/cmd.Version=%{version} -extldflags -s -w -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \n') -buildid %{version}" -o minio
|
|
|
|
popd
|
|
|
|
pushd mc
|
|
|
|
git checkout tags/RELEASE.%{clientversion}
|
|
|
|
go build -v -tags kqueue -trimpath --ldflags "-X github.com/minio/minio/cmd.ReleaseTag=RELEASE.%{fullversion} -X github.com/minio/minio/cmd.CommitID=$COMMIT -X github.com/minio/minio/cmd.ShortCommitID=$SHORTCOMMIT -X github.com/minio/minio/cmd.Version=%{version} -extldflags -s -w -B 0x$(head -c20 /dev/urandom|od -An -tx1|tr -d ' \n') -buildid %{version}" -o minio-mc
|
|
|
|
popd
|
|
|
|
|
|
|
|
|
|
|
|
%install
|
|
|
|
install -p -D -m 0555 go/src/github.com/minio/minio/minio %{buildroot}%{_bindir}/minio
|
|
|
|
install -p -D -m 0555 go/src/github.com/minio/mc/minio-mc %{buildroot}%{_bindir}/minio-mc
|
|
|
|
install -p -D -m 0644 %{SOURCE1} %{buildroot}%{_sysconfdir}/minio/server
|
|
|
|
install -p -D -m 0644 %{SOURCE2} %{buildroot}%{_sysconfdir}/minio/gateway
|
|
|
|
install -p -D -m 0644 %{SOURCE3} %{buildroot}%{_unitdir}/minio-server.service
|
|
|
|
install -p -D -m 0644 %{SOURCE4} %{buildroot}%{_unitdir}/minio-gateway.service
|
|
|
|
install -p -d -m 0700 %{buildroot}%{minio_home}
|
|
|
|
|
|
|
|
|
|
|
|
%pre
|
|
|
|
getent group %{minio_group} > /dev/null || groupadd -r %{minio_group}
|
|
|
|
getent passwd %{minio_user} > /dev/null || useradd -r -d %{minio_home} -g %{minio_group} -s /bin/bash -c "minio user" %{minio_user}
|
|
|
|
exit 0
|
|
|
|
|
|
|
|
|
|
|
|
%post server
|
|
|
|
%systemd_post minio-server.service
|
|
|
|
%preun server
|
|
|
|
%systemd_preun minio-server.service
|
|
|
|
%postun server
|
|
|
|
%systemd_postun minio-server.service
|
|
|
|
|
|
|
|
|
|
|
|
%post gateway
|
|
|
|
%systemd_post minio-gateway.service
|
|
|
|
%preun gateway
|
|
|
|
%systemd_preun minio-gateway.service
|
|
|
|
%postun gateway
|
|
|
|
%systemd_postun minio-gateway.service
|
|
|
|
|
|
|
|
|
|
|
|
%check
|
|
|
|
cd go/src/github.com/minio/minio
|
|
|
|
./minio --version | tee v
|
|
|
|
v=$(awk '/version/{print $3}' v)
|
|
|
|
test "$v" = RELEASE.%{fullversion}
|
|
|
|
|
|
|
|
|
|
|
|
%files
|
|
|
|
%doc
|
|
|
|
%caps(cap_net_bind_service=+ep) %{_bindir}/minio
|
|
|
|
%attr(700,%{minio_user},%{minio_group}) %dir %{minio_home}
|
|
|
|
|
|
|
|
|
|
|
|
%files server
|
|
|
|
%config(noreplace) %{_sysconfdir}/%{name}/server
|
|
|
|
%{_unitdir}/minio-server.service
|
|
|
|
|
|
|
|
|
|
|
|
%files gateway
|
|
|
|
%config(noreplace) %{_sysconfdir}/%{name}/gateway
|
|
|
|
%{_unitdir}/minio-gateway.service
|
|
|
|
|
|
|
|
|
|
|
|
%files client
|
|
|
|
%{_bindir}/minio-mc
|
|
|
|
|
|
|
|
|
|
|
|
%changelog
|