academic/genometools: add patch for gcc10 and fix build

Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
Petar Petrov 2021-05-18 16:22:35 +03:00 committed by Willy Sudiarto Raharjo
parent 8493b05234
commit 4a818f17e3
No known key found for this signature in database
GPG Key ID: 3F617144D7238786
2 changed files with 101 additions and 2 deletions

View File

@ -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

View File

@ -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