lbalhar / rpms / clufter

Forked from rpms/clufter 4 years ago
Clone

Blame clufter.spec

1390a93
Name:           clufter
5cc76c0
Version:        0.10.1
1390a93
Release:        1%{?dist}
1390a93
Group:          System Environment/Base
1390a93
Summary:        Tool/library for transforming/analyzing cluster configuration formats
1390a93
License:        GPLv2+
1390a93
URL:            https://github.com/jnpkrn/%{name}
1390a93
1390a93
BuildRequires:  git
1390a93
1390a93
BuildRequires:  python2-devel
1390a93
BuildRequires:  python-setuptools
1390a93
BuildRequires:  python-lxml
1390a93
1390a93
Source0:        https://people.redhat.com/jpokorny/pkgs/%{name}/%{name}-%{version}.tar.gz
1390a93
1390a93
%description
1390a93
While primarily aimed at (CMAN,rgmanager)->(Corosync/CMAN,Pacemaker) cluster
1390a93
stacks configuration conversion (as per RHEL trend), the command-filter-format
1390a93
framework (capable of XSLT) offers also other uses through its plugin library.
1390a93
1390a93
%package cli
1390a93
Group:          System Environment/Base
1390a93
Summary:        Tool for transforming/analyzing cluster configuration formats
1390a93
1390a93
BuildRequires:  bash-completion
1390a93
1390a93
BuildRequires:  help2man
1390a93
1390a93
Requires:       python-%{name} = %{version}-%{release}
1390a93
Provides:       %{name} = %{version}-%{release}
1390a93
BuildArch:      noarch
1390a93
1390a93
%description cli
1390a93
While primarily aimed at (CMAN,rgmanager)->(Corosync/CMAN,Pacemaker) cluster
1390a93
stacks configuration conversion (as per RHEL trend), the command-filter-format
1390a93
framework (capable of XSLT) offers also other uses through its plugin library.
1390a93
1390a93
This package contains %{name} command-line interface for the underlying
1390a93
library (packaged as python-%{name}).
1390a93
1390a93
%package -n python-%{name}
1390a93
Group:          System Environment/Libraries
1390a93
Summary:        Library for transforming/analyzing cluster configuration formats
1390a93
License:        GPLv2+ and GFDL
1390a93
1390a93
BuildRequires:  pkgconfig(libxml-2.0)
1390a93
1390a93
Requires:       python-lxml
1390a93
Requires:       %{_bindir}/nano
1390a93
1390a93
%description -n python-%{name}
1390a93
While primarily aimed at (CMAN,rgmanager)->(Corosync/CMAN,Pacemaker) cluster
1390a93
stacks configuration conversion (as per RHEL trend), the command-filter-format
1390a93
framework (capable of XSLT) offers also other uses through its plugin library.
1390a93
1390a93
This package contains %{name} library including built-in plugins.
1390a93
1390a93
%package lib-general
1390a93
Group:          System Environment/Libraries
1390a93
Summary:        Extra %{name} plugins usable for/as generic/auxiliary products
1390a93
Requires:       python-%{name} = %{version}-%{release}
1390a93
BuildArch:      noarch
1390a93
1390a93
%description lib-general
1390a93
This package contains set of additional plugins targeting variety of generic
1390a93
formats often serving as a byproducts in the intermediate steps of the overall
1390a93
process arrangement: either experimental commands or internally unused,
1390a93
reusable formats and filters.
1390a93
1390a93
%package lib-ccs
1390a93
Group:          System Environment/Libraries
1390a93
Summary:        Extra plugins for transforming/analyzing CMAN configuration
1390a93
Requires:       python-%{name} = %{version}-%{release}
1390a93
Requires:       %{name}-lib-general = %{version}-%{release}
1390a93
BuildArch:      noarch
1390a93
1390a93
%description lib-ccs
1390a93
This package contains set of additional plugins targeting CMAN cluster
1390a93
configuration: either experimental commands or internally unused, reusable
1390a93
formats and filters.
1390a93
1390a93
%package lib-pcs
1390a93
Group:          System Environment/Libraries
1390a93
Summary:        Extra plugins for transforming/analyzing Pacemaker configuration
1390a93
Requires:       python-%{name} = %{version}-%{release}
1390a93
Requires:       %{name}-lib-general = %{version}-%{release}
1390a93
BuildArch:      noarch
1390a93
1390a93
%description lib-pcs
1390a93
This package contains set of additional plugins targeting Pacemaker cluster
1390a93
configuration: either experimental commands or internally unused, reusable
1390a93
formats and filters.
1390a93
1390a93
%prep
1390a93
%autosetup -p1 -S git
1390a93
1390a93
## for some esoteric reason, the line above has to be empty
1390a93
%{__python2} setup.py saveopts -f setup.cfg pkg_prepare \
1390a93
                      --ccs-flatten='%{_libexecdir}/%{name}-%{version}/ccs_flatten' \
