Björn Esser 58be2d7
# Conditional for release and snapshot builds.
Björn Esser 58be2d7
# Uncomment for release-builds.
Björn Esser 3735c78
#global rel_build	1
Björn Esser 3735c78
Björn Esser 3735c78
# Settings used for build from git-snapshots.
Björn Esser 3735c78
%if 0%{?rel_build}
Björn Esser 3735c78
%global gittar		%{name}-%{version}.tar.gz
Björn Esser 3735c78
%else  # 0%%{?rel_build}
Björn Esser 58be2d7
%global commit		597ce9fa42a5c11aa743c6bb3f45f57d2d395d9e
Björn Esser 58be2d7
%global commit_date	20160309
Björn Esser 3735c78
%global shortcommit	%(c=%{commit};echo ${c:0:7})
Björn Esser 3735c78
%global gitver		git%{commit_date}-%{shortcommit}
Björn Esser 3735c78
%global gitrel		.git%{commit_date}.%{shortcommit}
Björn Esser 3735c78
%global gittar		%{name}-%{version}-%{gitver}.tar.gz
Björn Esser 3735c78
%endif # 0%%{?rel_build}
Björn Esser 3735c78
Björn Esser 58be2d7
# Place rpm-macros into proper location.
Björn Esser 58be2d7
%global rpm_macros_dir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d)
Björn Esser 58be2d7
Björn Esser b834c82
# Setup _pkgdocdir.
Björn Esser b834c82
%{!?_pkgdocdir:%global _pkgdocdir	%{_docdir}/lib%{name}-%{version}}
Björn Esser b834c82
%{?_pkgdocdir:%global _pkgdocdir	%{_docdir}/lib%{name}}
Björn Esser 3735c78
Björn Esser 3c04d27
# These macros are defined by macros-file in davel-pkg.
Björn Esser 3c04d27
%global dynaplugz_datadir	%{_datadir}/%{name}
Björn Esser 3c04d27
%global dynaplugz_plugindir	%{_libdir}/%{name}
Björn Esser 3c04d27
Björn Esser 3735c78
# CMake-builds go out-of-tree.
Björn Esser 3735c78
%global cmake_builddir	build-%{?__isa}%{?dist}
Björn Esser 3735c78
Björn Esser 3735c78
# Fix 'W: unused-direct-shlib-dependency'.
Björn Esser 3735c78
%global __global_ldflags %(echo '%{?__global_ldflags} -Wl,--as-needed' | %{__sed} -e 's!^[ \t]\+!!g' -e 's![ \t]\+$!!g')
Björn Esser 3735c78
Björn Esser b834c82
# Common description.
Björn Esser b834c82
%global common_description						\
Björn Esser b834c82
Dynamic plugin-loading like a boss.
Björn Esser b834c82
Björn Esser 3735c78
Björn Esser 3735c78
Name:		dynaplugz
Björn Esser 3735c78
Version:	0.0.0.0
Björn Esser 3c04d27
Release:	0.4%{?gitrel}%{?dist}
Björn Esser 3735c78
Summary:	Dynamic plugin-loading like a boss
Björn Esser 3735c78
Björn Esser 3735c78
License:	BSD
Björn Esser 3735c78
URL:		https://github.com/shogun-toolbox/%{name}
Björn Esser 3735c78
%if 0%{?rel_build}
Björn Esser 3735c78
Source0:	%{url}/archive/v%{version}.tar.gz#/%{gittar}
Björn Esser 3735c78
%else  # 0%%{?rel_build}
Björn Esser 3735c78
Source0:	%{url}/archive/%{commit}.tar.gz#/%{gittar}
Björn Esser 3735c78
%endif # 0%%{?rel_build}
Björn Esser 3735c78
Björn Esser b834c82
%description
Björn Esser b834c82
%{common_description}
Björn Esser b834c82
Björn Esser b834c82
Björn Esser b834c82
%package -n lib%{name}
Björn Esser b834c82
Summary:	Dynamic plugin-loading like a boss
Björn Esser b834c82
Björn Esser 3c04d27
%if 0%{?fedora} || 0%{?rhel} > 7
Björn Esser 3c04d27
BuildRequires:	cmake
Björn Esser 3c04d27
%else  # 0%%{?fedora} || 0%%{?rhel} > 7
Björn Esser 3c04d27
BuildRequires:	cmake3
Björn Esser 3c04d27
%endif # 0%%{?fedora} || 0%%{?rhel} > 7
Björn Esser b834c82
BuildRequires:	gcc-c++				>= 4.4
Björn Esser 3735c78
BuildRequires:	hardlink
Björn Esser 3735c78
BuildRequires:	valgrind
Björn Esser 3735c78
Björn Esser b834c82
Provides:	%{name}				== %{version}-%{release}
Björn Esser b834c82
Provides:	%{name}%{?_isa}			== %{version}-%{release}
Björn Esser b834c82
Björn Esser b834c82
%if 0%{?fedora} && 0%{?fedora} <= 25
Björn Esser b834c82
Obsoletes:	%{name}				<= 0.0.0.0-0.2
Björn Esser b834c82
%endif # 0%%{?fedora} && 0%%{?fedora} <= 25
Björn Esser b834c82
Björn Esser b834c82
%description -n lib%{name}
Björn Esser b834c82
%{common_description}
Björn Esser 3735c78
Björn Esser 3735c78
Björn Esser b834c82
%package -n lib%{name}-devel
Björn Esser 3735c78
Summary:	Development-files for %{name}
Björn Esser 58be2d7
Björn Esser b834c82
Requires:	lib%{name}%{?_isa}		== %{version}-%{release}
Björn Esser 58be2d7
Requires:	rpm
Björn Esser b834c82
Björn Esser b834c82
Provides:	%{name}-devel			== %{version}-%{release}
Björn Esser b834c82
Provides:	%{name}-devel%{?_isa}		== %{version}-%{release}
Björn Esser b834c82
Björn Esser b834c82
%if 0%{?fedora} && 0%{?fedora} <= 25
Björn Esser b834c82
Obsoletes:	%{name}-devel			<= 0.0.0.0-0.2
Björn Esser b834c82
%endif # 0%%{?fedora} && 0%%{?fedora} <= 25
Björn Esser 3735c78
Björn Esser b834c82
%description -n lib%{name}-devel
Björn Esser 3735c78
This package contains files to develop applications
Björn Esser b834c82
using lib%{name}.
Björn Esser 3735c78
Björn Esser 3735c78
Björn Esser b834c82
%package -n lib%{name}-doc
Björn Esser b834c82
Summary:	Documentation-files for lib%{name}
Björn Esser 3735c78
Björn Esser 3735c78
BuildArch:	noarch
Björn Esser 3735c78
Björn Esser 3735c78
BuildRequires:	doxygen
Björn Esser 3735c78
BuildRequires:	graphviz
Björn Esser b834c82
BuildRequires:	perl
Björn Esser b834c82
Björn Esser b834c82
Provides:	%{name}-doc			== %{version}-%{release}
Björn Esser 3735c78
Björn Esser b834c82
%if 0%{?fedora} && 0%{?fedora} <= 25
Björn Esser b834c82
Obsoletes:	%{name}-doc			<= 0.0.0.0-0.2
Björn Esser b834c82
%endif # 0%%{?fedora} && 0%%{?fedora} <= 25
Björn Esser b834c82
Björn Esser b834c82
%description -n lib%{name}-doc
Björn Esser b834c82
This package contains documentation-files
Björn Esser b834c82
for lib%{name}.
Björn Esser 3735c78
Björn Esser 3735c78
Björn Esser 3735c78
%prep
Björn Esser 3735c78
%setup -q%{?commit:n %{name}-%{commit}}
Björn Esser 3735c78
%{__mkdir} -p %{cmake_builddir}
Björn Esser 3735c78
Björn Esser 3735c78
Björn Esser 3735c78
%build
Björn Esser 3735c78
pushd %{cmake_builddir}
Björn Esser b834c82
# Build using CMake3 on EPEL6 and EPEL7.
Björn Esser b834c82
%if 0%{?fedora} || 0%{?rhel} > 7
Björn Esser b834c82
%{cmake}								\
Björn Esser b834c82
%else  # 0%%{?fedora} || 0%%{?rhel} > 7
Björn Esser b834c82
%{cmake3}								\
Björn Esser b834c82
%endif # 0%%{?fedora} || 0%%{?rhel} > 7
Björn Esser b834c82
	-DCMAKE_BUILD_TYPE=RELEASE					\
