From 6f931d29c44b326dba08d45b4827b3bdabb2da64 Mon Sep 17 00:00:00 2001 From: Harshavardhana Date: Sun, 5 Mar 2017 13:09:31 -0800 Subject: [PATCH] rpm: Add RPM spec for minio build. (#3853) Currently the package is built and hosted at https://copr.fedorainfracloud.org/coprs/minio/minio/ To enable minio repo one has to download. Fedora - 25 https://copr.fedorainfracloud.org/coprs/minio/minio/repo/fedora-25/minio-minio-fedora-25.repo Fedora - 26 https://copr.fedorainfracloud.org/coprs/minio/minio/repo/fedora-26/minio-minio-fedora-26.repo Enables for both i386 and x86_64. Fixes #3576 --- minio.spec | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 minio.spec diff --git a/minio.spec b/minio.spec new file mode 100644 index 000000000..c409f9764 --- /dev/null +++ b/minio.spec @@ -0,0 +1,83 @@ +%define tag RELEASE.2017-02-16T01-47-30Z +%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 rev-list -n 1 FETCH_HEAD +%define commitid 3d98311d9f4ceb78dba996dcdc0751253241e697 +Summary: Cloud Storage Server. +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 +URL: https://www.minio.io/ +BuildRequires: golang >= 1.7 +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 5TB. + +%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 + +%install +rm -rf $RPM_BUILD_ROOT +install -d $RPM_BUILD_ROOT%{_sbindir} +install -p %{name} $RPM_BUILD_ROOT%{_sbindir} + +%clean +rm -rf $RPM_BUILD_ROOT + +%files +%defattr(644,root,root,755) +%doc README.md README_ZH.md +%attr(755,root,root) %{_sbindir}/minio