summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Seifert <soap@gentoo.org>2017-12-24 12:30:20 +0100
committerDavid Seifert <soap@gentoo.org>2017-12-24 12:30:38 +0100
commitccbd59a1a246014bf441e44a9f2bd8632a70c20e (patch)
treed3017236e5b153ed7ccb1572e3b6c6b9fc5ad9b5 /sci-biology
parentapp-text/asciidoc: stable 8.6.10 for ppc/ppc64, bug #641648 (diff)
downloadgentoo-ccbd59a1a246014bf441e44a9f2bd8632a70c20e.tar.gz
gentoo-ccbd59a1a246014bf441e44a9f2bd8632a70c20e.tar.bz2
gentoo-ccbd59a1a246014bf441e44a9f2bd8632a70c20e.zip
sci-biology/cufflinks: Fix building with GCC 7
Closes: https://bugs.gentoo.org/641580 Package-Manager: Portage-2.3.19, Repoman-2.3.6
Diffstat (limited to 'sci-biology')
-rw-r--r--sci-biology/cufflinks/cufflinks-2.2.1-r2.ebuild2
-rw-r--r--sci-biology/cufflinks/files/cufflinks-2.2.1-format-security.patch16
-rw-r--r--sci-biology/cufflinks/files/cufflinks-2.2.1-gcc7.patch121
3 files changed, 139 insertions, 0 deletions
diff --git a/sci-biology/cufflinks/cufflinks-2.2.1-r2.ebuild b/sci-biology/cufflinks/cufflinks-2.2.1-r2.ebuild
index 89f8484fad6..745baffad99 100644
--- a/sci-biology/cufflinks/cufflinks-2.2.1-r2.ebuild
+++ b/sci-biology/cufflinks/cufflinks-2.2.1-r2.ebuild
@@ -31,6 +31,8 @@ PATCHES=(
"${FILESDIR}"/${P}-flags.patch
"${FILESDIR}"/${P}-gcc6.patch
"${FILESDIR}"/${P}-boost-1.65-tr1-removal.patch
+ "${FILESDIR}"/${P}-gcc7.patch
+ "${FILESDIR}"/${P}-format-security.patch
)
src_prepare() {
diff --git a/sci-biology/cufflinks/files/cufflinks-2.2.1-format-security.patch b/sci-biology/cufflinks/files/cufflinks-2.2.1-format-security.patch
new file mode 100644
index 00000000000..fa13f78d8b5
--- /dev/null
+++ b/sci-biology/cufflinks/files/cufflinks-2.2.1-format-security.patch
@@ -0,0 +1,16 @@
+Author: Andreas Tille <tille@debian.org>
+Date: Wed, 22 May 2013 13:27:40 +0200
+Description: When building with --format-security (Debhelper 9 hardening)
+ this patch is needed to build successfully
+
+--- a/src/locfit/makecmd.c
++++ b/src/locfit/makecmd.c
+@@ -200,7 +200,7 @@ char *cmdline;
+ /* vs is used to store the command line string. */
+ sprintf(vn,"=clstr%d",clcount);
+ vs = createvar(vn,STSYSTEM,1+strlen(cmdline),VCHAR);
+- sprintf((char *)vdptr(vs),cmdline);
++ sprintf((char *)vdptr(vs),"%s",cmdline);
+
+ /* va is used to store pointers to the command line fields. */
+ sprintf(vn,"=cline%d",clcount);
diff --git a/sci-biology/cufflinks/files/cufflinks-2.2.1-gcc7.patch b/sci-biology/cufflinks/files/cufflinks-2.2.1-gcc7.patch
new file mode 100644
index 00000000000..48fe6e10ac9
--- /dev/null
+++ b/sci-biology/cufflinks/files/cufflinks-2.2.1-gcc7.patch
@@ -0,0 +1,121 @@
+Author: Alex Mestiashvili <mailatgoogl@gmail.com>
+Origin: https://lists.debian.org/debian-med/2017/09/msg00021.html
+Bug-Debian: https://bugs.debian.org/871234
+Description: Fix gcc-7 build issue, thanks to Jeff Epler <jepler@unpythonic.net>
+--- a/src/GHash.hh
++++ b/src/GHash.hh
+@@ -88,7 +88,7 @@
+ //nextkey is SET to the corresponding key
+ GHashEntry* NextEntry() { //returns a pointer to a GHashEntry
+ register int pos=fCurrentEntry;
+- while (pos<fCapacity && hash[pos].hash<0) pos++;
++ while (pos<fCapacity && (hash[pos].hash)<0) pos++;
+ if (pos==fCapacity) {
+ fCurrentEntry=fCapacity;
+ return NULL;
+@@ -186,7 +186,7 @@
+ x=HASH2(h,n);
+ GASSERT(1<=x && x<n);
+ while(k[p].hash!=-1) p=(p+x)%n;
+- GASSERT(k[p].hash<0);
++ GASSERT((k[p].hash)<0);
+ k[p]=hash[i];
+ }
+ }
+@@ -225,7 +225,7 @@
+ GTRACE(("GHash::insert: key=\"%s\"\n",ky));
+ //GMessage("GHash::insert: key=\"%s\"\n",ky);
+ GASSERT(0<=i && i<fCapacity);
+- GASSERT(hash[i].hash<0);
++ GASSERT((hash[i].hash)<0);
+ hash[i].hash=h;
+ hash[i].mark=mrk;
+ hash[i].key=Gstrdup(ky);
+@@ -266,7 +266,7 @@
+ GTRACE(("GHash::insert: key=\"%s\"\n",ky));
+ //GMessage("GHash::insert: key=\"%s\"\n",ky);
+ GASSERT(0<=i && i<fCapacity);
+- GASSERT(hash[i].hash<0);
++ GASSERT((hash[i].hash)<0);
+ hash[i].hash=h;
+ hash[i].mark=mrk;
+ hash[i].key=(char *)ky;
+@@ -310,7 +310,7 @@
+ if(i==-1) i=p;
+ GTRACE(("GHash::replace: %08x: inserting: \"%s\"\n",this,ky));
+ GASSERT(0<=i && i<fCapacity);
+- GASSERT(hash[i].hash<0);
++ GASSERT((hash[i].hash)<0);
+ hash[i].hash=h;
+ hash[i].mark=mrk;
+ hash[i].key=Gstrdup(ky);
+@@ -412,7 +412,7 @@
+
+ template <class OBJ> char* GHash<OBJ>::NextKey() {
+ register int pos=fCurrentEntry;
+- while (pos<fCapacity && hash[pos].hash<0) pos++;
++ while (pos<fCapacity && (hash[pos].hash)<0) pos++;
+ if (pos==fCapacity) {
+ fCurrentEntry=fCapacity;
+ return NULL;
+@@ -425,7 +425,7 @@
+
+ template <class OBJ> OBJ* GHash<OBJ>::NextData() {
+ register int pos=fCurrentEntry;
+- while (pos<fCapacity && hash[pos].hash<0) pos++;
++ while (pos<fCapacity && (hash[pos].hash)<0) pos++;
+ if (pos==fCapacity) {
+ fCurrentEntry=fCapacity;
+ return NULL;
+@@ -439,7 +439,7 @@
+
+ template <class OBJ> OBJ* GHash<OBJ>::NextData(char* &nextkey) {
+ register int pos=fCurrentEntry;
+- while (pos<fCapacity && hash[pos].hash<0) pos++;
++ while (pos<fCapacity && (hash[pos].hash)<0) pos++;
+ if (pos==fCapacity) {
+ fCurrentEntry=fCapacity;
+ nextkey=NULL;
+@@ -457,16 +457,16 @@
+ // Get first non-empty entry
+ template <class OBJ> int GHash<OBJ>::First() const {
+ register int pos=0;
+- while(pos<fCapacity){ if(0<=hash[pos].hash) break; pos++; }
+- GASSERT(fCapacity<=pos || 0<=hash[pos].hash);
++ while(pos<fCapacity){ if(0<=(hash[pos].hash)) break; pos++; }
++ GASSERT(fCapacity<=pos || 0<=(hash[pos].hash));
+ return pos;
+ }
+
+ // Get last non-empty entry
+ template <class OBJ> int GHash<OBJ>::Last() const {
+ register int pos=fCapacity-1;
+- while(0<=pos){ if(0<=hash[pos].hash) break; pos--; }
+- GASSERT(pos<0 || 0<=hash[pos].hash);
++ while(0<=pos){ if(0<=(hash[pos].hash)) break; pos--; }
++ GASSERT(pos<0 || 0<=(hash[pos].hash));
+ return pos;
+ }
+
+@@ -474,8 +474,8 @@
+ // Find next valid entry
+ template <class OBJ> int GHash<OBJ>::Next(int pos) const {
+ GASSERT(0<=pos && pos<fCapacity);
+- while(++pos <= fCapacity-1){ if(0<=hash[pos].hash) break; }
+- GASSERT(fCapacity<=pos || 0<=hash[pos].hash);
++ while(++pos <= fCapacity-1){ if(0<=(hash[pos].hash)) break; }
++ GASSERT(fCapacity<=pos || 0<=(hash[pos].hash));
+ return pos;
+ }
+
+@@ -483,8 +483,8 @@
+ // Find previous valid entry
+ template <class OBJ> int GHash<OBJ>::Prev(int pos) const {
+ GASSERT(0<=pos && pos<fCapacity);
+- while(--pos >= 0){ if(0<=hash[pos].hash) break; }
+- GASSERT(pos<0 || 0<=hash[pos].hash);
++ while(--pos >= 0){ if(0<=(hash[pos].hash)) break; }
++ GASSERT(pos<0 || 0<=(hash[pos].hash));
+ return pos;
+ }
+