Björn Esser b834c82
	-DPROJECT_VERSION_GIT='%{?gitrel}'				\
Björn Esser 58be2d7
	-DRPMMACROS_INSTALL_DIR='%{rpm_macros_dir}'			\
Björn Esser 3735c78
	..
Björn Esser 3735c78
%{_bindir}/doxygen -u doc/Doxyfile
Björn Esser 3735c78
%{__make} %{?_smp_mflags}
Björn Esser 3735c78
Björn Esser 3735c78
# Build the autodocs.
Björn Esser 3735c78
%{__make} doc
Björn Esser 3735c78
popd
Björn Esser 3735c78
Björn Esser 3735c78
Björn Esser 3735c78
%install
Björn Esser 3735c78
pushd %{cmake_builddir}
Björn Esser 3735c78
%{__make} install DESTDIR=%{buildroot}
Björn Esser 3735c78
Björn Esser 3735c78
# Install the autodocs.
Björn Esser 3735c78
%{__mkdir} -p %{buildroot}%{_pkgdocdir}
Björn Esser 3735c78
%{__cp} -a doc/html %{buildroot}%{_pkgdocdir}
Björn Esser 3735c78
popd
Björn Esser 3735c78
Björn Esser 3735c78
# Create symlink to tag-file.
Björn Esser 3c04d27
/bin/ln -fs %{dynaplugz_datadir}/%{name}.tag				\
Björn Esser 3735c78
	%{buildroot}%{_pkgdocdir}/html
