aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPetar Petrov <slackalaxy@gmail.com>2021-05-18 16:22:35 +0300
committerWilly Sudiarto Raharjo <willysr@slackbuilds.org>2021-05-18 23:40:10 +0700
commit4a818f17e374f07a7287e48b82845e8f28549ddd (patch)
tree3afdea0f61d232f6f8f559dc6dbb0f81a2585ecf
parent8493b052348049873ae971dbe15ef2c2b8df46e6 (diff)
academic/genometools: add patch for gcc10 and fix build
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
-rw-r--r--academic/genometools/gcc10.patch88
-rw-r--r--academic/genometools/genometools.SlackBuild15
2 files changed, 101 insertions, 2 deletions
diff --git a/academic/genometools/gcc10.patch b/academic/genometools/gcc10.patch
new file mode 100644
index 0000000000000..2c4edf1b7499e
--- /dev/null
+++ b/academic/genometools/gcc10.patch
@@ -0,0 +1,88 @@
+From 51205942b1f41abdf841771deac4e0e35d7d5016 Mon Sep 17 00:00:00 2001
+From: Sascha Steinbiss <satta@debian.org>
+Date: Wed, 22 Apr 2020 21:59:57 +0200
+Subject: [PATCH 1/2] make sure to not ignore snprintf output
+
+GCC 10 will warn about the (here intended) silent string truncation
+done by snprintf() unless the return value is handled.
+Obviously this will break the build as we use -Werror. We
+circumvent the problem by checking the output value and printing a
+warning if we notice a truncation.
+---
+ src/ltr/ltrdigest_file_out_stream.c | 17 ++++++++++++-----
+ 1 file changed, 12 insertions(+), 5 deletions(-)
+
+diff --git a/src/ltr/ltrdigest_file_out_stream.c b/src/ltr/ltrdigest_file_out_stream.c
+index 723b8cf9a..61325b693 100644
+--- a/src/ltr/ltrdigest_file_out_stream.c
++++ b/src/ltr/ltrdigest_file_out_stream.c
+@@ -1,5 +1,5 @@
+ /*
+- Copyright (c) 2008-2015 Sascha Steinbiss <sascha@steinbiss.name>
++ Copyright (c) 2008-2020 Sascha Steinbiss <sascha@steinbiss.name>
+ Copyright (c) 2008-2013 Center for Bioinformatics, University of Hamburg
+
+ Permission to use, copy, modify, and distribute this software for any
+@@ -33,6 +33,7 @@
+ #include "core/symbol.h"
+ #include "core/undef_api.h"
+ #include "core/unused_api.h"
++#include "core/warning_api.h"
+ #include "extended/extract_feature_sequence.h"
+ #include "extended/feature_node.h"
+ #include "extended/feature_node_iterator_api.h"
+@@ -416,6 +417,8 @@ int gt_ltrfileout_stream_next(GtNodeStream *ns, GtGenomeNode **gn, GtError *err)
+
+ if (!had_err) {
+ GtRange rng;
++ int ret = 0;
++
+ ls->element.seqid = gt_calloc((size_t) ls->seqnamelen+1, sizeof (char));
+ (void) snprintf(ls->element.seqid,
+ GT_MIN((size_t) gt_str_length(sdesc),
+@@ -425,12 +428,16 @@ int gt_ltrfileout_stream_next(GtNodeStream *ns, GtGenomeNode **gn, GtError *err)
+ if (gt_str_length(sdesc) > (GtUword) ls->seqnamelen)
+ ls->element.seqid[ls->seqnamelen] = '\0';
+
+- (void) gt_ltrelement_format_description(&ls->element,
+- ls->seqnamelen,
+- desc,
+- (size_t) (GT_MAXFASTAHEADER-1));
++ ret = gt_ltrelement_format_description(&ls->element,
++ ls->seqnamelen,
++ desc,
++ (size_t) (GT_MAXFASTAHEADER-1));
++ if (ret < 0) {
++ gt_warning("FASTA header truncated: %s", desc);
++ }
+ gt_str_delete(sdesc);
+
++
+ /* output basic retrotransposon data */
+ lltr_rng = gt_genome_node_get_range((GtGenomeNode*) ls->element.leftLTR);
+ rltr_rng = gt_genome_node_get_range((GtGenomeNode*) ls->element.rightLTR);
+
+From 30ae36037228dc4ed174e8462f3489638e6f5e76 Mon Sep 17 00:00:00 2001
+From: Sascha Steinbiss <satta@debian.org>
+Date: Wed, 22 Apr 2020 22:01:00 +0200
+Subject: [PATCH 2/2] declare hashmap type as extern
+
+This fixes a build issue with GCC 10.
+Closes #941.
+---
+ src/mgth/metagenomethreader.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/mgth/metagenomethreader.h b/src/mgth/metagenomethreader.h
+index 92f16d498..7f76fffb9 100644
+--- a/src/mgth/metagenomethreader.h
++++ b/src/mgth/metagenomethreader.h
+@@ -221,7 +221,7 @@ typedef struct
+ } ParseStruct;
+
+ /* specific access mode of queryhash */
+-DECLARE_HASHMAP(char *, gt_cstr_nofree, GtUword *, ulp,,)
++DECLARE_HASHMAP(char *, gt_cstr_nofree, GtUword *, ulp, extern,)
+ DECLARE_SAFE_DEREF(GtUword *, ulp)
+
+ /* Funktion, mit der der Metagenomethreader gestartet wird
diff --git a/academic/genometools/genometools.SlackBuild b/academic/genometools/genometools.SlackBuild
index 6b3c0a762cfc7..8fc7ba42b8758 100644
--- a/academic/genometools/genometools.SlackBuild
+++ b/academic/genometools/genometools.SlackBuild
@@ -2,7 +2,7 @@
# Slackware build script for genometools
-# Copyright 2014-2020 Petar Petrov slackalaxy@gmail.com
+# Copyright 2014-2021 Petar Petrov slackalaxy@gmail.com
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
@@ -66,11 +66,22 @@ rm -rf $PRGNAM-$VERSION
tar xvf $CWD/$PRGNAM-$VERSION.tar.gz
cd $PRGNAM-$VERSION
chown -R root:root .
+
+# This is a looping symlink that the 'find' step below complains about.
+# The only thing that is used from this location is 'sam.h', so let's
+# just make a proper folder and copy it there.
+rm src/external/samtools-0.1.18/samtools
+mkdir -p src/external/samtools-0.1.18/samtools
+cp src/external/samtools-0.1.18/sam.h src/external/samtools-0.1.18/samtools
+
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
-o -perm 511 \) -exec chmod 755 {} \; -o \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
- -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+ -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
+
+# Thanks Debian for the patch
+patch -p1 -i $CWD/gcc10.patch
# Fix library and man pages path
sed -i "s:lib/libgenometools:lib${LIBDIRSUFFIX}/libgenometools:g" Makefile