mirror of
https://github.com/minio/minio.git
synced 2025-01-11 15:03:22 -05:00
fix: update RPM spec using rpmbuild (#10979)
To test this PR > rpmbuild --undefine=_disable_source_fetch -ba minio.spec
This commit is contained in:
parent
f139a19238
commit
350c5ff8f8
97
minio.spec
97
minio.spec
@ -1,83 +1,64 @@
|
||||
%define tag RELEASE.2017-04-25T01-27-49Z
|
||||
%define tag RELEASE.2020-11-25T22-36-25Z
|
||||
%define subver %(echo %{tag} | sed -e 's/[^0-9]//g')
|
||||
# git fetch https://github.com/minio/minio.git refs/tags/RELEASE.2017-02-16T01-47-30Z
|
||||
# git fetch https://github.com/minio/minio.git refs/tags/RELEASE.2020-11-25T22-36-25Z
|
||||
# git rev-list -n 1 FETCH_HEAD
|
||||
%define commitid 83abb310b4ce3a0dfc6d7faf78e33cb6f9132cfe
|
||||
Summary: Cloud Storage Server.
|
||||
%define commitid 91130e884b5df59d66a45a0aad4f48db88f5ca63
|
||||
Summary: High Performance, Kubernetes Native Object Storage.
|
||||
Name: minio
|
||||
Version: 0.0.%{subver}
|
||||
Release: 1
|
||||
Vendor: MinIO, Inc.
|
||||
License: Apache v2.0
|
||||
Group: Applications/File
|
||||
Source0: https://github.com/minio/minio/archive/%{tag}.tar.gz
|
||||
Source0: https://dl.minio.io/server/minio/release/linux-amd64/archive/minio.%{tag}
|
||||
Source1: https://raw.githubusercontent.com/minio/minio-service/master/linux-systemd/distributed/minio.service
|
||||
URL: https://www.min.io/
|
||||
BuildRequires: golang >= 1.7
|
||||
Requires(pre): /usr/sbin/useradd, /usr/bin/getent
|
||||
Requires(postun): /usr/sbin/userdel
|
||||
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
|
||||
|
||||
## Disable debug packages.
|
||||
%define debug_package %{nil}
|
||||
|
||||
## Go related tags.
|
||||
%define gobuild(o:) go build -ldflags "${LDFLAGS:-}" %{?**};
|
||||
%define gopath %{_libdir}/golang
|
||||
%define import_path github.com/minio/minio
|
||||
|
||||
%description
|
||||
MinIO is an object storage server released under Apache License v2.0.
|
||||
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.
|
||||
MinIO is a High Performance Object Storage released under Apache License v2.0.
|
||||
It is API compatible with Amazon S3 cloud storage service. Use MinIO to build
|
||||
high performance infrastructure for machine learning, analytics and application
|
||||
data workloads.
|
||||
|
||||
%prep
|
||||
%setup -qc
|
||||
mv %{name}-*/* .
|
||||
|
||||
install -d src/$(dirname %{import_path})
|
||||
ln -s ../../.. src/%{import_path}
|
||||
|
||||
%build
|
||||
export GOPATH=$(pwd)
|
||||
|
||||
# setup flags like 'go run buildscripts/gen-ldflags.go' would do
|
||||
tag=%{tag}
|
||||
version=${tag#RELEASE.}
|
||||
commitid=%{commitid}
|
||||
scommitid=$(echo $commitid | cut -c1-12)
|
||||
prefix=%{import_path}/cmd
|
||||
|
||||
LDFLAGS="
|
||||
-X $prefix.Version=$version
|
||||
-X $prefix.ReleaseTag=$tag
|
||||
-X $prefix.CommitID=$commitid
|
||||
-X $prefix.ShortCommitID=$scommitid
|
||||
"
|
||||
|
||||
%gobuild -o %{name} %{import_path}
|
||||
|
||||
# check that version set properly
|
||||
./%{name} version | tee v
|
||||
|
||||
#Version: 2016-09-11T17-42-18Z
|
||||
#Release-Tag: RELEASE.2016-09-11T17-42-18Z
|
||||
#Commit-ID: 85e2d886bcb005d49f3876d6849a2b5a55e03cd3
|
||||
v=$(awk '/Version:/{print $2}' v)
|
||||
test "$v" = $version
|
||||
v=$(awk '/Release-Tag:/{print $2}' v)
|
||||
test "$v" = $tag
|
||||
v=$(awk '/Commit-ID:/{print $2}' v)
|
||||
test "$v" = $commitid
|
||||
%pre
|
||||
/usr/bin/getent group minio-user || /usr/sbin/groupadd -r minio-user
|
||||
/usr/bin/getent passwd minio-user || /usr/sbin/useradd -r -d /etc/minio -s /sbin/nologin minio-user
|
||||
|
||||
%install
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
install -d $RPM_BUILD_ROOT%{_sbindir}
|
||||
install -p %{name} $RPM_BUILD_ROOT%{_sbindir}
|
||||
install -d $RPM_BUILD_ROOT/etc/minio/certs
|
||||
install -d $RPM_BUILD_ROOT/etc/systemd/system
|
||||
install -d $RPM_BUILD_ROOT/etc/default
|
||||
install -d $RPM_BUILD_ROOT/usr/local/bin
|
||||
|
||||
cat <<EOF >> $RPM_BUILD_ROOT/etc/default/minio
|
||||
# Remote volumes to be used for MinIO server.
|
||||
# Uncomment line before starting the server.
|
||||
# MINIO_VOLUMES=http://node{1...6}/export{1...32}
|
||||
|
||||
# Root credentials for the server.
|
||||
# Uncomment both lines before starting the server.
|
||||
# MINIO_ACCESS_KEY=Server-Access-Key
|
||||
# MINIO_SECRET_KEY=Server-Secret-Key
|
||||
|
||||
MINIO_OPTS="--certs-dir /etc/minio/certs"
|
||||
EOF
|
||||
|
||||
install %{_sourcedir}/minio.service $RPM_BUILD_ROOT/etc/systemd/system/minio.service
|
||||
install -p %{_sourcedir}/%{name}.%{tag} $RPM_BUILD_ROOT/usr/local/bin/minio
|
||||
|
||||
%clean
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
|
||||
%files
|
||||
%defattr(644,root,root,755)
|
||||
%doc README.md README_ZH.md
|
||||
%attr(755,root,root) %{_sbindir}/minio
|
||||
%attr(644,root,root) /etc/default/minio
|
||||
%attr(644,root,root) /etc/systemd/system/minio.service
|
||||
%attr(644,minio-user,minio-user) /etc/minio
|
||||
%attr(755,minio-user,minio-user) /usr/local/bin/minio
|
||||
|
Loading…
Reference in New Issue
Block a user