fix: update RPM spec using rpmbuild (#10979)

To test this PR

> rpmbuild --undefine=_disable_source_fetch -ba minio.spec
master
Harshavardhana 4 years ago committed by GitHub
parent f139a19238
commit 350c5ff8f8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 93
      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.
%prep
%setup -qc
mv %{name}-*/* .
install -d src/$(dirname %{import_path})
ln -s ../../.. src/%{import_path}
%build
export GOPATH=$(pwd)
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.
# 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
%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
LDFLAGS="
-X $prefix.Version=$version
-X $prefix.ReleaseTag=$tag
-X $prefix.CommitID=$commitid
-X $prefix.ShortCommitID=$scommitid
"
%install
rm -rf $RPM_BUILD_ROOT
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
%gobuild -o %{name} %{import_path}
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}
# check that version set properly
./%{name} version | tee v
# Root credentials for the server.
# Uncomment both lines before starting the server.
# MINIO_ACCESS_KEY=Server-Access-Key
# MINIO_SECRET_KEY=Server-Secret-Key
#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
MINIO_OPTS="--certs-dir /etc/minio/certs"
EOF
%install
rm -rf $RPM_BUILD_ROOT
install -d $RPM_BUILD_ROOT%{_sbindir}
install -p %{name} $RPM_BUILD_ROOT%{_sbindir}
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…
Cancel
Save