diff --git a/sci-biology/mafft/Manifest b/sci-biology/mafft/Manifest index 1c8c429c954d..3b448e45c618 100644 --- a/sci-biology/mafft/Manifest +++ b/sci-biology/mafft/Manifest @@ -1 +1,2 @@ DIST mafft-7.490-without-extensions-src.tgz 605510 BLAKE2B f432ea3001f1d9c18cecea50d19f48570ffe7edf56e64088f8854acc1ee17fd7c1696244133f90ae0bf916f4499becfbfa8a770ca51a370219191f2a29f73db4 SHA512 dd87b731fdee48828da93c715ef480de474870de2fa42727e8d34b62bc136fb486dd9079ca2acdf1745f0a621fe4f413e25c05f7534f1673b6f9c1199ce70b8e +DIST mafft-7.525-without-extensions-src.tgz 622798 BLAKE2B d1c58a2f44aacf00917351a5118b694684c64f128a777096a56904acb0c4ed728408fa58399c8d1dfcd38cb0733dc86b830b5b5bec582875577796f5aa75a811 SHA512 84b3ae1cabca0af0286713bfcfc1de3fd912214106c3b836e465d643d3a68dd6c8df697e424a82c324936b4d448c73e465fb16bcf3fc44e98270c16580e9dbb3 diff --git a/sci-biology/mafft/files/mafft-7.525-c23.patch b/sci-biology/mafft/files/mafft-7.525-c23.patch new file mode 100644 index 000000000000..3acd4fe646e5 --- /dev/null +++ b/sci-biology/mafft/files/mafft-7.525-c23.patch @@ -0,0 +1,52 @@ +https://salsa.debian.org/med-team/mafft/-/commit/73d7be1d2ee617b3cd533e62adc2536b5c8330a9 + +From: Michael R. Crusoe +Subject: Add GCC-16 compatibility +Forwarded: katoh@ifrec.osaka-u.ac.jp + +--- a/core/mltaln.h ++++ b/core/mltaln.h +@@ -166,7 +166,7 @@ + extern char rnaprediction; + + /* sengen no ichi ha koko dake de ha nai */ +-extern void constants(); ++extern void constants( int nseq, char **seq ); + extern char **Calignm1(); + extern char **Dalignm1(); + extern char **align0(); +@@ -179,24 +179,24 @@ + extern double substitution_nid( char *, char * ); + extern double substitution_hosei( char *, char * ); + extern double ipower( double, int ); +-extern double translate_and_Calign(); +-extern double A__align(); ++extern double translate_and_Calign( char **mseq1, char **mseq2, double *effarr1, double *effarr2, int clus1, int clus2, int alloclen ); ++extern double A__align( double **scoringmtx, int penalty, int penalty_ex, char **seq1, char **seq2, double *eff1, double *eff2, int icyc, int jcyc, int alloclen, int constraint, double *impmatch, char *gs1, char *gs2, char *ge1, char *ge2, int *, int, int *, int headgp, int tailgp, int firstmem, int calledby, double ***cpmxchild0, double ***cpmxchild1, double ***cpmxresult, double orieff1, double orieff2 ); + extern double A__align11(); +-extern double A__align_gapmap(); +-extern double partA__align(); ++extern double A__align_gapmap( char **seq1, char **seq2, double *eff1, double *eff2, int icyc, int jcyc, int alloclen, int constraint, double *impmatch, int *gapmap1, int *gapmap2 ); ++extern double partA__align( char **seq1, char **seq2, double *eff1, double *eff2, int icyc, int jcyc, int alloclen, int constraint, double *impmatch, int start1, int end1, int start2, int end2, int *gapmap1, int *gapmap2, char *, char *, char *, char *, int *, int, int * ); + extern double L__align11( double **scoringmtx, double scoreoffset, char **seq1, char **seq2, int alloclen, int *off1pt, int *off2pt ); +-extern double G__align11(); +-extern double Falign(); +-extern double Falign_localhom(); ++extern double G__align11( double **scoringmtx, char **seq1, char **seq2, int alloclen, int headgp, int tailgp ); ++extern double Falign( int **whichmtx, double ***scoringmatrices, double **scoreingmtx, char **seq1, char **seq2, double *eff1, double *eff2, double **eff1s, double **eff2s, int clus1, int clus2, int alloclen, int *fftlog, int *, int, int * ); ++extern double Falign_localhom( int **which, double ***scoringmatrices, double **scoreingmtx, char **seq1, char **seq2, double *eff1, double *eff2, double **eff1s, double **eff2s, int clus1, int clus2, int alloclen, int constraint, double *totalimpmatch, int *gapmap1, int *gapmap2, int *chudanpt, int chudanref, int *chudanres ); + extern double Conalign(); + extern double Aalign(); + extern double imp_match_out_sc( int, int ); + extern double part_imp_match_out_sc( int, int ); +-extern void ErrorExit(); +-extern void cpmx_calc(); ++extern void ErrorExit( char *message ); ++extern void cpmx_calc( char **seq, double **cpmx, double *eff, int lgth, int clus ); + extern void intergroup_score( char **, char **, double *, double *, int, int, int, double * ); + extern int conjuctionfortbfast(); +-extern int fastconjuction(); ++extern int fastconjuction( int *memlist, char **seq, char **aseq, double *peff, double *eff, char name[M][B], char aname[M][B], char *d ); + extern char seqcheck( char ** ); + + typedef struct _LocalHom diff --git a/sci-biology/mafft/mafft-7.525.ebuild b/sci-biology/mafft/mafft-7.525.ebuild new file mode 100644 index 000000000000..ba7e47368792 --- /dev/null +++ b/sci-biology/mafft/mafft-7.525.ebuild @@ -0,0 +1,66 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit flag-o-matic toolchain-funcs + +EXTENSIONS="-without-extensions" + +DESCRIPTION="Multiple sequence alignments using a variety of algorithms" +HOMEPAGE="https://mafft.cbrc.jp/alignment/software/index.html" +SRC_URI="https://mafft.cbrc.jp/alignment/software/${P}${EXTENSIONS}-src.tgz" +S="${WORKDIR}/${P}${EXTENSIONS}" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux ~x64-macos" + +PATCHES=( + "${FILESDIR}"/${PN}-7.525-c23.patch +) + +src_prepare() { + default + + sed \ + -e 's/(PREFIX)\/man/(PREFIX)\/share\/man/' \ + -e 's:$(LDFLAGS)::g' \ + -e 's:$(CC) -o $@:$(CC) $(LDFLAGS) -o $@:g' \ + -e 's:$(CC) -shared -o $@:$(CC) $(LDFLAGS) -shared -o $@:g' \ + -e '/INSTALL/s: -s : :g' \ + -i core/Makefile || die +} + +src_configure() { + append-cflags -Wno-unused-result +} + +src_compile() { + emake -C core \ + PREFIX="${EPREFIX}"/usr \ + CC="$(tc-getCC)" \ + CFLAGS="${CFLAGS}" +} + +src_test() { + export MAFFT_BINARIES="${S}"/core + cd test || die + bash ../core/mafft sample > test.fftns2 || die "Tests failed" + bash ../core/mafft --maxiterate 100 sample > test.fftnsi || die "Tests failed" + bash ../core/mafft --globalpair sample > test.gins1 || die "Tests failed" + bash ../core/mafft --globalpair --maxiterate 100 sample > test.ginsi || die "Tests failed" + bash ../core/mafft --localpair sample > test.lins1 || die "Tests failed" + bash ../core/mafft --localpair --maxiterate 100 sample > test.linsi || die "Tests failed" + + diff test.fftns2 sample.fftns2 || die "Tests failed" + diff test.fftnsi sample.fftnsi || die "Tests failed" + diff test.gins1 sample.gins1 || die "Tests failed" + diff test.ginsi sample.ginsi || die "Tests failed" + diff test.lins1 sample.lins1 || die "Tests failed" +} + +src_install() { + emake -C core DESTDIR="${D}" STRIP=":" PREFIX="${EPREFIX}"/usr install + dodoc README.md +}