Update to 2.0.10
This commit is contained in:
parent
f3a92585b0
commit
b309c573b4
1
.gitignore
vendored
1
.gitignore
vendored
@ -8,3 +8,4 @@ swig-2.0.0.tar.gz
|
||||
/swig-2.0.7.tar.gz
|
||||
/swig-2.0.8.tar.gz
|
||||
/swig-2.0.9.tar.gz
|
||||
/swig-2.0.10.tar.gz
|
||||
|
2
sources
2
sources
@ -1 +1 @@
|
||||
54d534b14a70badc226129159412ea85 swig-2.0.9.tar.gz
|
||||
6d5e7ad05b4a404e5e85db9befb70c9a swig-2.0.10.tar.gz
|
||||
|
12
swig-2.0.10-Fix-x390-build.patch
Normal file
12
swig-2.0.10-Fix-x390-build.patch
Normal file
@ -0,0 +1,12 @@
|
||||
diff -up swig-2.0.10/configure.ac.orig swig-2.0.10/configure.ac
|
||||
--- swig-2.0.10/configure.ac.orig 2013-06-05 14:04:47.707542473 +0200
|
||||
+++ swig-2.0.10/configure.ac 2013-06-05 14:07:20.338761781 +0200
|
||||
@@ -274,6 +274,8 @@ then
|
||||
then CCSHARED="-fpic"
|
||||
else CCSHARED="+z"
|
||||
fi;;
|
||||
+ s390x*-*-*) CCSHARED="-fpic" ;;
|
||||
+ s390*-*-*) CCSHARED="-fPIC" ;;
|
||||
*-*-linux*) CCSHARED="-fpic";;
|
||||
*-*-freebsd* | *-*-openbsd*) CCSHARED="-fpic";;
|
||||
*-*-netbsd*) CCSHARED="-fPIC";;
|
353
swig.1
Normal file
353
swig.1
Normal file
@ -0,0 +1,353 @@
|
||||
.\" First parameter, NAME, should be all caps
|
||||
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
||||
.\" other parameters are allowed: see man(7), man(1)
|
||||
.\" Manpage for swig.
|
||||
.TH SWIG 1 "2013-05-24"
|
||||
.SH NAME
|
||||
swig \- Simplified Wrapper and Interface Generator
|
||||
.SH SYNOPSIS
|
||||
.B swig
|
||||
.RI [ options ] " file"
|
||||
|
||||
.SH DESCRIPTION
|
||||
The swig command is used to create wrapper code to connect C and C++ code
|
||||
to scripting languages like Perl, Python, Tcl etc. from the definition of
|
||||
the interface.
|
||||
For detailed information on writing those interface definitions please
|
||||
refer to /usr/share/doc/swig-doc-2.0.9/Doc/Manual/index.html from the
|
||||
swig-doc package.
|
||||
This manpage concentrates on explaining the invocation of the swig command.
|
||||
|
||||
.SH OPTIONS
|
||||
.SS Target Language Options:
|
||||
.TP
|
||||
.B \-allegrocl
|
||||
Generate ALLEGROCL wrappers
|
||||
.TP
|
||||
.B \-chicken
|
||||
Generate CHICKEN wrappers
|
||||
.TP
|
||||
.B \-clisp
|
||||
Generate CLISP wrappers
|
||||
.TP
|
||||
.B \-cffi
|
||||
Generate CFFI wrappers
|
||||
.TP
|
||||
.B \-csharp
|
||||
Generate C# wrappers
|
||||
.TP
|
||||
.B \-d
|
||||
Generate D wrappers
|
||||
.TP
|
||||
.B \-go
|
||||
Generate Go wrappers
|
||||
.TP
|
||||
.B \-guile
|
||||
Generate Guile wrappers
|
||||
.TP
|
||||
.B \-java
|
||||
Generate Java wrappers
|
||||
.TP
|
||||
.B \-lua
|
||||
Generate Lua wrappers
|
||||
.TP
|
||||
.B \-modula3
|
||||
Generate Modula 3 wrappers
|
||||
.TP
|
||||
.B \-mzscheme
|
||||
Generate Mzscheme wrappers
|
||||
.TP
|
||||
.B \-ocaml
|
||||
Generate Ocaml wrappers
|
||||
.TP
|
||||
.B \-octave
|
||||
Generate Octave wrappers
|
||||
.TP
|
||||
.B \-perl
|
||||
Generate Perl wrappers
|
||||
.TP
|
||||
.B \-php
|
||||
Generate PHP wrappers
|
||||
.TP
|
||||
.B \-pike
|
||||
Generate Pike wrappers
|
||||
.TP
|
||||
.B \-python
|
||||
Generate Python wrappers
|
||||
.TP
|
||||
.B \-r
|
||||
Generate R (aka GNU S) wrappers
|
||||
.TP
|
||||
.B \-ruby
|
||||
Generate Ruby wrappers
|
||||
.TP
|
||||
.B \-sexp
|
||||
Generate Lisp S-Expressions wrappers
|
||||
.TP
|
||||
.B \-tcl
|
||||
Generate Tcl wrappers
|
||||
.TP
|
||||
.B \-uffi
|
||||
Generate Common Lisp / UFFI wrappers
|
||||
.TP
|
||||
.B \-xml
|
||||
Generate XML wrappers
|
||||
i
|
||||
|
||||
.SS General Options:
|
||||
.TP
|
||||
.B \-addextern
|
||||
Add extra extern declarations
|
||||
.TP
|
||||
.B \-c++
|
||||
Enable C++ processing
|
||||
.TP
|
||||
.BI "\-co " file
|
||||
Check \fIfile\fR out of the SWIG library
|
||||
.TP
|
||||
.B \-copyctor
|
||||
Automatically generate copy constructors wherever possible
|
||||
.TP
|
||||
.B \-cpperraswarn
|
||||
Treat the preprocessor #error statement as #warning (default)
|
||||
.TP
|
||||
.B \-copyright
|
||||
Display copyright notices
|
||||
.TP
|
||||
.B \-debug-classes
|
||||
Display information about the classes found in the interface
|
||||
.TP
|
||||
.BI "\-debug-module " n
|
||||
Display module parse tree at stages 1-4, \fIn\fR is a csv list of stages
|
||||
.TP
|
||||
.B \-debug-symtabs
|
||||
Display symbol tables information
|
||||
.TP
|
||||
.B \-debug-symbols
|
||||
Display target language symbols in the symbol tables
|
||||
.TP
|
||||
.B \-debug-csymbols
|
||||
Display C symbols in the symbol tables
|
||||
.TP
|
||||
.B \-debug-lsymbols
|
||||
Display target language layer symbols
|
||||
.TP
|
||||
.B \-debug-tags
|
||||
Display information about the tags found in the interface
|
||||
.TP
|
||||
.B \-debug-template
|
||||
Display information for debugging templates
|
||||
.TP
|
||||
.BI "\-debug-top " n
|
||||
Display entire parse tree at stages 1-4, \fIn\fR is a csv list of stages
|
||||
.TP
|
||||
.B \-debug-typedef
|
||||
Display information about the types and typedefs in the interface
|
||||
.TP
|
||||
.B \-debug-typemap
|
||||
Display typemap debugging information
|
||||
.TP
|
||||
.B \-debug-tmsearch
|
||||
Display typemap search debugging information
|
||||
.TP
|
||||
.B \-debug-tmused
|
||||
Display typemaps used debugging information
|
||||
.TP
|
||||
.B \-directors
|
||||
Turn on director mode for all the classes, mainly for testing
|
||||
.TP
|
||||
.B \-dirprot
|
||||
Turn on wrapping of protected members for director classes (default)
|
||||
.TP
|
||||
.BI \-D symbol
|
||||
Define a symbol \fIsymbol\fR (for conditional compilation)
|
||||
.TP
|
||||
.B \-E
|
||||
Preprocess only, does not generate wrapper code
|
||||
.TP
|
||||
.B \-external-runtime [file]
|
||||
Export the SWIG runtime stack
|
||||
.TP
|
||||
.BI "\-fakeversion " v
|
||||
Make SWIG fake the program version number to \fIv\fR
|
||||
.TP
|
||||
.B \-fcompact
|
||||
Compile in compact mode
|
||||
.TP
|
||||
.BI "\-features " list
|
||||
Set global features, where \fIlist\fR is a comma separated list of
|
||||
features, eg -features directors,autodoc=1
|
||||
If no explicit value is given to the feature, a default of 1 is used
|
||||
.TP
|
||||
.B \-fastdispatch
|
||||
Enable fast dispatch mode to produce faster overload dispatcher code
|
||||
.TP
|
||||
.B \-Fmicrosoft
|
||||
Display error/warning messages in Microsoft format
|
||||
.TP
|
||||
.B \-Fstandard
|
||||
Display error/warning messages in commonly used format
|
||||
.TP
|
||||
.B \-fvirtual
|
||||
Compile in virtual elimination mode
|
||||
.TP
|
||||
.B \-help
|
||||
This output
|
||||
.TP
|
||||
.B \-I-
|
||||
Don't search the current directory
|
||||
.TP
|
||||
.BI \-I dir
|
||||
Look for SWIG files in directory \fIdir\fR
|
||||
.TP
|
||||
.B \-ignoremissing
|
||||
Ignore missing include files
|
||||
.TP
|
||||
.B \-importall
|
||||
Follow all #include statements as imports
|
||||
.TP
|
||||
.B \-includeall
|
||||
Follow all #include statements
|
||||
.TP
|
||||
.BI \-l ifile
|
||||
Include SWIG library file \fIifile\fR
|
||||
.TP
|
||||
.B \-macroerrors
|
||||
Report errors inside macros
|
||||
.TP
|
||||
.B \-makedefault
|
||||
Create default constructors/destructors (the default)
|
||||
.TP
|
||||
.B \-M
|
||||
List all dependencies
|
||||
.TP
|
||||
.B \-MD
|
||||
Is equivalent to \(cq\&-M -MF \fIfile\fR\(cq\&, except \(cq\&-E\(cq\& is not implied
|
||||
.TP
|
||||
.BI "\-MF " file
|
||||
Generate dependencies into \fIfile\fR and continue generating wrappers
|
||||
.TP
|
||||
.B \-MM
|
||||
List dependencies, but omit files in SWIG library
|
||||
.TP
|
||||
.B \-MMD
|
||||
Like \(cq\&-MD\(cq\&, but omit files in SWIG library
|
||||
.TP
|
||||
.BI "\-module " name
|
||||
Set module name to \fIname\fR
|
||||
.TP
|
||||
.B \-MP
|
||||
Generate phony targets for all dependencies
|
||||
.TP
|
||||
.BI "\-MT " target
|
||||
Set the target of the rule emitted by dependency generation
|
||||
.TP
|
||||
.B \-nocontract
|
||||
Turn off contract checking
|
||||
.TP
|
||||
.B \-nocpperraswarn
|
||||
Do not treat the preprocessor #error statement as #warning
|
||||
.TP
|
||||
.B \-nodefault
|
||||
Do not generate default constructors nor default destructors
|
||||
.TP
|
||||
.B \-nodefaultctor
|
||||
Do not generate implicit default constructors
|
||||
.TP
|
||||
.B \-nodefaultdtor
|
||||
Do not generate implicit default destructors
|
||||
.TP
|
||||
.B \-nodirprot
|
||||
Do not wrap director protected members
|
||||
.TP
|
||||
.B \-noexcept
|
||||
Do not wrap exception specifiers
|
||||
.TP
|
||||
.B \-nofastdispatch
|
||||
Disable fast dispatch mode (default)
|
||||
.TP
|
||||
.B \-nopreprocess
|
||||
Skip the preprocessor step
|
||||
.TP
|
||||
.B \-notemplatereduce
|
||||
Disable reduction of the typedefs in templates
|
||||
.TP
|
||||
.B \-O
|
||||
Enable the optimization options:
|
||||
-fastdispatch -fvirtual
|
||||
.TP
|
||||
.BI "\-o " outfile
|
||||
Set name of the output file to \fIoutfile\fR
|
||||
.TP
|
||||
.B "\-oh " headfile
|
||||
Set name of the output header file to \fIheadfile\fR
|
||||
.TP
|
||||
.B \-outcurrentdir
|
||||
Set default output dir to current dir instead of input file's path
|
||||
.TP
|
||||
.BI "\-outdir " dir
|
||||
Set language specific files output directory to \fIdir\fR
|
||||
.TP
|
||||
.B \-pcreversion
|
||||
Display PCRE version information
|
||||
.TP
|
||||
.B \-small
|
||||
Compile in virtual elimination & compact mode
|
||||
.TP
|
||||
.B \-swiglib
|
||||
Report location of SWIG library and exit
|
||||
.TP
|
||||
.B \-templatereduce
|
||||
Reduce all the typedefs in templates
|
||||
.TP
|
||||
.B \-v
|
||||
Run in verbose mode
|
||||
.TP
|
||||
.B \-version
|
||||
Display SWIG version number
|
||||
.TP
|
||||
.B \-Wall
|
||||
Remove all warning suppression, also implies -Wextra
|
||||
.TP
|
||||
.B \-Wallkw
|
||||
Enable keyword warnings for all the supported languages
|
||||
.TP
|
||||
.B \-Werror
|
||||
Treat warnings as errors
|
||||
.TP
|
||||
.B \-Wextra
|
||||
Adds the following additional warnings: 202,309,403,512,321,322
|
||||
.TP
|
||||
.BI \-w list
|
||||
Suppress/add warning messages, eg -w401,+321
|
||||
see Warnings.html
|
||||
.TP
|
||||
.B "\-xmlout " file
|
||||
Write XML version of the parse tree to \fIfile\fR after normal processing
|
||||
|
||||
.SS Tcl 8 Options (available with -tcl)
|
||||
.TP
|
||||
.B \-itcl
|
||||
Enable ITcl support
|
||||
.TP
|
||||
.B \-nosafe
|
||||
Leave out SafeInit module function.
|
||||
.TP
|
||||
.BI "\-prefix " name
|
||||
Set a prefix \fIname\fR to be prepended to all names
|
||||
.TP
|
||||
.B \-namespace
|
||||
Build module into a Tcl 8 namespace
|
||||
.TP
|
||||
.B \-pkgversion
|
||||
Set package version
|
||||
|
||||
.PP
|
||||
Note: 'swig -\fIlang\fR -help' displays options for a specific target language.
|
||||
|
||||
.SH AUTHOR
|
||||
SWIG was originally created by David Beazley. For up-to-date information
|
||||
about authors and contributors please check http://www.swig.org/guilty.html.
|
||||
This manual page was written by Torsten Landschoff <torsten@debian.org> and
|
||||
updated by Jitka Plesnikova <jplesnik@redhat.com> (but may be used by others).
|
||||
|
71
swig.spec
71
swig.spec
@ -9,17 +9,17 @@
|
||||
|
||||
Summary: Connects C/C++/Objective C to some high-level programming languages
|
||||
Name: swig
|
||||
Version: 2.0.9
|
||||
Release: 2%{?dist}
|
||||
Version: 2.0.10
|
||||
Release: 1%{?dist}
|
||||
License: GPLv3+ and BSD
|
||||
Group: Development/Tools
|
||||
URL: http://swig.sourceforge.net/
|
||||
Source: http://downloads.sourceforge.net/project/swig/swig/swig-%{version}/swig-%{version}.tar.gz
|
||||
Patch4: swig203-rh706140.patch
|
||||
Patch6: swig204-rh752054.patch
|
||||
Patch9: swig207-setools.patch
|
||||
Source0: http://downloads.sourceforge.net/project/swig/swig/swig-%{version}/swig-%{version}.tar.gz
|
||||
Source1: swig.1
|
||||
Patch1: swig207-setools.patch
|
||||
# Fix the failure on arch x390 during testing
|
||||
Patch2: swig-2.0.10-Fix-x390-build.patch
|
||||
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||
BuildRequires: perl, python-devel, pcre-devel
|
||||
%if %{tcl}
|
||||
BuildRequires: tcl-devel
|
||||
@ -31,6 +31,10 @@ BuildRequires: autoconf, automake, gawk, dos2unix
|
||||
%if %{octave}
|
||||
BuildRequires: octave-devel
|
||||
%endif
|
||||
# Tests
|
||||
BuildRequires: perl-devel
|
||||
BuildRequires: perl(Test::More)
|
||||
BuildRequires: boost-devel
|
||||
|
||||
%description
|
||||
Simplified Wrapper and Interface Generator (SWIG) is a software
|
||||
@ -52,30 +56,15 @@ This package contains documentation for SWIG and useful examples
|
||||
|
||||
%prep
|
||||
%setup -q -n swig-%{version}
|
||||
%patch4 -p1 -b .rh706140
|
||||
# Apply patch 6 when guile2 gets into distro
|
||||
#%patch6 -p1 -b .rh752054
|
||||
|
||||
%patch9 -p1 -b .setools
|
||||
%patch1 -p1 -b .setools
|
||||
%patch2 -p1 -b .x390
|
||||
|
||||
# as written on https://fedoraproject.org/wiki/Packaging_talk:Perl, section 2
|
||||
# (specific req/prov filtering). Before you remove this hack make sure you don't
|
||||
# reintroduce https://bugzilla.redhat.com/show_bug.cgi?id=489421
|
||||
cat << \EOF > %{name}-prov
|
||||
#!/bin/sh
|
||||
%{__perl_provides} `perl -p -e 's|\S+%{_docdir}/%{name}-doc-%{version}\S+||'`
|
||||
EOF
|
||||
|
||||
%define __perl_provides %{_builddir}/%{name}-%{version}/%{name}-prov
|
||||
chmod +x %{__perl_provides}
|
||||
|
||||
cat << \EOF > %{name}-req
|
||||
#!/bin/sh
|
||||
%{__perl_requires} `perl -p -e 's|\S+%{_docdir}/%{name}-doc-%{version}\S+||'`
|
||||
EOF
|
||||
|
||||
%define __perl_requires %{_builddir}/%{name}-%{version}/%{name}-req
|
||||
chmod +x %{__perl_requires}
|
||||
%global __provides_exclude_from %{_docdir}/%{name}-doc-%{version}
|
||||
%global __requires_exclude_from %{_docdir}/%{name}-doc-%{version}
|
||||
|
||||
for all in CHANGES README; do
|
||||
iconv -f ISO88591 -t UTF8 < $all > $all.new
|
||||
@ -85,18 +74,24 @@ done
|
||||
|
||||
%build
|
||||
./autogen.sh
|
||||
|
||||
# Disable maximum compile warnings when octave is supported, because Octave
|
||||
# code produces lots of the warnings demanded by strict ISO C and ISO C++.
|
||||
# It causes that log had more then 600M.
|
||||
%configure \
|
||||
%if %{octave}
|
||||
--with-octave=/usr/bin/octave \
|
||||
--without-maximum-compile-warnings \
|
||||
%endif
|
||||
;
|
||||
make %{?_smp_mflags}
|
||||
|
||||
# Test suite is currently broken
|
||||
#make check
|
||||
# Test suite
|
||||
make check
|
||||
|
||||
%install
|
||||
rm -rf %{buildroot}
|
||||
# Remove all arch dependent files in Examples/ created during tests
|
||||
make clean-examples
|
||||
|
||||
pushd Examples/
|
||||
# Remove all arch dependent files in Examples/
|
||||
@ -116,22 +111,32 @@ popd
|
||||
|
||||
make DESTDIR=%{buildroot} install
|
||||
|
||||
%clean
|
||||
rm -rf %{buildroot}
|
||||
# Add man page for swig
|
||||
mkdir -p %{buildroot}%{_mandir}/man1/
|
||||
install -p -m 0644 %{SOURCE1} %{buildroot}%{_mandir}/man1/
|
||||
gzip %{buildroot}%{_mandir}/man1/$(basename %{SOURCE1})
|
||||
|
||||
%files
|
||||
%defattr(-,root,root,-)
|
||||
%{_bindir}/*
|
||||
%{_datadir}/swig
|
||||
%{_mandir}/man1/ccache-swig.1*
|
||||
%{_mandir}/man1/swig.1*
|
||||
%doc ANNOUNCE CHANGES CHANGES.current INSTALL LICENSE LICENSE-GPL
|
||||
%doc LICENSE-UNIVERSITIES COPYRIGHT README TODO
|
||||
|
||||
%files doc
|
||||
%defattr(-,root,root,-)
|
||||
%doc Doc Examples LICENSE LICENSE-GPL LICENSE-UNIVERSITIES COPYRIGHT
|
||||
|
||||
%changelog
|
||||
* Fri May 31 2013 Jitka Plesnikova <jplesnik@redhat.com> - 2.0.10-1
|
||||
- Update to 2.0.10
|
||||
- swig203-rh706140.patch merged
|
||||
- swig204-rh752054.patch merged
|
||||
- Create swig-2.0.10-Fix-x390-build.patch
|
||||
|
||||
* Fri May 24 2013 Jitka Plesnikova <jplesnik@redhat.com> - 2.0.9-3
|
||||
- Add man page for swig (BZ#948407)
|
||||
|
||||
* Fri Feb 15 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.9-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
|
||||
|
||||
|
@ -1,30 +0,0 @@
|
||||
diff -up swig-2.0.3/Lib/guile/guile_gh_run.swg.rh706140 swig-2.0.3/Lib/guile/guile_gh_run.swg
|
||||
--- swig-2.0.3/Lib/guile/guile_gh_run.swg.rh706140 2011-05-20 15:16:42.300658987 +0200
|
||||
+++ swig-2.0.3/Lib/guile/guile_gh_run.swg 2011-05-20 15:17:08.609658991 +0200
|
||||
@@ -15,7 +15,11 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
+#if SCM_MAJOR_VERSION >= 2
|
||||
+typedef scm_t_subr swig_guile_proc;
|
||||
+#else
|
||||
typedef SCM (*swig_guile_proc)();
|
||||
+#endif
|
||||
|
||||
#define SWIG_malloc(size) \
|
||||
SCM_MUST_MALLOC(size)
|
||||
diff -up swig-2.0.3/Lib/guile/guile_scm_run.swg.rh706140 swig-2.0.3/Lib/guile/guile_scm_run.swg
|
||||
--- swig-2.0.3/Lib/guile/guile_scm_run.swg.rh706140 2011-05-20 15:17:22.057658991 +0200
|
||||
+++ swig-2.0.3/Lib/guile/guile_scm_run.swg 2011-05-20 15:17:46.183658997 +0200
|
||||
@@ -12,7 +12,11 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
+#if SCM_MAJOR_VERSION >= 2
|
||||
+typedef scm_t_subr swig_guile_proc;
|
||||
+#else
|
||||
typedef SCM (*swig_guile_proc)();
|
||||
+#endif
|
||||
typedef SCM (*guile_destructor)(SCM);
|
||||
|
||||
typedef struct swig_guile_clientdata {
|
@ -1,23 +0,0 @@
|
||||
diff -up swig-2.0.4/Lib/guile/guile_scm_run.swg.rh752054 swig-2.0.4/Lib/guile/guile_scm_run.swg
|
||||
--- swig-2.0.4/Lib/guile/guile_scm_run.swg.rh752054 2011-11-14 14:44:35.688597584 +0100
|
||||
+++ swig-2.0.4/Lib/guile/guile_scm_run.swg 2011-11-14 14:45:15.879594778 +0100
|
||||
@@ -64,7 +64,7 @@ static swig_module_info *SWIG_Guile_GetM
|
||||
SWIGINTERN char *
|
||||
SWIG_Guile_scm2newstr(SCM str, size_t *len) {
|
||||
#define FUNC_NAME "SWIG_Guile_scm2newstr"
|
||||
- char *ret;
|
||||
+ char *ret, *tmp;
|
||||
size_t l;
|
||||
|
||||
SCM_ASSERT (SCM_STRINGP(str), str, 1, FUNC_NAME);
|
||||
@@ -73,7 +73,9 @@ SWIG_Guile_scm2newstr(SCM str, size_t *l
|
||||
ret = (char *) SWIG_malloc( (l + 1) * sizeof(char));
|
||||
if (!ret) return NULL;
|
||||
|
||||
- memcpy(ret, SCM_STRING_CHARS(str), l);
|
||||
+ tmp = scm_to_utf8_string(str);
|
||||
+ memcpy(ret, tmp, l);
|
||||
+ free(tmp);
|
||||
ret[l] = '\0';
|
||||
if (len) *len = l;
|
||||
return ret;
|
Loading…
Reference in New Issue
Block a user