[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