gnu: Add htslib-for-stringtie.

* gnu/packages/bioinformatics.scm (htslib-for-stringtie): New variable.
* gnu/packages/patches/htslib-for-stringtie.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.
This commit is contained in:
Ricardo Wurmus 2022-01-11 14:15:04 +01:00
parent 5b200dbfb0
commit 9966f98b1b
No known key found for this signature in database
GPG key ID: 197A5888235FACAC
3 changed files with 39 additions and 0 deletions

View file

@ -1255,6 +1255,7 @@ dist_patch_DATA = \
%D%/packages/patches/hedgewars-network-bsd.patch \
%D%/packages/patches/helm-fix-gcc-9-build.patch \
%D%/packages/patches/http-parser-CVE-2020-8287.patch \
%D%/packages/patches/htslib-for-stringtie.patch \
%D%/packages/patches/hubbub-sort-entities.patch \
%D%/packages/patches/hueplusplus-mbedtls.patch \
%D%/packages/patches/hurd-cross.patch \

View file

@ -4884,6 +4884,18 @@ (define htslib-for-samtools-1.2
(native-inputs
`(("perl" ,perl)))))
(define htslib-for-stringtie
(package
(inherit htslib)
(source (origin
(inherit (package-source htslib))
(patches
(search-patches "htslib-for-stringtie.patch"))))
(arguments
`(#:configure-flags '("--with-libdeflate")))
(inputs
(list bzip2 libdeflate openssl))))
(define-public idr
(package
(name "idr")

View file

@ -0,0 +1,26 @@
These changes are commits d7e357946ead219b81cc1becbe0de8a99d96ca84 and
8ed0daa39bc662defa99507f926815431056543a in
https://github.com/samtools/htscodecs. The stringtie package expects these
changes to have been applied.
diff -ru htslib-1.12/htscodecs/htscodecs/tokenise_name3.c stringtie-2.2.0/htslib/htscodecs/htscodecs/tokenise_name3.c
--- a/htscodecs/htscodecs/tokenise_name3.c 2021-02-22 13:07:06.000000000 +0100
+++ b/htscodecs/htscodecs/tokenise_name3.c 2021-12-04 19:27:39.000000000 +0100
@@ -211,7 +211,7 @@
if (!ctx) return NULL;
ctx->max_names = max_names;
pthread_setspecific(tok_key, ctx);
- } else if (ctx->max_names < max_names) {
+ } else if (ctx->max_names < max_names+1) {
ctx = realloc(ctx, sizeof(*ctx) + ++max_names*sizeof(*ctx->lc));
if (!ctx) return NULL;
ctx->max_names = max_names;
@@ -1058,6 +1058,8 @@
tok = decode_token_type(ctx, ntok);
//fprintf(stderr, "Tok %d = %d\n", ntok, tok);
+ ctx->lc[cnum].last_ntok = 0;
+
switch (tok) {
case N_CHAR:
if (len+1 >= name_len) return -1;