1390a93
                      --editor='%{_bindir}/nano' \
1390a93
                      --ra-metadata-dir='%{_datadir}/cluster' \
1390a93
                      --ra-metadata-ext='metadata'
1390a93
1390a93
%build
1390a93
%{__python2} setup.py build
1390a93
./run-dev --skip-ext --completion-bash 2>/dev/null \
1390a93
  | sed 's|run[-_]dev|%{name}|g' > .bashcomp
1390a93
%{__mkdir_p} -- .manpages/man1
1390a93
help2man -N -h -H -n "$(sed -n '2s|[^(]\+(\([^)]\+\))|\1|p' README)" ./run-dev \
1390a93
  | sed 's|run[-_]dev|%{name}|g' \
1390a93
  > .manpages/man1/%{name}.1
1390a93
1390a93
%install
1390a93
1390a93
# '--root' implies setuptools involves distutils to do old-style install
1390a93
%{__python2} setup.py install --skip-build --root '%{buildroot}'
1390a93
# following is needed due to umask 022 not taking effect(?) leading to 775
1390a93
%{__chmod} -- g-w '%{buildroot}%{_libexecdir}/%{name}-%{version}/ccs_flatten'
1390a93
# %%{_bindir}/%%{name} should have been created
1390a93
test -f '%{buildroot}%{_bindir}/%{name}' \
1390a93
  || %{__install} -D -pm 644 -- '%{buildroot}%{_bindir}/%{name}' \
1390a93
                                '%{buildroot}%{_bindir}/%{name}'
1390a93
declare bashcompdir="$(pkg-config --variable=completionsdir bash-completion \
1390a93
                       || echo '%{_datadir}/bash-completion/completions')"
1390a93
declare bashcomp="${bashcompdir}/%{name}"
1390a93
%{__install} -D -pm 644 -- \
1390a93
  .bashcomp '%{buildroot}%{_sysconfdir}/%{name}/bash-completion'
1390a93
%{__mkdir_p} -- "%{buildroot}${bashcompdir}"
1390a93
ln -s '%{_sysconfdir}/%{name}/bash-completion' "%{buildroot}${bashcomp}"
1390a93
# own %%{_datadir}/bash-completion in case of ...bash-completion/completions,
1390a93
# more generally any path up to any of /, /usr, /usr/share, /etc
1390a93
while true; do
1390a93
  test "$(dirname "${bashcompdir}")" != "/" \
1390a93
  && test "$(dirname "${bashcompdir}")" != "%{_prefix}" \
1390a93
  && test "$(dirname "${bashcompdir}")" != "%{_datadir}" \
1390a93
  && test "$(dirname "${bashcompdir}")" != "%{_sysconfdir}" \
1390a93
  || break
1390a93
  bashcompdir="$(dirname "${bashcompdir}")"
1390a93
done
1390a93
cat >.bashcomp-files <<-EOF
1390a93
	${bashcompdir}
1390a93
	%dir %{_sysconfdir}/%{name}
1390a93
	%verify(not size md5 mtime) %{_sysconfdir}/%{name}/bash-completion
