mirror of https://gitee.com/openkylin/db5.3.git
changed debian/source/format to native
This commit is contained in:
parent
c66343d698
commit
0c368e6b6b
|
@ -1,30 +0,0 @@
|
|||
From: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
|
||||
Date: Fri, 13 May 2022 20:11:41 +0800
|
||||
Subject: versioned_symbols
|
||||
|
||||
---
|
||||
dist/Makefile.in | 10 ++++++++--
|
||||
1 file changed, 8 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dist/Makefile.in b/dist/Makefile.in
|
||||
index e90c0c2..93f0a7e 100644
|
||||
--- a/dist/Makefile.in
|
||||
+++ b/dist/Makefile.in
|
||||
@@ -855,9 +855,15 @@ $(libdb_version): $(C_OBJS)
|
||||
$(RM) $(libdb)
|
||||
$(LN) -s $(libdb_version) $(libdb)
|
||||
|
||||
+Versions: $(C_OBJS)
|
||||
+ rm -f $@
|
||||
+ printf "DB5_3 {\n global:\n" > $@
|
||||
+ nm $$(sed -n "/^pic_object='\(.*\)'$$/ { s//\1/;s,.libs/,,;p;}" $(C_OBJS)) | grep " [DTR] " | cut -d" " -f3 | sed -e 's/$$/;/' >> $@
|
||||
+ printf "local: *; };\n" >> $@
|
||||
+
|
||||
# Shared C library.
|
||||
-$(libso_target): $(C_OBJS)
|
||||
- $(SOLINK) $(SOFLAGS) $(LDFLAGS) -o $@ $(C_OBJS) \
|
||||
+$(libso_target): $(C_OBJS) Versions
|
||||
+ $(SOLINK) $(SOFLAGS) -Wl,--version-script=Versions $(LDFLAGS) -o $@ $(C_OBJS) \
|
||||
$(LIBCSO_LIBS)
|
||||
$(RM) $(libdb)
|
||||
$(LN) -s .libs/$(libdb_version) $(libdb)
|
|
@ -1,35 +0,0 @@
|
|||
From: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
|
||||
Date: Fri, 13 May 2022 20:11:41 +0800
|
||||
Subject: jni_javac
|
||||
|
||||
---
|
||||
dist/aclocal_java/ac_jni_include_dirs.m4 | 2 +-
|
||||
dist/configure | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dist/aclocal_java/ac_jni_include_dirs.m4 b/dist/aclocal_java/ac_jni_include_dirs.m4
|
||||
index 2917e5f..fd56007 100644
|
||||
--- a/dist/aclocal_java/ac_jni_include_dirs.m4
|
||||
+++ b/dist/aclocal_java/ac_jni_include_dirs.m4
|
||||
@@ -44,7 +44,7 @@ case "$_ACJNI_JAVAC" in
|
||||
esac
|
||||
|
||||
_ACJNI_FOLLOW_SYMLINKS("$_ACJNI_JAVAC")
|
||||
-_JTOPDIR=`echo "$_ACJNI_FOLLOWED" | sed -e 's://*:/:g' -e 's:/[[^/]]*$::'`
|
||||
+_JTOPDIR=`echo "$_ACJNI_JAVAC" | sed -e 's://*:/:g' -e 's:/[[^/]]*$::'`
|
||||
case "$host_os" in
|
||||
darwin*) _JTOPDIR=`echo "$_JTOPDIR" | sed -e 's:/[[^/]]*$::'`
|
||||
_JINC="$_JTOPDIR/Headers";;
|
||||
diff --git a/dist/configure b/dist/configure
|
||||
index 32b2c66..62f6586 100755
|
||||
--- a/dist/configure
|
||||
+++ b/dist/configure
|
||||
@@ -18413,7 +18413,7 @@ $as_echo "$_cur" >&6; }
|
||||
done
|
||||
_ACJNI_FOLLOWED="$_cur"
|
||||
|
||||
-_JTOPDIR=`echo "$_ACJNI_FOLLOWED" | sed -e 's://*:/:g' -e 's:/[^/]*$::'`
|
||||
+_JTOPDIR=`echo "$_ACJNI_JAVAC" | sed -e 's://*:/:g' -e 's:/[^/]*$::'`
|
||||
case "$host_os" in
|
||||
darwin*) _JTOPDIR=`echo "$_JTOPDIR" | sed -e 's:/[^/]*$::'`
|
||||
_JINC="$_JTOPDIR/Headers";;
|
|
@ -1,21 +0,0 @@
|
|||
From: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
|
||||
Date: Fri, 13 May 2022 20:11:41 +0800
|
||||
Subject: tclsleep
|
||||
|
||||
---
|
||||
test/tcl/env012.tcl | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/test/tcl/env012.tcl b/test/tcl/env012.tcl
|
||||
index 51dba30..c27f9d7 100644
|
||||
--- a/test/tcl/env012.tcl
|
||||
+++ b/test/tcl/env012.tcl
|
||||
@@ -75,7 +75,7 @@ proc env012 { } {
|
||||
$testdir $testfile PUT $key $data RECOVER 0 10 &]
|
||||
|
||||
# Wait a while so process 1 has a chance to get going.
|
||||
- tclsleep 2
|
||||
+ tclsleep 4
|
||||
|
||||
puts "\t\tEnv$tnum.b2: Start process 2."
|
||||
set p2 [exec $tclsh_path $test_path/wrap.tcl envscript.tcl \
|
|
@ -1,39 +0,0 @@
|
|||
From: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
|
||||
Date: Fri, 13 May 2022 20:11:41 +0800
|
||||
Subject: pg_crypt_size
|
||||
|
||||
---
|
||||
src/dbinc/db_page.h | 13 ++++++++++++-
|
||||
1 file changed, 12 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/dbinc/db_page.h b/src/dbinc/db_page.h
|
||||
index 21e272e..2193067 100644
|
||||
--- a/src/dbinc/db_page.h
|
||||
+++ b/src/dbinc/db_page.h
|
||||
@@ -256,6 +256,17 @@ typedef struct __pg_crypto {
|
||||
*/
|
||||
} PG_CRYPTO;
|
||||
|
||||
+/*
|
||||
+ * With most compilers sizeof(PG_CRYPTO) == 38. However some ABIs
|
||||
+ * require it to be padded to 40 bytes. The padding must be excluded
|
||||
+ * from our size calculations due to the 16-byte alignment requirement
|
||||
+ * for crypto.
|
||||
+ *
|
||||
+ * A similar problem applies to PG_CHKSUM, but it's too late to change
|
||||
+ * that.
|
||||
+ */
|
||||
+#define SIZEOF_PG_CRYPTO 38
|
||||
+
|
||||
typedef struct _db_page {
|
||||
DB_LSN lsn; /* 00-07: Log sequence number. */
|
||||
db_pgno_t pgno; /* 08-11: Current page number. */
|
||||
@@ -291,7 +302,7 @@ typedef struct _db_page {
|
||||
*/
|
||||
#define P_INP(dbp, pg) \
|
||||
((db_indx_t *)((u_int8_t *)(pg) + SIZEOF_PAGE + \
|
||||
- (F_ISSET((dbp), DB_AM_ENCRYPT) ? sizeof(PG_CRYPTO) : \
|
||||
+ (F_ISSET((dbp), DB_AM_ENCRYPT) ? SIZEOF_PG_CRYPTO : \
|
||||
(F_ISSET((dbp), DB_AM_CHKSUM) ? sizeof(PG_CHKSUM) : 0))))
|
||||
|
||||
#define P_IV(dbp, pg) \
|
|
@ -1,25 +0,0 @@
|
|||
From: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
|
||||
Date: Fri, 13 May 2022 20:11:41 +0800
|
||||
Subject: mutex_alignment
|
||||
|
||||
---
|
||||
src/dbinc/mutex_int.h | 6 +++++-
|
||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/dbinc/mutex_int.h b/src/dbinc/mutex_int.h
|
||||
index a6e5751..e3ea676 100644
|
||||
--- a/src/dbinc/mutex_int.h
|
||||
+++ b/src/dbinc/mutex_int.h
|
||||
@@ -850,7 +850,11 @@ typedef volatile unsigned char tsl_t;
|
||||
* alignment locally.
|
||||
*/
|
||||
#ifndef MUTEX_ALIGN
|
||||
-#define MUTEX_ALIGN sizeof(unsigned int)
|
||||
+# if defined(__linux__) && defined(__sparc__)
|
||||
+# define MUTEX_ALIGN 8
|
||||
+# else
|
||||
+# define MUTEX_ALIGN sizeof(unsigned int)
|
||||
+# endif
|
||||
#endif
|
||||
|
||||
/*
|
|
@ -1,22 +0,0 @@
|
|||
From: Iain Lane <iain.lane@canonical.com>
|
||||
Date: Fri, 13 May 2022 20:11:41 +0800
|
||||
Subject: Link libdb_sql-5.3 with the right libraries.
|
||||
|
||||
Bug-Upstream: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=712262
|
||||
---
|
||||
dist/Makefile.in | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dist/Makefile.in b/dist/Makefile.in
|
||||
index 93f0a7e..1e1ca90 100644
|
||||
--- a/dist/Makefile.in
|
||||
+++ b/dist/Makefile.in
|
||||
@@ -897,7 +897,7 @@ $(libsql_version): $(SQL_OBJS)
|
||||
|
||||
# Shared SQL library.
|
||||
$(libsqlso_target): $(SQL_OBJS)
|
||||
- $(SOLINK) $(SOFLAGS) $(LDFLAGS) -o $@ $(SQL_OBJS) $(LIBCSO_LIBS)
|
||||
+ $(SOLINK) $(SOFLAGS) $(LDFLAGS) -o $@ $(SQL_OBJS) $(LIBCSO_LIBS) @SQL_LIBS@
|
||||
$(RM) $(libsql)
|
||||
$(LN) -s .libs/$(libsql_version) $(libsql)
|
||||
|
|
@ -1,25 +0,0 @@
|
|||
From: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
|
||||
Date: Fri, 13 May 2022 20:11:41 +0800
|
||||
Subject: autoconf-in-lang-sql-sqlite
|
||||
|
||||
===================================================================
|
||||
---
|
||||
dist/s_config | 8 ++++++++
|
||||
1 file changed, 8 insertions(+)
|
||||
|
||||
diff --git a/dist/s_config b/dist/s_config
|
||||
index a16e758..33381f9 100755
|
||||
--- a/dist/s_config
|
||||
+++ b/dist/s_config
|
||||
@@ -35,3 +35,11 @@ rm -rf autom4te.cache
|
||||
chmod 755 configure
|
||||
|
||||
chmod 755 config.guess config.sub install-sh
|
||||
+
|
||||
+echo "autoconf: running autoconf to build configure (lang/sql/sqlite/)"
|
||||
+cp aclocal.m4 ../lang/sql/sqlite/
|
||||
+cd ../lang/sql/sqlite/
|
||||
+rm -f configure
|
||||
+autoconf
|
||||
+cd ../../../dist/
|
||||
+
|
|
@ -1,30 +0,0 @@
|
|||
From: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
|
||||
Date: Fri, 13 May 2022 20:11:41 +0800
|
||||
Subject: fix a bogus Java version check
|
||||
|
||||
These clowns look at just the first digit, thinking that 10 means 1.
|
||||
---
|
||||
dist/configure.ac | 10 +++++-----
|
||||
1 file changed, 5 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/dist/configure.ac b/dist/configure.ac
|
||||
index 689f3b8..49548e7 100644
|
||||
--- a/dist/configure.ac
|
||||
+++ b/dist/configure.ac
|
||||
@@ -453,11 +453,11 @@ if test "$db_cv_java" = "yes" -o "$db_cv_jdbc" = "yes"; then
|
||||
sed -e '/ version /!d' -e 's/.*"\(.*\)".*/\1/'` ;;
|
||||
esac
|
||||
AC_MSG_RESULT($JAVA_VERSION)
|
||||
- case "$JAVA_VERSION" in
|
||||
- 1.[[3456789]]* | 1.[[1-9]][[0-9]]* | [[23456789]]* ) ;;
|
||||
- * )
|
||||
- AC_MSG_ERROR([Java version 1.3 or higher required, got $JAVA_VERSION]) ;;
|
||||
- esac
|
||||
+ #case "$JAVA_VERSION" in
|
||||
+ #1.[[3456789]]* | 1.[[1-9]][[0-9]]* | [[23456789]]* ) ;;
|
||||
+ #* )
|
||||
+ # AC_MSG_ERROR([Java version 1.3 or higher required, got $JAVA_VERSION]) ;;
|
||||
+ #esac
|
||||
|
||||
# Because of the code that SWIG generates to cast between pointers and
|
||||
# integers, we need to add the flag "-fno-strict-aliasing" to the gcc
|
|
@ -1,32 +0,0 @@
|
|||
From: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
|
||||
Date: Fri, 13 May 2022 20:11:42 +0800
|
||||
Subject: function conflict with GCC-8
|
||||
|
||||
Identifiers with names starting with __ are reserved for the compiler and
|
||||
core system libs only, random user programs are not supposed to use them.
|
||||
---
|
||||
src/dbinc/atomic.h | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/dbinc/atomic.h b/src/dbinc/atomic.h
|
||||
index 6a858f7..d544420 100644
|
||||
--- a/src/dbinc/atomic.h
|
||||
+++ b/src/dbinc/atomic.h
|
||||
@@ -144,7 +144,7 @@ typedef LONG volatile *interlocked_val;
|
||||
#define atomic_inc(env, p) __atomic_inc(p)
|
||||
#define atomic_dec(env, p) __atomic_dec(p)
|
||||
#define atomic_compare_exchange(env, p, o, n) \
|
||||
- __atomic_compare_exchange((p), (o), (n))
|
||||
+ db__atomic_compare_exchange((p), (o), (n))
|
||||
static inline int __atomic_inc(db_atomic_t *p)
|
||||
{
|
||||
int temp;
|
||||
@@ -176,7 +176,7 @@ static inline int __atomic_dec(db_atomic_t *p)
|
||||
* http://gcc.gnu.org/onlinedocs/gcc-4.1.0/gcc/Atomic-Builtins.html
|
||||
* which configure could be changed to use.
|
||||
*/
|
||||
-static inline int __atomic_compare_exchange(
|
||||
+static inline int db__atomic_compare_exchange(
|
||||
db_atomic_t *p, atomic_value_t oldval, atomic_value_t newval)
|
||||
{
|
||||
atomic_value_t was;
|
|
@ -1,29 +0,0 @@
|
|||
From: Petr Kubat <pkubat@redhat.com>
|
||||
Date: Fri, 13 May 2022 20:11:41 +0800
|
||||
Subject: CVE-2017-10140: Reads DB_CONFIG from the current working directory
|
||||
|
||||
Do not access DB_CONFIG when db_home is not set.
|
||||
Origin: vendor, https://src.fedoraproject.org/rpms/libdb/raw/8047fa8580659fcae740c25e91b490539b8453eb/f/db-5.3.28-cwd-db_config.patch
|
||||
Bug-Debian: https://bugs.debian.org/872436
|
||||
Bug-RedHat: https://bugzilla.redhat.com/show_bug.cgi?id=1464032
|
||||
Bug-SuSE: https://bugzilla.novell.com/show_bug.cgi?id=1043886
|
||||
Forwarded: no
|
||||
Reviewed-by: Salvatore Bonaccorso <carnil@debian.org>
|
||||
Last-Update: 2017-08-17
|
||||
---
|
||||
src/env/env_open.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/env/env_open.c b/src/env/env_open.c
|
||||
index 0201aa4..2d0346d 100644
|
||||
--- a/src/env/env_open.c
|
||||
+++ b/src/env/env_open.c
|
||||
@@ -473,7 +473,7 @@ __env_config(dbenv, db_home, flagsp, mode)
|
||||
env->db_mode = mode == 0 ? DB_MODE_660 : mode;
|
||||
|
||||
/* Read the DB_CONFIG file. */
|
||||
- if ((ret = __env_read_db_config(env)) != 0)
|
||||
+ if (env->db_home != NULL && (ret = __env_read_db_config(env)) != 0)
|
||||
return (ret);
|
||||
|
||||
/*
|
|
@ -1,76 +0,0 @@
|
|||
From: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
|
||||
Date: Fri, 13 May 2022 20:11:42 +0800
|
||||
Subject: Enhance the rtreenode function in order to avoid a heap
|
||||
out-of-bounds read
|
||||
|
||||
Origin: https://www.sqlite.org/src/info/90acdbfce9c08858
|
||||
Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=929775
|
||||
---
|
||||
lang/sql/sqlite/ext/rtree/rtree.c | 37 ++++++++++++++++++++++---------------
|
||||
1 file changed, 22 insertions(+), 15 deletions(-)
|
||||
|
||||
diff --git a/lang/sql/sqlite/ext/rtree/rtree.c b/lang/sql/sqlite/ext/rtree/rtree.c
|
||||
index ebf430a..c4e880f 100644
|
||||
--- a/lang/sql/sqlite/ext/rtree/rtree.c
|
||||
+++ b/lang/sql/sqlite/ext/rtree/rtree.c
|
||||
@@ -3089,38 +3089,45 @@ static void rtreenode(sqlite3_context *ctx, int nArg, sqlite3_value **apArg){
|
||||
RtreeNode node;
|
||||
Rtree tree;
|
||||
int ii;
|
||||
+ int nData;
|
||||
+ int errCode;
|
||||
+ sqlite3_str *pOut;
|
||||
|
||||
UNUSED_PARAMETER(nArg);
|
||||
memset(&node, 0, sizeof(RtreeNode));
|
||||
memset(&tree, 0, sizeof(Rtree));
|
||||
tree.nDim = sqlite3_value_int(apArg[0]);
|
||||
+ if( tree.nDim<1 || tree.nDim>5 ) return;
|
||||
tree.nBytesPerCell = 8 + 8 * tree.nDim;
|
||||
node.zData = (u8 *)sqlite3_value_blob(apArg[1]);
|
||||
+ nData = sqlite3_value_bytes(apArg[1]);
|
||||
+ if( nData<4 ) return;
|
||||
+ if( nData<NCELL(&node)*tree.nBytesPerCell ) return;
|
||||
|
||||
+ pOut = sqlite3_str_new(0);
|
||||
for(ii=0; ii<NCELL(&node); ii++){
|
||||
- char zCell[512];
|
||||
- int nCell = 0;
|
||||
RtreeCell cell;
|
||||
int jj;
|
||||
|
||||
nodeGetCell(&tree, &node, ii, &cell);
|
||||
- sqlite3_snprintf(512-nCell,&zCell[nCell],"%lld", cell.iRowid);
|
||||
- nCell = strlen(zCell);
|
||||
+ if( ii>0 ) sqlite3_str_append(pOut, " ", 1);
|
||||
+ sqlite3_str_appendf(pOut, "{%lld", cell.iRowid);
|
||||
for(jj=0; jj<tree.nDim*2; jj++){
|
||||
- sqlite3_snprintf(512-nCell,&zCell[nCell]," %f",(double)cell.aCoord[jj].f);
|
||||
- nCell = strlen(zCell);
|
||||
+#ifndef SQLITE_RTREE_INT_ONLY
|
||||
+ sqlite3_str_appendf(pOut, " %g", (double)cell.aCoord[jj].f);
|
||||
+#else
|
||||
+ sqlite3_str_appendf(pOut, " %d", cell.aCoord[jj].i);
|
||||
+#endif
|
||||
}
|
||||
|
||||
- if( zText ){
|
||||
- char *zTextNew = sqlite3_mprintf("%s {%s}", zText, zCell);
|
||||
- sqlite3_free(zText);
|
||||
- zText = zTextNew;
|
||||
- }else{
|
||||
- zText = sqlite3_mprintf("{%s}", zCell);
|
||||
- }
|
||||
+
|
||||
+ sqlite3_str_append(pOut, "}", 1);
|
||||
+
|
||||
}
|
||||
-
|
||||
- sqlite3_result_text(ctx, zText, -1, sqlite3_free);
|
||||
+ errCode = sqlite3_str_errcode(pOut);
|
||||
+ sqlite3_result_text(ctx, sqlite3_str_finish(pOut), -1, sqlite3_free);
|
||||
+ sqlite3_result_error_code(ctx, errCode);
|
||||
+
|
||||
}
|
||||
|
||||
static void rtreedepth(sqlite3_context *ctx, int nArg, sqlite3_value **apArg){
|
|
@ -1,39 +0,0 @@
|
|||
From: Andy Whitcroft <apw@canonical.com>
|
||||
Date: Wed, 12 Mar 2014 11:58:31 +0100
|
||||
Subject: [PATCH] MMAP_EXTEND mode requires we extend in full system page
|
||||
increments
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset="utf-8"
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
When extending a mmap file we must ensure we extend by full system pages,
|
||||
otherwise there is a risk (when the filesystem page size is smaller than
|
||||
the system page size) that we will not allocate disk extents to store
|
||||
the memory and it will be lost resulting in data loss.
|
||||
|
||||
Signed-off-by: Andy Whitcroft <apw@canonical.com>
|
||||
Signed-off-by: Cédric Le Goater <clg@fr.ibm.com>
|
||||
---
|
||||
src/env/env_file.c | 9 +++++++++
|
||||
1 file changed, 9 insertions(+)
|
||||
|
||||
diff --git a/src/env/env_file.c b/src/env/env_file.c
|
||||
index 434ae43..4a1783e 100644
|
||||
--- a/src/env/env_file.c
|
||||
+++ b/src/env/env_file.c
|
||||
@@ -28,6 +28,15 @@ __db_file_extend(env, fhp, size)
|
||||
int ret;
|
||||
char buf;
|
||||
|
||||
+#ifdef HAVE_MMAP_EXTEND
|
||||
+ /*
|
||||
+ * We have to ensure we extend a mmap'd segment a full memory page at
|
||||
+ * a time or risk the end of the page not having any filesystem blocks
|
||||
+ * associated resulting in the data loss.
|
||||
+ */
|
||||
+ size = DB_ALIGN(size, getpagesize()) - 1;
|
||||
+#endif
|
||||
+
|
||||
buf = '\0';
|
||||
/*
|
||||
* Extend the file by writing the last page. If the region is >4Gb,
|
|
@ -1,12 +0,0 @@
|
|||
002-versioned_symbols.patch
|
||||
003-jni_javac.patch
|
||||
004-tclsleep.patch
|
||||
005-pg_crypt_size.patch
|
||||
006-mutex_alignment.patch
|
||||
007-link-sql-libs.patch
|
||||
mmap_extend-mode-requires-page-aligned-extends.patch
|
||||
008-autoconf-in-lang-sql-sqlite.patch
|
||||
CVE-2017-10140-cwd-db_config.patch
|
||||
009-java-10.patch
|
||||
010-__atomic_compare_exchange.patch
|
||||
CVE-2019-8457.patch
|
|
@ -1 +1 @@
|
|||
3.0 (quilt)
|
||||
3.0 (native)
|
||||
|
|
Loading…
Reference in New Issue