# # spec file for package genders # # Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # %define pname genders Name: %{pname} Version: 1.22 Release: 1%{?dist} Summary: Static cluster configuration database License: GPL-2.0 Group: System/Management Source: https://github.com/chaos/genders/releases/download/genders-1-22-1/%{pname}-%{version}.tar.gz Patch1: Fix-Python-package-installation-use-root.patch Patch2: Remove-PERL_DESTDIR-use-DESTDIR-instead.patch Patch3: Remove-all-remains-of-EXTENSION_DESTDIR.patch Url: https://github.com/chaos/genders BuildRequires: bison BuildRequires: flex BuildRequires: gcc-c++ BuildRequires: python BuildRequires: python-devel BuildRequires: perl(ExtUtils::MakeMaker) BuildRequires: autoconf automake libtool BuildRoot: %{_tmppath}/%{name}-%{version}-build %description Genders is a static cluster configuration database used for cluster configuration management. It is used by a variety of tools and scripts for management of large clusters. The genders database is typically replicated on every node of the cluster. It describes the layout and configuration of the cluster so that tools and scripts can sense the variations of cluster nodes. By abstracting this information into a plain text file, it becomes possible to change the configuration of a cluster by modifying only one file. %package -n %{pname}-compat Summary: Compatibility Library Group: System/Management %description -n %{pname}-compat genders API that is compatible with earlier releases of genders %package -n %{pname}-devel Summary: Headers and development files Group: Development/Libraries/C and C++ Requires: %{pname} = %{version} %description -n %{pname}-devel genders headers and libraries files needed for development %package -n python-%{pname} Summary: Python bindings for genders Group: Development/Languages/Perl Requires: %{pname} = %{version} Requires: python %description -n python-%{pname} Necessary files for using genders with python %package -n perl-%{pname} Summary: Python bindings for genders Group: Development/Languages/Python Requires: %{pname} = %{version} Requires: perl-base = %{perl_version} %description -n perl-%{pname} Necessary files for using genders with perl %{!?_with_perl_extensions: %{!?_without_perl_extensions: %global _with_perl_extensions --with-perl-extensions}} %{!?_with_python_extensions: %{!?_without_python_extensions: %global _with_python_extensions --with-python-extensions}} %{!?_with_cplusplus_extensions: %{!?_without_cplusplus_extensions: %global _with_cplusplus_extensions --with-cplusplus-extensions}} # choose vendor arch by default %{!?_with_perl_site_arch: %{!?_with_perl_vendor_arch: %global _with_perl_vendor_arch --with-perl-vendor-arch}} %if %{?_with_perl_site_arch:1}%{!?_with_perl_site_arch:0} %define _perldir %(perl -e 'use Config; $T=$Config{installsitearch}; $P=$Config{siteprefix}; $T=~/$P\\/(.*)/; print "%{_prefix}/$1\\n"') %endif %if %{?_with_perl_vendor_arch:1}%{!?_with_perl_vendor_arch:0} %define _perldir %(perl -e 'use Config; $T=$Config{installvendorarch}; $P=$Config{vendorprefix}; $T=~/$P\\/(.*)/; print "%{_prefix}/$1\\n"') %endif %prep %setup -q -n %{pname}-%{version} %patch1 -p1 %patch2 -p1 %patch3 -p1 %build aclocal --force --install -I config libtoolize -f -i automake -a -f autoconf --force %configure --program-prefix=%{?_program_prefix:%{_program_prefix}} \ %{?_with_perl_extensions} \ %{?_without_perl_extensions} \ %{?_with_perl_site_arch} \ %{?_without_perl_site_arch} \ %{?_with_perl_vendor_arch} \ %{?_without_perl_vendor_arch} \ %{?_with_python_extensions} \ %{?_without_python_extensions} \ %{?_with_cplusplus_extensions} \ %{?_without_cplusplus_extensions} \ --without-java-extensions \ --disable-static make all #%%{?_smp_mflags} %install make install DESTDIR=%{buildroot} #%%{?_smp_mflags} find "$RPM_BUILD_ROOT" -name .packlist -exec sed -i "s#$RPM_BUILD_ROOT##" {} + find "$RPM_BUILD_ROOT" -name .packlist -exec sed -i '/BUILDROOT/d' {} + for file in %{buildroot}%{_prefix}/lib/genders/*.pl; do grep '#!/usr/bin/perl' $file || sed -i '1s,^,#!/usr/bin/perl\n,' $file ;done # remove .a files %if %{?_with_cplusplus_extensions:1}%{!?_with_cplusplus_extensions:0} rm -v %{buildroot}%{_libdir}/libgendersplusplus.la %endif rm -v %{buildroot}%{_libdir}/libgenders.la # turn off rpath check... causes failure on libgenders library # is a bug in perl-ExtUtils-MakeMaker export NO_BRP_CHECK_RPATH=true %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %files %defattr(-,root,root) %doc README NEWS ChangeLog DISCLAIMER DISCLAIMER.UC COPYING TUTORIAL genders.sample # It doesn't matter if the user chooses a 32bit or 64bit target. The # packaging must work off whatever Perl is installed. %{_mandir}/man1/* %{_mandir}/man3/genders* %{_mandir}/man3/libgenders* %{_bindir}/* %{_libdir}/libgenders.so.* %if %{?_with_cplusplus_extensions:1}%{!?_with_cplusplus_extensions:0} %{_libdir}/libgendersplusplus.so.* %endif %files -n %{pname}-compat %defattr(-,root,root) %{_mandir}/man3/gendlib* %dir %{_prefix}/lib/genders %{_prefix}/lib/genders/* %files -n %{pname}-devel %defattr(-,root,root) %{_includedir}/* %{_libdir}/libgenders.so %if %{?_with_cplusplus_extensions:1}%{!?_with_cplusplus_extensions:0} %{_libdir}/libgendersplusplus.so %endif %files -n python-%{pname} %if %{?_with_python_extensions:1}%{!?_with_python_extensions:0} %{_libdir}/python* %endif %files -n perl-%{pname} %if %{?_with_perl_extensions:1}%{!?_with_perl_extensions:0} %{_mandir}/man3/Libgenders* %{_mandir}/man3/Genders* %{_perldir}/* %endif %changelog