diff --git a/academic/genometools/gcc10.patch b/academic/genometools/gcc10.patch new file mode 100644 index 0000000000..2c4edf1b74 --- /dev/null +++ b/academic/genometools/gcc10.patch @@ -0,0 +1,88 @@ +From 51205942b1f41abdf841771deac4e0e35d7d5016 Mon Sep 17 00:00:00 2001 +From: Sascha Steinbiss +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 ++ Copyright (c) 2008-2020 Sascha Steinbiss + 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 +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 6b3c0a762c..8fc7ba42b8 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