[NLopt/el5] restructured spec-file for quick switching between snapshot and release
Björn Esser
besser82 at fedoraproject.org
Fri Dec 20 13:31:12 UTC 2013
commit 0704e5300c62356e00bf2ac7550741dcf7c57601
Author: Björn Esser <bjoern.esser at gmail.com>
Date: Fri Dec 20 14:30:52 2013 +0100
restructured spec-file for quick switching between snapshot and release
NLopt.spec | 128 ++++++++++++++++++++++++++++++++----------------------------
1 files changed, 68 insertions(+), 60 deletions(-)
---
diff --git a/NLopt.spec b/NLopt.spec
index 1aa541e..275a35f 100644
--- a/NLopt.spec
+++ b/NLopt.spec
@@ -1,3 +1,17 @@
+# Conditional for release and snapshot builds. Uncomment for release-builds.
+# %%global rel_build 1
+
+# Settings used for build from snapshots.
+%{!?rel_build:%global commit 35e63778654f55baafbdf554de58ac3c20220c33}
+%{!?rel_build:%global commit_date 20130903}
+%{!?rel_build:%global shortcommit %(c=%{commit};echo ${c:0:7})}
+%{!?rel_build:%global gitver git%{commit_date}-%{shortcommit}}
+%{!?rel_build:%global gitrel .git%{commit_date}.%{shortcommit}}
+%{!?rel_build:%global gittar %{name}-%{version}-%{gitver}.tar.gz}
+
+# Get a lowercase name for virtual provides.
+%global lc_name %(n=%{name};echo ${n,,})
+
# Needed stuff for Octave.
%global octpkg %{name}
@@ -23,19 +37,11 @@
%{!?el5:%global guile_pkgconf %(pkg-config --list-all | grep guile | sed -e 's! .*$!!g')}
%{!?el5:%global guile_sitedir %(pkg-config --variable=sitedir %{guile_pkgconf})}
-# This is a post-release with lot's of improvements.
-%global commit 35e63778654f55baafbdf554de58ac3c20220c33
-%global shortcommit %(c=%{commit}; echo ${c:0:7})
-%global commitdate 20130903
-%global gitrelease .git%{commitdate}.%{shortcommit}
-
-%global lc_name nlopt
-
-Name: NLopt
-Version: 2.4
-Release: 3%{gitrelease}%{?dist}
-Summary: Open-Source library for nonlinear optimization
-%{?el5:Group: System Environment/Libraries}
+Name: NLopt
+Version: 2.4
+Release: 3%{?gitrel}%{?dist}
+Summary: Open-Source library for nonlinear optimization
+%{?el5:Group: System Environment/Libraries}
# The detailed license-breakdown of the sources is:
#
@@ -65,31 +71,32 @@ Summary: Open-Source library for nonlinear optimization
# -------------
# praxis/* subplex/*
#
-License: BSD and LGPLv2+ and MIT and Public Domain
-URL: http://ab-initio.mit.edu/nlopt
-Source0: https://github.com/stevengj/%{lc_name}/archive/%{commit}/%{name}-%{version}-%{shortcommit}.tar.gz
+License: BSD and LGPLv2+ and MIT and Public Domain
+URL: http://ab-initio.mit.edu/%{lc_name}
+%{?rel_build:Source0: http://ab-initio.mit.edu/%{lc_name}/%{lc_name}-%{version}.tar.gz}
+%{!?rel_build:Source0: https://github.com/stevengj/%{lc_name}/archive/%{commit}/%{gittar}}
%{?el5:BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)}
-BuildRequires: libtool
-BuildRequires: ncurses-devel
-BuildRequires: octave-devel
+BuildRequires: libtool
+BuildRequires: ncurses-devel
+BuildRequires: octave-devel
%if 0%{?fedora} || 0%{?rhel} >= 6
-BuildRequires: guile-devel
-BuildRequires: pkgconfig
-BuildRequires: swig
+BuildRequires: guile-devel
+BuildRequires: pkgconfig
+BuildRequires: swig
%endif
%if 0%{?fedora} || 0%{?rhel} >= 7
-BuildRequires: numpy
-BuildRequires: python2-devel
-BuildRequires: python3-devel
-BuildRequires: python3-numpy
+BuildRequires: numpy
+BuildRequires: python2-devel
+BuildRequires: python3-devel
+BuildRequires: python3-numpy
%endif
# The "gnulib" is a copylib and has a wildcard-permission from FPC.
# See: https://fedorahosted.org/fpc/ticket/174
-Provides: bundled(gnulib)
-Provides: %{lc_name} = %{version}-%{release}
-Provides: %{lc_name}%{?_isa} = %{version}-%{release}
+Provides: bundled(gnulib)
+Provides: %{lc_name} = %{version}-%{release}
+Provides: %{lc_name}%{?_isa} = %{version}-%{release}
%description
NLopt is a library for nonlinear local and global optimization, for
@@ -102,24 +109,24 @@ been made with C++-support enabled.
%package devel
-Summary: Development files for %{name}
-%{?el5:Group: Development/Libraries}
+Summary: Development files for %{name}
+%{?el5:Group: Development/Libraries}
-Requires: %{name}%{?_isa} = %{version}-%{release}
+Requires: %{name}%{?_isa} = %{version}-%{release}
-Provides: %{lc_name}-devel = %{version}-%{release}
-Provides: %{lc_name}-devel%{?_isa} = %{version}-%{release}
+Provides: %{lc_name}-devel = %{version}-%{release}
+Provides: %{lc_name}-devel%{?_isa} = %{version}-%{release}
%description devel
This package contains development files for %{name}.
%package doc
-Summary: Documentation files for %{name}
-%{?el5:Group: Documentation}
+Summary: Documentation files for %{name}
+%{?el5:Group: Documentation}
%{?!el5:BuildArch: noarch}
-Provides: %{lc_name}-doc = %{version}-%{release}
+Provides: %{lc_name}-doc = %{version}-%{release}
%description doc
This package contains documentation files for %{name}.
@@ -127,26 +134,26 @@ This package contains documentation files for %{name}.
%if 0%{?fedora} || 0%{?rhel} >= 6
%package -n guile-%{name}
-Summary: Guile bindings for %{name}
+Summary: Guile bindings for %{name}
-Requires: guile%{?_isa}
-Requires: %{name}%{?_isa} = %{version}-%{release}
+Requires: guile%{?_isa}
+Requires: %{name}%{?_isa} = %{version}-%{release}
-Provides: guile-%{lc_name} = %{version}-%{release}
-Provides: guile-%{lc_name}%{?_isa} = %{version}-%{release}
+Provides: guile-%{lc_name} = %{version}-%{release}
+Provides: guile-%{lc_name}%{?_isa} = %{version}-%{release}
%description -n guile-%{name}
This package contains Guile bindings for %{name}.
%package -n guile-%{name}-devel
-Summary: Development files of Guile bindings for %{name}
+Summary: Development files of Guile bindings for %{name}
-Requires: guile-%{name}%{?_isa} = %{version}-%{release}
-Requires: %{name}-devel%{?_isa} = %{version}-%{release}
+Requires: guile-%{name}%{?_isa} = %{version}-%{release}
+Requires: %{name}-devel%{?_isa} = %{version}-%{release}
-Provides: guile-%{lc_name}-devel = %{version}-%{release}
-Provides: guile-%{lc_name}-devel%{?_isa} = %{version}-%{release}
+Provides: guile-%{lc_name}-devel = %{version}-%{release}
+Provides: guile-%{lc_name}-devel%{?_isa} = %{version}-%{release}
%description -n guile-%{name}-devel
This package contains Development files
@@ -158,13 +165,13 @@ of Guile bindings for %{name}.
Summary: Octave bindings for %{name}
%{?el5:Group: System Environment/Libraries}
-Requires: %{name}%{?_isa} = %{version}-%{release}
-Requires: octave(api) = %{octave_api}
+Requires: %{name}%{?_isa} = %{version}-%{release}
+Requires: octave(api) = %{octave_api}
Requires(post): octave
Requires(postun): octave
-Provides: octave-%{lc_name} = %{version}-%{release}
-Provides: octave-%{lc_name}%{?_isa} = %{version}-%{release}
+Provides: octave-%{lc_name} = %{version}-%{release}
+Provides: octave-%{lc_name}%{?_isa} = %{version}-%{release}
%description -n octave-%{name}
This package contains the Octave bindings for %{name}.
@@ -172,24 +179,24 @@ This package contains the Octave bindings for %{name}.
%if 0%{?fedora} || 0%{?rhel} >= 7
%package -n python-%{name}
-Summary: Python bindings for %{name}
+Summary: Python bindings for %{name}
-Requires: %{name}%{?_isa} = %{version}-%{release}
+Requires: %{name}%{?_isa} = %{version}-%{release}
-Provides: python-%{lc_name} = %{version}-%{release}
-Provides: python-%{lc_name}%{?_isa} = %{version}-%{release}
+Provides: python-%{lc_name} = %{version}-%{release}
+Provides: python-%{lc_name}%{?_isa} = %{version}-%{release}
%description -n python-%{name}
This package contains Python bindings for %{name}.
%package -n python3-%{name}
-Summary: Python3 bindings for %{name}
+Summary: Python3 bindings for %{name}
-Requires: %{name}%{?_isa} = %{version}-%{release}
+Requires: %{name}%{?_isa} = %{version}-%{release}
-Provides: python3-%{lc_name} = %{version}-%{release}
-Provides: python3-%{lc_name}%{?_isa} = %{version}-%{release}
+Provides: python3-%{lc_name} = %{version}-%{release}
+Provides: python3-%{lc_name}%{?_isa} = %{version}-%{release}
%description -n python3-%{name}
This package contains Python3 bindings for %{name}.
@@ -197,7 +204,7 @@ This package contains Python3 bindings for %{name}.
%prep
-%setup -qn %{lc_name}-%{commit}
+%setup -q%{!?rel_build:n %{lc_name}-%{commit_src}}%{?rel_build:n %{lc_name}-%{version}}
# Move all %%doc to topdir and append their belonging.
mv -f README.md README
@@ -393,6 +400,7 @@ octave -H -q --no-window-system --no-site-file --eval "pkg rebuild"
%changelog
* Fri Dec 20 2013 Björn Esser <bjoern.esser at gmail.com> - 2.4-3.git20130903.35e6377
- made %%clean-target conditional on el5
+- restructured spec-file for quick switching between snapshot and release
* Wed Oct 02 2013 Björn Esser <bjoern.esser at gmail.com> - 2.4-2.git20130903.35e6377
- adaptions for new Python-guidelines
More information about the scm-commits
mailing list