Björn Esser 3735c78
Björn Esser 3735c78
# Install other documentation.
Björn Esser b834c82
for i in ChangeLog NEWS
Björn Esser b834c82
do
Björn Esser b834c82
	if [ ! -e "$i" ]
Björn Esser b834c82
	then
Björn Esser b834c82
		echo "dummy" > "$i"
Björn Esser b834c82
	fi
Björn Esser b834c82
done
Björn Esser b834c82
Björn Esser b834c82
%{__install} -pm 0644							\
Björn Esser b834c82
	ChangeLog NEWS README.md					\
Björn Esser 3735c78
	%{buildroot}%{_pkgdocdir}
Björn Esser 3735c78
Björn Esser 3735c78
# Hardlink duplicate documentation-files.
Björn Esser a150124
%{_sbindir}/hardlink -cv %{buildroot}%{_pkgdocdir}
Björn Esser 3735c78
Björn Esser 3735c78
Björn Esser 3735c78
%check
Björn Esser 3735c78
pushd %{cmake_builddir}
Björn Esser 3735c78
%{__make} memcheck
Björn Esser 3735c78
popd
Björn Esser 3735c78
Björn Esser 3735c78
Björn Esser b834c82
%post -n lib%{name} -p /sbin/ldconfig
Björn Esser b834c82
%postun -n lib%{name} -p /sbin/ldconfig
Björn Esser 3735c78
Björn Esser 3735c78
Björn Esser b834c82
%files -n lib%{name}
Björn Esser 3735c78
%doc %dir %{_pkgdocdir}
Björn Esser 3735c78
%doc %{_pkgdocdir}/README.md
Björn Esser b834c82
%license AUTHORS LICENSE.txt
Björn Esser 3c04d27
%dir %{dynaplugz_datadir}
Björn Esser 3c04d27
%dir %{dynaplugz_plugindir}
Björn Esser 3735c78
%{_libdir}/lib%{name}.so.*
Björn Esser 3735c78
Björn Esser 3735c78
Björn Esser b834c82
%files -n lib%{name}-devel
Björn Esser 3735c78
%doc %dir %{_pkgdocdir}
Björn Esser b834c82
%doc %{_pkgdocdir}/ChangeLog
Björn Esser b834c82
%doc %{_pkgdocdir}/NEWS
Björn Esser 3c04d27
%{dynaplugz_datadir}/*
Björn Esser 3735c78
%{_includedir}/%{name}-%{version}%{?gitrel}
Björn Esser 3735c78
%{_libdir}/cmake
Björn Esser 3735c78
%{_libdir}/lib%{name}.so
Björn Esser 3735c78
%{_libdir}/pkgconfig/%{name}.pc
Björn Esser 58be2d7
%{rpm_macros_dir}/macros.%{name}
Björn Esser 3735c78
Björn Esser 3735c78
Björn Esser b834c82
%files -n lib%{name}-doc
Björn Esser b834c82
# Pick up previously installed licenses.
Björn Esser b834c82
%{?_licensedir:%license %{_datadir}/licenses/lib%{name}*}
Björn Esser 3735c78
%doc %{_pkgdocdir}
Björn Esser 3c04d27
%dir %{dynaplugz_datadir}
Björn Esser 3c04d27
%{dynaplugz_datadir}/%{name}.tag
Björn Esser 3735c78
Björn Esser 3735c78
Björn Esser 3735c78
%changelog
Björn Esser 3c04d27
* Wed Mar 09 2016 Björn Esser <fedora@besser82.io> - 0.0.0.0-0.4.git20160309.597ce9f
Björn Esser 3c04d27
- add dynaplugz_(data|plugin)dir
Björn Esser 3c04d27
- fix ownership of %%{dynaplugz_datadir}
Björn Esser 3c04d27
- explicitly BR cmake3 on EPEL <= 7
Björn Esser 3c04d27
Björn Esser 58be2d7
* Wed Mar 09 2016 Björn Esser <fedora@besser82.io> - 0.0.0.0-0.3.git20160309.597ce9f
Björn Esser 58be2d7
- new snapshot git20160309.597ce9f
Björn Esser 58be2d7
Björn Esser b834c82
* Wed Mar 09 2016 Björn Esser <fedora@besser82.io> - 0.0.0.0-0.2.git20160304.589c448
Björn Esser b834c82
- split things in lib%%{name}-packages
Björn Esser b834c82
- add conditionals for EPEL <= 7
Björn Esser b834c82
Björn Esser 3735c78
* Fri Mar 04 2016 Björn Esser <fedora@besser82.io> - 0.0.0.0-0.1.git20160304.589c448
Björn Esser 3735c78
- initial rpm-release (#1314895)