Accepting request 247122 from devel:languages:python
1 OBS-URL: https://build.opensuse.org/request/show/247122 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-matplotlib?expand=0&rev=35
This commit is contained in:
parent
3adca68032
commit
39da1c4581
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:ea16679d9476ab2757102e80327f31eb8e6c2cb09e2be89715c02e4e8fbdaf6a
|
||||
size 42163182
|
3
matplotlib-1.4.0.tar.gz
Normal file
3
matplotlib-1.4.0.tar.gz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:7417cedc598fdd98d8eb02130345d70d1a4b103e41560363267f625cb711d314
|
||||
size 51153889
|
@ -1,3 +1,105 @@
|
||||
-------------------------------------------------------------------
|
||||
Thu Aug 28 14:10:38 UTC 2014 - dmueller@suse.com
|
||||
|
||||
- adjust python-tz buildrequires to match runtime requires (python-pytz)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Aug 27 10:08:07 UTC 2014 - toddrme2178@gmail.com
|
||||
|
||||
- Add new python-cairocffi dependency. This is the recommended
|
||||
dependency for the cairo backend upstream.
|
||||
- Split out the cairo backend into its own subpackage. It is no
|
||||
longer tied to gtk, so people can use it on its own without
|
||||
pulling in any gtk dependencies.
|
||||
- Fixed issues with qt. The qt5 backend is actually a generic
|
||||
qt backend, which the qt4 backend depends on. So it needs to be
|
||||
available for the qt4 backend to work at all. However, we need
|
||||
to pull in the python-qt5 package to make it work, and that
|
||||
package is only available for openSUSE > 13.1. So we need to
|
||||
split the generic qt stuff, including the qt5 stuff, into a
|
||||
package both the qt4 and qt5 backends can depend on, and then
|
||||
create a stub qt5 package that just pulls in python-qt5
|
||||
- Reorganized some other backend packages based on backend changes
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Aug 26 12:26:40 UTC 2014 - toddrme2178@gmail.com
|
||||
|
||||
- Update to 1.4.0
|
||||
* New colormap for red-green color blind users
|
||||
* Documentation changes
|
||||
- Phil Elson rewrote of the documentation and userguide for both
|
||||
Legend and PathEffects.
|
||||
* New plotting features
|
||||
- Power-law normalization
|
||||
- Fully customizable boxplots
|
||||
- Support for datetime axes in 2d plots
|
||||
- Support for additional spectrum types
|
||||
- Support for detrending and windowing 2D arrays in mlab
|
||||
- Support for strides in mlab
|
||||
- Formatter for new-style formatting strings
|
||||
- Consistent grid sizes in streamplots
|
||||
- Get a list of all tick labels (major and minor)
|
||||
- Separate horizontal/vertical axes padding support in ImageGrid
|
||||
- Support for skewed transformations
|
||||
- Support for specifying properties of wedge and text in pie
|
||||
charts.
|
||||
- Fixed the direction of errorbar upper/lower limits
|
||||
- More consistent add-object API for Axes
|
||||
- Violin Plots
|
||||
- More `markevery` options to show only a subset of markers
|
||||
- Added size related functions to specialized `Collections`
|
||||
- Fixed the mouse coordinates giving the wrong theta value in
|
||||
Polar graph
|
||||
- Simple quiver plot for mplot3d toolkit
|
||||
- polar-plot r-tick locations
|
||||
* Date handling
|
||||
- n-d array support for date conversion
|
||||
* Configuration (rcParams)
|
||||
- 'savefig.transparent' added
|
||||
- 'axes.titleweight'
|
||||
- 'axes.formatter.useoffset' added
|
||||
* XDG compliance
|
||||
- Matplotlib now looks for configuration files (both rcparams and
|
||||
style) in XDG compliant locations.
|
||||
* 'style' package added
|
||||
- You can now easily switch between different styles using the
|
||||
new 'style' package
|
||||
* Backends
|
||||
- Qt5 backend added
|
||||
- Qt4 backend
|
||||
+ Rudolf Höfler changed the appearance of the subplottool.
|
||||
+ In the figure options dialog one can now choose to
|
||||
(re-)generate a simple automatic legend.
|
||||
+ Interactive performance of the Qt4 backend has been
|
||||
dramatically improved under windows.
|
||||
+ The mapping of key-signals from Qt to values matplotlib
|
||||
understands was greatly improved (For both Qt4 and Qt5).
|
||||
- Cairo backends
|
||||
+ The Cairo backends are now able to use the cairocffi
|
||||
bindings, which are more actively maintained than the pycairo
|
||||
bindings.
|
||||
- Gtk3Agg backend
|
||||
+ The Gtk3Agg backend now works on Python 3.x, if the cairocffi
|
||||
bindings are installed.
|
||||
- PDF backend
|
||||
+ Added context manager for saving to multi-page PDFs.
|
||||
* Text
|
||||
- Text URLs supported by SVG backend
|
||||
- Anchored sizebar font
|
||||
* Sphinx extensions
|
||||
- The context directive in the plot_directive Sphinx extension
|
||||
can now accept an optional reset setting, which will cause the
|
||||
context to be reset.
|
||||
* Widgets
|
||||
- Span Selector
|
||||
* Added an option span_stays to SpanSelector which makes the
|
||||
selector rectangle stay on the axes after you release the
|
||||
mouse.
|
||||
* GAE integration
|
||||
- Matplotlib will now run on google app engine.
|
||||
- Added python-qt5 backend on openSUSE > 13.1
|
||||
- Spec file cleanups
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Jul 16 14:42:54 UTC 2014 - toddrme2178@gmail.com
|
||||
|
||||
|
@ -17,7 +17,7 @@
|
||||
|
||||
|
||||
Name: python-matplotlib
|
||||
Version: 1.3.1
|
||||
Version: 1.4.0
|
||||
Release: 0
|
||||
Summary: Plotting Library for Python
|
||||
License: SUSE-Matplotlib
|
||||
@ -37,6 +37,7 @@ BuildRequires: ghostscript
|
||||
BuildRequires: gtk2-devel
|
||||
BuildRequires: libpng-devel
|
||||
BuildRequires: poppler-tools
|
||||
BuildRequires: python-cairocffi
|
||||
BuildRequires: python-gtk
|
||||
BuildRequires: python-gtk-devel
|
||||
BuildRequires: python-numpy-devel >= 1.2.1
|
||||
@ -64,11 +65,16 @@ Recommends: texlive-sfmath
|
||||
Recommends: texlive-tex
|
||||
%py_requires
|
||||
%if 0%{?suse_version} > 1220
|
||||
BuildRequires: python-qt4
|
||||
BuildRequires: python-qt4-devel
|
||||
BuildRequires: texlive-dvipng
|
||||
BuildRequires: texlive-sfmath
|
||||
BuildRequires: texlive-tex
|
||||
%endif
|
||||
%if 0%{?suse_version} > 1310
|
||||
BuildRequires: python-qt5
|
||||
BuildRequires: python-qt5-devel
|
||||
%endif
|
||||
%if 0%{?suse_version} < 1220
|
||||
BuildRequires: gnome-libs-devel
|
||||
BuildRequires: python-wxGTK
|
||||
@ -88,9 +94,12 @@ BuildRequires: wxWidgets-devel
|
||||
## These packages are required to prevent that matplotlib installs it's
|
||||
## own versions of the packages from the lib directory
|
||||
BuildRequires: python-dateutil
|
||||
BuildRequires: python-tz
|
||||
BuildRequires: python-pytz
|
||||
Requires: python-dateutil
|
||||
Requires: python-pytz
|
||||
%if 0%{?suse_version} && 0%{?suse_version} <= 1110
|
||||
%{!?python_sitearch: %global python_sitearch %(python -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")}
|
||||
%endif
|
||||
|
||||
%description
|
||||
matplotlib is a python 2D plotting library which produces publication
|
||||
@ -99,11 +108,23 @@ environments across platforms. matplotlib can be used in python
|
||||
scripts, the python and ipython shell (ala matlab or mathematica), web
|
||||
application servers, and six graphical user interface toolkits.
|
||||
|
||||
%package cairo
|
||||
Summary: Cairo backend for %{name}
|
||||
License: SUSE-Matplotlib
|
||||
Group: Development/Libraries/Python
|
||||
Requires: %{name} = %{version}
|
||||
Requires: python-cairocffi
|
||||
|
||||
%description cairo
|
||||
This package includes the non-interactive Cairo-based backend
|
||||
for the %{name} plotting package
|
||||
|
||||
%package gtk2
|
||||
Summary: GTK2 backends for %{name}
|
||||
License: BSD-2-Clause
|
||||
Group: Development/Libraries/Python
|
||||
Requires: %{name} = %{version}
|
||||
Requires: %{name}-cairo = %{version}
|
||||
Requires: python-gtk
|
||||
|
||||
%description gtk2
|
||||
@ -115,6 +136,7 @@ Summary: GTK3 backends for %{name}
|
||||
License: BSD-2-Clause
|
||||
Group: Development/Libraries/Python
|
||||
Requires: %{name} = %{version}
|
||||
Requires: %{name}-cairo = %{version}
|
||||
Requires: python-gobject
|
||||
Requires: python-gobject-cairo
|
||||
|
||||
@ -122,12 +144,23 @@ Requires: python-gobject-cairo
|
||||
This package includes the GTK3-based gtk3, gtk3agg, and
|
||||
gtk3cairo backends for the %{name} plotting package
|
||||
|
||||
%if 0%{?suse_version} > 1220
|
||||
%package qt-shared
|
||||
Summary: Shared files for the Qt backends for %{name}
|
||||
License: BSD-2-Clause
|
||||
Group: Development/Libraries/Python
|
||||
Requires: %{name} = %{version}
|
||||
|
||||
%description qt-shared
|
||||
This package includes files needed by both the Qt4-based pyqt4 and
|
||||
pyside backends and the Qt5-based pyqt5 backend for the %{name}
|
||||
plotting package
|
||||
|
||||
%package qt4
|
||||
Summary: Qt4 backends for %{name}
|
||||
License: BSD-2-Clause
|
||||
Group: Development/Libraries/Python
|
||||
Requires: %{name} = %{version}
|
||||
Requires: %{name}-qt-shared = %{version}
|
||||
Requires: python-pyside
|
||||
Requires: python-qt4
|
||||
|
||||
@ -135,6 +168,18 @@ Requires: python-qt4
|
||||
This package includes the Qt4-based pyqt4 and pyside backends
|
||||
for the %{name} plotting package
|
||||
|
||||
%package qt5
|
||||
Summary: Qt5 backend for %{name}
|
||||
License: BSD-2-Clause
|
||||
Group: Development/Libraries/Python
|
||||
Requires: %{name} = %{version}
|
||||
Requires: %{name}-qt-shared = %{version}
|
||||
Requires: python-qt5
|
||||
|
||||
%description qt5
|
||||
This package includes the Qt5-based pyqt5 backend
|
||||
for the %{name} plotting package
|
||||
|
||||
%package designer
|
||||
Summary: Qt Designer plugin for %{name}
|
||||
License: MIT
|
||||
@ -147,7 +192,6 @@ This is a plugin and widget to let you use %{name}
|
||||
plots as widget in PyQt4 GUIs using Qt Designer
|
||||
|
||||
This plugin comes from Python(x,y)
|
||||
%endif
|
||||
|
||||
%package tk
|
||||
Summary: Tk backend for %{name}
|
||||
@ -208,72 +252,88 @@ python setup.py install --root=%{buildroot} --prefix=%{_prefix}
|
||||
%if 0%{?suse_version} > 1220
|
||||
mkdir -p %{buildroot}%{_libdir}/qt4/plugins/designer/python/
|
||||
install -vm 755 %{SOURCE2} %{buildroot}%{_libdir}/qt4/plugins/designer/python/
|
||||
install -vm 755 %{SOURCE3} %{buildroot}%{py_sitedir}/
|
||||
install -vm 755 %{SOURCE3} %{buildroot}%{python_sitearch}/
|
||||
%endif
|
||||
|
||||
%fdupes %{buildroot}%{py_sitedir}/matplotlib/tests/baseline_images/
|
||||
%fdupes %{buildroot}%{python_sitearch}/matplotlib/tests/baseline_images/
|
||||
|
||||
%files
|
||||
%defattr(-,root,root,-)
|
||||
%doc README.rst LICENSE CHANGELOG PKG-INFO TODO CXX examples doc/users/license.rst
|
||||
%{py_sitedir}/matplotlib-%{version}_r0-py%{py_ver}.egg-info
|
||||
%{py_sitedir}/matplotlib-%{version}_r0-py%{py_ver}-nspkg.pth
|
||||
%{py_sitedir}/matplotlib/
|
||||
%{py_sitedir}/mpl_toolkits
|
||||
%exclude %{py_sitedir}/mpl_toolkits/gtktools.*
|
||||
%{py_sitedir}/pylab.py
|
||||
%{py_sitedir}/pylab.pyc
|
||||
%exclude %{py_sitedir}/matplotlib/backends/backend_cairo.*
|
||||
%exclude %{py_sitedir}/matplotlib/backends/backend_macosx.*
|
||||
%exclude %{py_sitedir}/matplotlib/backends/windowing.*
|
||||
%exclude %{py_sitedir}/matplotlib/backends/_backend_gdk.so
|
||||
%exclude %{py_sitedir}/matplotlib/backends/_gtkagg.so
|
||||
%exclude %{py_sitedir}/matplotlib/backends/_tkagg.so
|
||||
%exclude %{py_sitedir}/matplotlib/backends/backend_cocoaagg.*
|
||||
%exclude %{py_sitedir}/matplotlib/backends/backend_gdk.*
|
||||
%exclude %{py_sitedir}/matplotlib/backends/backend_gtk.*
|
||||
%exclude %{py_sitedir}/matplotlib/backends/backend_gtkagg.*
|
||||
%exclude %{py_sitedir}/matplotlib/backends/backend_gtkcairo.*
|
||||
%exclude %{py_sitedir}/matplotlib/backends/backend_gtk3.*
|
||||
%exclude %{py_sitedir}/matplotlib/backends/backend_gtk3agg.*
|
||||
%exclude %{py_sitedir}/matplotlib/backends/backend_gtk3cairo.*
|
||||
%exclude %{py_sitedir}/matplotlib/backends/backend_qt4.*
|
||||
%exclude %{py_sitedir}/matplotlib/backends/backend_qt4agg.*
|
||||
%exclude %{py_sitedir}/matplotlib/backends/backend_tkagg.*
|
||||
%exclude %{py_sitedir}/matplotlib/backends/backend_webagg.*
|
||||
%exclude %{py_sitedir}/matplotlib/backends/backend_wx.*
|
||||
%exclude %{py_sitedir}/matplotlib/backends/backend_wxagg.*
|
||||
%exclude %{py_sitedir}/matplotlib/backends/qt4_compat.*
|
||||
%exclude %{py_sitedir}/matplotlib/backends/qt4_editor/
|
||||
%exclude %{py_sitedir}/matplotlib/backends/tkagg.*
|
||||
%exclude %{py_sitedir}/matplotlib/backends/web_backend/
|
||||
%doc README.rst LICENSE CHANGELOG PKG-INFO examples doc/users/license.rst
|
||||
%{python_sitearch}/matplotlib-%{version}_r0-py*.egg-info
|
||||
%{python_sitearch}/matplotlib-%{version}_r0-py*-nspkg.pth
|
||||
%{python_sitearch}/matplotlib/
|
||||
%{python_sitearch}/mpl_toolkits
|
||||
%{python_sitearch}/freetype2.so
|
||||
%{python_sitearch}/pylab.py*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/_backend_gdk.so
|
||||
%exclude %{python_sitearch}/matplotlib/backends/_gtkagg.so
|
||||
%exclude %{python_sitearch}/matplotlib/backends/_tkagg.so
|
||||
%exclude %{python_sitearch}/matplotlib/backends/backend_cairo.*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/backend_cocoaagg.*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/backend_gdk.*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/backend_gtk.*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/backend_gtkagg.*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/backend_gtkcairo.*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/backend_gtk3.*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/backend_gtk3agg.*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/backend_gtk3cairo.*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/backend_qt4.*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/backend_qt4agg.*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/backend_qt5.*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/backend_qt5agg.*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/backend_tkagg.*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/backend_webagg.*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/backend_webagg_core.*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/backend_wx.*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/backend_wxagg.*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/qt_compat.*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/qt4_compat.*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/tkagg.*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/windowing.*
|
||||
%exclude %{python_sitearch}/matplotlib/backends/qt_editor/
|
||||
%exclude %{python_sitearch}/matplotlib/backends/web_backend/
|
||||
%exclude %{python_sitearch}/mpl_toolkits/gtktools.*
|
||||
|
||||
%files cairo
|
||||
%defattr(-,root,root,-)
|
||||
%{python_sitearch}/matplotlib/backends/backend_cairo.*
|
||||
|
||||
%files gtk2
|
||||
%defattr(-,root,root,-)
|
||||
%{py_sitedir}/matplotlib/backends/_backend_gdk.so
|
||||
%{py_sitedir}/matplotlib/backends/_gtkagg.so
|
||||
%{py_sitedir}/matplotlib/backends/backend_cairo.*
|
||||
%{py_sitedir}/matplotlib/backends/backend_gdk.*
|
||||
%{py_sitedir}/matplotlib/backends/backend_gtk.*
|
||||
%{py_sitedir}/matplotlib/backends/backend_gtkagg.*
|
||||
%{py_sitedir}/matplotlib/backends/backend_gtkcairo.*
|
||||
%{py_sitedir}/mpl_toolkits/gtktools.py*
|
||||
%{python_sitearch}/matplotlib/backends/_backend_gdk.so
|
||||
%{python_sitearch}/matplotlib/backends/_gtkagg.so
|
||||
%{python_sitearch}/matplotlib/backends/backend_gdk.*
|
||||
%{python_sitearch}/matplotlib/backends/backend_gtk.*
|
||||
%{python_sitearch}/matplotlib/backends/backend_gtkagg.*
|
||||
%{python_sitearch}/matplotlib/backends/backend_gtkcairo.*
|
||||
%{python_sitearch}/mpl_toolkits/gtktools.py*
|
||||
|
||||
%if 0%{?suse_version} > 1110
|
||||
%files gtk3
|
||||
%defattr(-,root,root,-)
|
||||
%{py_sitedir}/matplotlib/backends/backend_gtk3.*
|
||||
%{py_sitedir}/matplotlib/backends/backend_gtk3agg.*
|
||||
%{py_sitedir}/matplotlib/backends/backend_gtk3cairo.*
|
||||
%{python_sitearch}/matplotlib/backends/backend_gtk3.*
|
||||
%{python_sitearch}/matplotlib/backends/backend_gtk3agg.*
|
||||
%{python_sitearch}/matplotlib/backends/backend_gtk3cairo.*
|
||||
%endif
|
||||
|
||||
%if 0%{?suse_version} > 1220
|
||||
%files qt-shared
|
||||
# IMPORTANT: the qt4 backend makes use of the qt5 backend,
|
||||
# which is actually a generic qt backend.
|
||||
# So we need to package all the qt5 stuff in this generic
|
||||
# package, and provide a stub package which pulls in the
|
||||
# python-qt5 dependency.
|
||||
%{python_sitearch}/matplotlib/backends/backend_qt5.*
|
||||
%{python_sitearch}/matplotlib/backends/backend_qt5agg.*
|
||||
%{python_sitearch}/matplotlib/backends/qt_compat.*
|
||||
%{python_sitearch}/matplotlib/backends/qt4_compat.*
|
||||
%{python_sitearch}/matplotlib/backends/qt_editor/
|
||||
|
||||
%files qt4
|
||||
%defattr(-,root,root,-)
|
||||
%{py_sitedir}/matplotlib/backends/backend_qt4.*
|
||||
%{py_sitedir}/matplotlib/backends/backend_qt4agg.*
|
||||
%{py_sitedir}/matplotlib/backends/qt4_compat.*
|
||||
%{py_sitedir}/matplotlib/backends/qt4_editor/
|
||||
%{python_sitearch}/matplotlib/backends/backend_qt4.*
|
||||
%{python_sitearch}/matplotlib/backends/backend_qt4agg.*
|
||||
|
||||
%files designer
|
||||
%defattr(-,root,root,-)
|
||||
@ -282,24 +342,36 @@ install -vm 755 %{SOURCE3} %{buildroot}%{py_sitedir}/
|
||||
%dir %{_libdir}/qt4/plugins/designer/
|
||||
%dir %{_libdir}/qt4/plugins/designer/python/
|
||||
%{_libdir}/qt4/plugins/designer/python/matplotlibplugin.py
|
||||
%{py_sitedir}/matplotlibwidget.py
|
||||
%{python_sitearch}/matplotlibwidget.py
|
||||
|
||||
%if 0%{?suse_version} > 1310
|
||||
%files qt5
|
||||
%defattr(-,root,root,-)
|
||||
# IMPORTANT: the qt4 backend makes use of the qt5 backend,
|
||||
# which is actually a generic qt backend.
|
||||
# So we need to package all the qt5 stuff in a generic
|
||||
# package, and provide this stub package which pulls in the
|
||||
# python-qt5 dependency.
|
||||
%doc README.rst
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%files tk
|
||||
%defattr(-,root,root,-)
|
||||
%{py_sitedir}/matplotlib/backends/windowing.*
|
||||
%{py_sitedir}/matplotlib/backends/backend_tkagg.*
|
||||
%{py_sitedir}/matplotlib/backends/tkagg.*
|
||||
%{py_sitedir}/matplotlib/backends/_tkagg.so
|
||||
%{python_sitearch}/matplotlib/backends/windowing.*
|
||||
%{python_sitearch}/matplotlib/backends/backend_tkagg.*
|
||||
%{python_sitearch}/matplotlib/backends/tkagg.*
|
||||
%{python_sitearch}/matplotlib/backends/_tkagg.so
|
||||
|
||||
%files web
|
||||
%defattr(-,root,root,-)
|
||||
%{py_sitedir}/matplotlib/backends/backend_webagg.*
|
||||
%{py_sitedir}/matplotlib/backends/web_backend/
|
||||
%{python_sitearch}/matplotlib/backends/backend_webagg.*
|
||||
%{python_sitearch}/matplotlib/backends/backend_webagg_core.*
|
||||
%{python_sitearch}/matplotlib/backends/web_backend/
|
||||
|
||||
%files wx
|
||||
%defattr(-,root,root,-)
|
||||
%{py_sitedir}/matplotlib/backends/backend_wx.*
|
||||
%{py_sitedir}/matplotlib/backends/backend_wxagg.*
|
||||
%{python_sitearch}/matplotlib/backends/backend_wx.*
|
||||
%{python_sitearch}/matplotlib/backends/backend_wxagg.*
|
||||
|
||||
%changelog
|
||||
|
Loading…
Reference in New Issue
Block a user