cubicweb.spec
author Sylvain Thénault <sylvain.thenault@logilab.fr>
Fri, 20 Jan 2017 18:17:04 +0100
changeset 11919 3a6746dfc57f
parent 11884 6186cd15a46d
child 11929 fcbd6b251d81
permissions -rw-r--r--
Change hooks control (deny_all_hooks_but / allow_all_hooks_but) to be more predictable Prior to this, if one execute code like: with cnx.hooks.deny_all_hooks_but('metadata'): with cnx.hooks.deny_all_hooks_but(): # mycode 'metadata' hooks will be activated anyway in the inner block, which is rather unexpected (of course in real life you only see the latest hooks control statement, the former being higher in the call stack). This is due to the underlying usage of old `enable_hook_categories` / `disable_hook_categories` methods, which were introduced much before the now official context manager based API (with `cnx.[deny|all]_all_hooks_but(...)`). To move on, this patch drop the two legacy methods, rename and privatize related internal state on the connection (`hooks_mode` becomes `_hooks_mode`, `disabled_hook_cats` and `enabled_hook_cats` become `_hooks_categories`) and reimplement the `_hooks_control` context manager to simply update them. See the added unit test for details.

%if 0%{?el5}
%define python python26
%define __python /usr/bin/python2.6
%else
%define python python
%define __python /usr/bin/python
%endif
%{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}

Name:           cubicweb
Version:        3.24.1
Release:        logilab.1%{?dist}
Summary:        CubicWeb is a semantic web application framework
Source0:        https://pypi.python.org/packages/source/c/cubicweb/cubicweb-%{version}.tar.gz
License:        LGPLv2+
Group:          Development/Languages/Python
Vendor:         Logilab <contact@logilab.fr>
Url:            https://www.cubicweb.org/project/cubicweb

BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-buildroot
BuildArch:      noarch

Requires:       %{python}
Requires:       %{python}-six >= 1.4.0
Requires:       %{python}-logilab-common >= 1.2.2
Requires:       %{python}-logilab-mtconverter >= 0.8.0
Requires:       %{python}-rql >= 0.34.0
Requires:       %{python}-yams >= 0.44.0
Requires:       %{python}-logilab-database >= 1.15.0
Requires:       %{python}-passlib => 1.7.0
Requires:       %{python}-lxml
Requires:       %{python}-twisted-web < 16.0.0
Requires:       %{python}-markdown
Requires:       pytz
# the schema view uses `dot'; at least on el5, png output requires graphviz-gd
Requires:       graphviz-gd
Requires:       gettext

BuildRequires:  %{python}
BuildRequires:  %{python}-setuptools

%description
a repository of entities / relations for knowledge management

%prep
%setup -q
%if 0%{?el5}
# change the python version in shebangs
find . -name '*.py' -type f -print0 |  xargs -0 sed -i '1,3s;^#!.*python.*$;#! /usr/bin/python2.6;'
%endif

%install
%{__python} setup.py --quiet install --no-compile --prefix=%{_prefix} --root="$RPM_BUILD_ROOT"
mkdir -p $RPM_BUILD_ROOT/var/log/cubicweb

%clean
rm -rf $RPM_BUILD_ROOT

%files 
%defattr(-, root, root)
%dir /var/log/cubicweb
%{_prefix}/share/cubicweb/*
%{python_sitelib}/*
%{_bindir}/*