1390a93
EOF
1390a93
%{__mkdir_p} -- '%{buildroot}%{_mandir}'
1390a93
%{__cp} -a -- .manpages/* '%{buildroot}%{_mandir}'
1390a93
%{__mkdir_p} -- '%{buildroot}%{_defaultdocdir}/%{name}-%{version}'
1390a93
%{__install} -pm 644 -- gpl-2.0.txt doc/*.txt \
1390a93
                        '%{buildroot}%{_defaultdocdir}/%{name}-%{version}'
1390a93
1390a93
%check
1390a93
# just a basic sanity check
1390a93
# we need to massage RA metadata files and PATH so the local run works
1390a93
# XXX we could also inject buildroot's site_packages dir to PYTHONPATH
1390a93
declare ret=0 \
1390a93
        ccs_flatten_dir="$(dirname '%{buildroot}%{_libexecdir}/%{name}-%{version}/ccs_flatten')"
1390a93
ln -s '%{buildroot}%{_datadir}/cluster'/*.'metadata' \
1390a93
      "${ccs_flatten_dir}"
1390a93
PATH="${PATH:+${PATH}:}${ccs_flatten_dir}" ./run-check
1390a93
ret=$?
1390a93
%{__rm} -f -- "${ccs_flatten_dir}"/*.'metadata'
1390a93
[ ${ret} -eq 0 ] || exit ${ret}
1390a93
1390a93
%post cli
1390a93
if [ $1 -gt 1 ]; then  # no gain regenerating it w/ fresh install (same result)
1390a93
declare bashcomp="%{_sysconfdir}/%{name}/bash-completion"
1390a93
%{_bindir}/%{name} --completion-bash > "${bashcomp}" 2>/dev/null || :
1390a93
fi
1390a93
1390a93
%post lib-general
1390a93
declare bashcomp="%{_sysconfdir}/%{name}/bash-completion"
1390a93
# if the completion file is not present, suppose it is not desired
1390a93
test -x '%{_bindir}/%{name}' && test -f "${bashcomp}" \
1390a93
  && %{_bindir}/%{name} --completion-bash > "${bashcomp}" 2>/dev/null || :
1390a93
1390a93
%post lib-ccs
1390a93
declare bashcomp="%{_sysconfdir}/%{name}/bash-completion"
1390a93
# if the completion file is not present, suppose it is not desired
1390a93
test -x '%{_bindir}/%{name}' && test -f "${bashcomp}" \
1390a93
  && %{_bindir}/%{name} --completion-bash > "${bashcomp}" 2>/dev/null || :
1390a93
1390a93
%post lib-pcs
1390a93
declare bashcomp="%{_sysconfdir}/%{name}/bash-completion"
1390a93
# if the completion file is not present, suppose it is not desired
1390a93
test -x '%{_bindir}/%{name}' && test -f "${bashcomp}" \
1390a93
  && %{_bindir}/%{name} --completion-bash > "${bashcomp}" 2>/dev/null || :
1390a93
1390a93
%files cli -f .bashcomp-files
1390a93
%{_mandir}/man1/*.1*
1390a93
%{_bindir}/%{name}
1390a93
%{python2_sitelib}/%{name}/__main__.py*
1390a93
%{python2_sitelib}/%{name}/main.py*
1390a93
1390a93
%files -n python-%{name}
1390a93
%dir %{_defaultdocdir}/%{name}-%{version}
1390a93
%{_defaultdocdir}/%{name}-%{version}/*[^[:digit:]].txt
1390a93
%license %{_defaultdocdir}/%{name}-%{version}/*[[:digit:]].txt
1390a93
%exclude %{python2_sitelib}/%{name}/__main__.py*
1390a93
%exclude %{python2_sitelib}/%{name}/main.py*
1390a93
%exclude %{python2_sitelib}/%{name}/ext-plugins/*/
1390a93
%{python2_sitelib}/%{name}
1390a93
%{python2_sitelib}/%{name}-*.egg-info
1390a93
%{_libexecdir}/%{name}-%{version}
1390a93
%{_datadir}/cluster
1390a93
1390a93
%files lib-general
1390a93
%{python2_sitelib}/%{name}/ext-plugins/lib-general
1390a93
1390a93
%files lib-ccs
1390a93
%{python2_sitelib}/%{name}/ext-plugins/lib-ccs
1390a93
1390a93
%files lib-pcs
1390a93
%{python2_sitelib}/%{name}/ext-plugins/lib-pcs
1390a93
1390a93
%changelog
5cc76c0
* Wed Mar 04 2015 Jan Pokorný <jpokorny+rpm-clufter@fedoraproject.org> - 0.10.1-1
5cc76c0
- bump upstream package
5cc76c0
1390a93
* Thu Feb 26 2015 Jan Pokorný <jpokorny+rpm-clufter@fedoraproject.org> - 0.10.0-1
1390a93
- packaging enhacements (structure, redundancy, ownership, scriptlets, symlink)
1390a93
- version bump so as not to collide with python-clufter co-packaged with pcs
1390a93
1390a93
* Tue Jan 20 2015 Jan Pokorný <jpokorny+rpm-clufter@fedoraproject.org> - 0.3.5-1
1390a93
- packaging enhancements (pkg-config, license tag)
1390a93
1390a93
* Wed Jan 14 2015 Jan Pokorný <jpokorny+rpm-clufter@fedoraproject.org> - 0.3.4-1
1390a93
- packaging enhancements (permissions, ownership)
1390a93
- man page for CLI frontend now included
1390a93
1390a93
* Tue Jan 13 2015 Jan Pokorný <jpokorny+rpm-clufter@fedoraproject.org> - 0.3.3-1
1390a93
- initial build