[med-svn] [Git][med-team/mafft][upstream] New upstream version 7.481

Nilesh Patra (@nilesh) gitlab at salsa.debian.org
Fri Jun 11 21:41:06 BST 2021



Nilesh Patra pushed to branch upstream at Debian Med / mafft


Commits:
82da29e9 by Nilesh Patra at 2021-06-12T02:06:38+05:30
New upstream version 7.481
- - - - -


12 changed files:

- MPI/mltaln9_mpi.c
- core/blosum.c
- core/dash_client.go
- core/functions.h
- core/io.c
- core/mafft.tmpl
- core/mltaln.h
- core/mltaln9.c
- core/tbfast.c
- core/tditeration.c
- core/univscript.tmpl
- readme


Changes:

=====================================
MPI/mltaln9_mpi.c
=====================================
@@ -1,5 +1,6 @@
 #include "mltaln.h"
 #include <mpi.h>
+
 #ifdef enableatomic
 #include <stdatomic.h>
 #endif
@@ -12982,7 +12983,7 @@ void dontcalcimportance_firstone( int nseq, double *eff, char **seq, LocalHom **
 #endif
 }
 
-void calcimportance_target( int nseq, int ntarget, double *eff, char **seq, LocalHom **localhom, int *targetmap, int *targetmapr )
+void calcimportance_target( int nseq, int ntarget, double *eff, char **seq, LocalHom **localhom, int *targetmap, int *targetmapr, int alloclen )
 {
 	int i, j, pos, len, ti, tj;
 	double *importance; // static -> local, 2012/02/25
@@ -12991,7 +12992,7 @@ void calcimportance_target( int nseq, int ntarget, double *eff, char **seq, Loca
 	int *nogaplen; // static -> local, 2012/02/25
 	LocalHom *tmpptr;
 
-	importance = AllocateDoubleVec( nlenmax );
+	importance = AllocateDoubleVec( alloclen );
 	nogaplen = AllocateIntVec( nseq );
 	ieff = AllocateDoubleVec( nseq );
 
@@ -13025,7 +13026,7 @@ void calcimportance_target( int nseq, int ntarget, double *eff, char **seq, Loca
 	{
 		i = targetmapr[ti];
 //		reporterr(       "i = %d\n", i );
-		for( pos=0; pos<nlenmax; pos++ )
+		for( pos=0; pos<alloclen; pos++ )
 			importance[pos] = 0.0;
 		for( j=0; j<nseq; j++ )
 		{
@@ -13048,7 +13049,7 @@ void calcimportance_target( int nseq, int ntarget, double *eff, char **seq, Loca
 		}
 #if 0
 		reporterr(       "position specific importance of seq %d:\n", i );
-		for( pos=0; pos<nlenmax; pos++ )
+		for( pos=0; pos<alloclen; pos++ )
 			reporterr(       "%d: %f\n", pos, importance[pos] );
 		reporterr(       "\n" );
 #endif
@@ -13215,7 +13216,7 @@ void calcimportance_target( int nseq, int ntarget, double *eff, char **seq, Loca
 	free( ieff );
 }
 
-void calcimportance_half( int nseq, double *eff, char **seq, LocalHom **localhom )
+void calcimportance_half( int nseq, double *eff, char **seq, LocalHom **localhom, int alloclen )
 {
 	int i, j, pos, len;
 	double *importance; // static -> local, 2012/02/25
@@ -13224,7 +13225,7 @@ void calcimportance_half( int nseq, double *eff, char **seq, LocalHom **localhom
 	int *nogaplen; // static -> local, 2012/02/25
 	LocalHom *tmpptr;
 
-	importance = AllocateDoubleVec( nlenmax );
+	importance = AllocateDoubleVec( alloclen );
 	nogaplen = AllocateIntVec( nseq );
 	ieff = AllocateDoubleVec( nseq );
 
@@ -13256,7 +13257,7 @@ void calcimportance_half( int nseq, double *eff, char **seq, LocalHom **localhom
 	for( i=0; i<nseq; i++ )
 	{
 //		reporterr(       "i = %d\n", i );
-		for( pos=0; pos<nlenmax; pos++ )
+		for( pos=0; pos<alloclen; pos++ )
 			importance[pos] = 0.0;
 		for( j=0; j<nseq; j++ )
 		{
@@ -13299,7 +13300,7 @@ void calcimportance_half( int nseq, double *eff, char **seq, LocalHom **localhom
 		}
 #if 0
 		reporterr(       "position specific importance of seq %d:\n", i );
-		for( pos=0; pos<nlenmax; pos++ )
+		for( pos=0; pos<alloclen; pos++ )
 			reporterr(       "%d: %f\n", pos, importance[pos] );
 		reporterr(       "\n" );
 #endif


=====================================
core/blosum.c
=====================================
@@ -397,6 +397,7 @@ static void overridematrix( double **matrix )
 		matrix[i1][i2] = v;
 		matrix[i2][i1] = v; // 2018/May/11
 	}
+	fclose( fp );
 }
 
 void extendedmtx( double **matrix, double *freq, unsigned char *amino, char *amino_grp )


=====================================
core/dash_client.go
=====================================
@@ -20,7 +20,7 @@ var VersionNumber = 1.1
 var Debug = false
 var NumberOfQueryTries = 12
 var HTTPClient = &http.Client{}
-var SequenceLimit = 750
+var SequenceLimit = 3000
 var AlignmentLimit = 10000
 
 //URL's


=====================================
core/functions.h
=====================================
@@ -62,12 +62,12 @@ extern int searchAnchors( int nseq, char **seq, Segment *seg );
 extern char *progName( char *str );
 extern void dontcalcimportance( int nseq, double *eff, char **seq, LocalHom **localhom );
 extern void dontcalcimportance_target( int nseq, double *eff, char **seq, LocalHom **localhom, int ntarget );
-extern void calcimportance_target( int nseq, int ntarget, double *eff, char **seq, LocalHom **localhom, int *targetmap, int *targetmapr );
+extern void calcimportance_target( int nseq, int ntarget, double *eff, char **seq, LocalHom **localhom, int *targetmap, int *targetmapr, int alloclen );
 extern void dontcalcimportance_lastone( int nseq, double *eff, char **seq, LocalHom **localhom );
 extern void dontcalcimportance_firstone( int nseq, double *eff, char **seq, LocalHom **localhom );
 extern void dontcalcimportance_half( int nseq, double *eff, char **seq, LocalHom **localhom );
 extern void calcimportance( int nseq, double *eff, char **seq, LocalHom **localhom );
-extern void calcimportance_half( int nseq, double *eff, char **seq, LocalHom **localhom );
+extern void calcimportance_half( int nseq, double *eff, char **seq, LocalHom **localhom, int alloclen );
 extern void weightimportance2( int nseq, double *eff, LocalHom **localhom );
 extern void weightimportance4( int clus1, int clus2, double *eff1, double *eff2, LocalHom ***localhom );
 extern void extendlocalhom( int nseq, LocalHom **localhom );


=====================================
core/io.c
=====================================
@@ -432,7 +432,10 @@ void putlocalhom3( char *al1, char *al2, LocalHom *localhompt, int off1, int off
 			if( divpairscore )
 			{
 				tmppt->overlapaa   = end2-start2+1;
-				tmppt->opt = score / tmppt->overlapaa * 5.8 / 600;
+				if( tmppt->overlapaa>0)
+					tmppt->opt = score / tmppt->overlapaa * 5.8 / 600;
+				else
+					tmppt->opt = -1.0;
 			}
 			else
 			{
@@ -489,7 +492,10 @@ void putlocalhom3( char *al1, char *al2, LocalHom *localhompt, int off1, int off
 		if( divpairscore )
 		{
 			tmppt->overlapaa   = end2-start2+1;
-			tmppt->opt = score / tmppt->overlapaa * 5.8 / 600;
+			if( tmppt->overlapaa>0)
+				tmppt->opt = score / tmppt->overlapaa * 5.8 / 600;
+			else
+				tmppt->opt = -1.0;
 		}
 		else
 		{
@@ -516,7 +522,10 @@ void putlocalhom3( char *al1, char *al2, LocalHom *localhompt, int off1, int off
 		for( tmppt=subnosento; tmppt; tmppt=tmppt->next )
 		{
 			tmppt->overlapaa = sumoverlap;
-			tmppt->opt = sumscore * 5.8 / 600 / sumoverlap;
+			if( tmppt->overlapaa>0)
+				tmppt->opt = sumscore * 5.8 / 600 / sumoverlap;
+			else
+				tmppt->opt = -1.0;
 			fprintf( stderr, "tmpptr->opt = %f\n", tmppt->opt );
 		}
 	}
@@ -568,7 +577,10 @@ void putlocalhom_ext( char *al1, char *al2, LocalHom *localhompt, int off1, int
 			if( divpairscore )
 			{
 				tmppt->overlapaa   = end2-start2+1;
-				tmppt->opt = (double)iscore / tmppt->overlapaa * 5.8 / 600;
+				if( tmppt->overlapaa>0)
+					tmppt->opt = (double)iscore / tmppt->overlapaa * 5.8 / 600;
+				else
+					tmppt->opt = -1.0;
 			}
 			else
 			{
@@ -623,7 +635,10 @@ void putlocalhom_ext( char *al1, char *al2, LocalHom *localhompt, int off1, int
 		if( divpairscore )
 		{
 			tmppt->overlapaa   = end2-start2+1;
-			tmppt->opt = (double)iscore / tmppt->overlapaa * 5.8 / 600;
+			if( tmppt->overlapaa>0)
+				tmppt->opt = (double)iscore / tmppt->overlapaa * 5.8 / 600;
+			else
+				tmppt->opt = -1.0;
 		}
 		else
 		{
@@ -755,7 +770,10 @@ void putlocalhom2( char *al1, char *al2, LocalHom *localhompt, int off1, int off
 			if( divpairscore )
 			{
 				tmppt->overlapaa   = end2-start2+1;
-				tmppt->opt = (double)iscore / tmppt->overlapaa * 5.8 / 600;
+				if(tmppt->overlapaa>0)
+					tmppt->opt = (double)iscore / tmppt->overlapaa * 5.8 / 600;
+				else
+					tmppt->opt = -1.0;
 			}
 			else
 			{
@@ -812,7 +830,10 @@ void putlocalhom2( char *al1, char *al2, LocalHom *localhompt, int off1, int off
 		if( divpairscore )
 		{
 			tmppt->overlapaa   = end2-start2+1;
-			tmppt->opt = (double)iscore / tmppt->overlapaa * 5.8 / 600;
+			if(tmppt->overlapaa>0)
+				tmppt->opt = (double)iscore / tmppt->overlapaa * 5.8 / 600;
+			else
+				tmppt->opt = -1.0;
 		}
 		else
 		{
@@ -836,8 +857,11 @@ void putlocalhom2( char *al1, char *al2, LocalHom *localhompt, int off1, int off
 		for( tmppt=localhompt; tmppt; tmppt=tmppt->next )
 		{
 			tmppt->overlapaa = sumoverlap;
-			tmppt->opt = (double)isumscore * 5.8 / ( 600 * sumoverlap );
-//			fprintf( stderr, "tmpptr->opt = %f\n", tmppt->opt );
+			if(tmppt->overlapaa>0)
+				tmppt->opt = (double)isumscore * 5.8 / ( 600 * sumoverlap );
+			else
+				tmppt->opt = -1.0;
+//			fprintf( stderr, "tmpptr->opt = %f, sumoverlap=%d\n", tmppt->opt, sumoverlap );
 		}
 	}
 }


=====================================
core/mafft.tmpl
=====================================
@@ -1,7 +1,7 @@
 #! /bin/bash 
 er=0;
 myself=`dirname "$0"`/`basename "$0"`; export myself
-version="v7.475 (2020/Nov/23)"; export version
+version="v7.481 (2021/May/26)"; export version
 LANG=C; export LANG
 os=`uname`
 progname=`basename "$0"`
@@ -1034,7 +1034,7 @@ if [ $# -gt 0 ]; then
 		TMPFILE=`cygpath -w "$TMPFILE"`  # necessary to pass path to f2cl on cyswin, somehow unnecessary in msys.
 	fi
 
-	umask 077
+#	umask 077  # 2021/Jan
 #	mkdir  "$TMPFILE"  || er=1
 
 
@@ -2373,7 +2373,7 @@ $ownlist"
 			dashres="$?"
 			if [ $dashres -ne "0" ]; then
 				echo "Error in DASH" 1>>"$progressfile"
-				echo "To use this feature, compiled with" 1>>"$progressfile"
+				echo "To enable this feature, compile with DASH_CLIENT=dash_client. Go compiler is necessary." 1>>"$progressfile"
 				exit 1;
 			fi
 
@@ -2945,8 +2945,8 @@ BEGIN {
 		while( 1 )
 		{
 			go = 0;
-			printf( "OK?\n" ) > "/dev/tty";
-			printf( "@ [Y] " ) > "/dev/tty";
+			printf( "Type Y or just enter to run this command.\n" ) > "/dev/tty";
+			printf( "@ " ) > "/dev/tty";
 			res = getline < "/dev/tty";
 			close( "/dev/tty" );
 			if( res == 0 )


=====================================
core/mltaln.h
=====================================
@@ -36,7 +36,7 @@
 
 
 
-#define VERSION "7.475"
+#define VERSION "7.481"
 #define SHOWVERSION reporterr( "%s (%s) Version " VERSION "\nalg=%c, model=%s, amax=%3.1f\n%d thread(s)\n\n", progName( argv[0] ), (dorp=='d')?"nuc":((nblosum==-2)?"text":"aa"), alg, modelname, specificityconsideration, nthread )
 
 #define FFT_THRESHOLD  80


=====================================
core/mltaln9.c
=====================================
@@ -11528,7 +11528,7 @@ void dontcalcimportance_firstone( int nseq, double *eff, char **seq, LocalHom **
 #endif
 }
 
-void calcimportance_target( int nseq, int ntarget, double *eff, char **seq, LocalHom **localhom, int *targetmap, int *targetmapr )
+void calcimportance_target( int nseq, int ntarget, double *eff, char **seq, LocalHom **localhom, int *targetmap, int *targetmapr, int alloclen )
 {
 	int i, j, pos, len, ti, tj;
 	double *importance; // static -> local, 2012/02/25
@@ -11537,7 +11537,7 @@ void calcimportance_target( int nseq, int ntarget, double *eff, char **seq, Loca
 	int *nogaplen; // static -> local, 2012/02/25
 	LocalHom *tmpptr;
 
-	importance = AllocateDoubleVec( nlenmax );
+	importance = AllocateDoubleVec( alloclen );
 	nogaplen = AllocateIntVec( nseq );
 	ieff = AllocateDoubleVec( nseq );
 
@@ -11571,7 +11571,7 @@ void calcimportance_target( int nseq, int ntarget, double *eff, char **seq, Loca
 	{
 		i = targetmapr[ti];
 //		reporterr(       "i = %d\n", i );
-		for( pos=0; pos<nlenmax; pos++ )
+		for( pos=0; pos<alloclen; pos++ )
 			importance[pos] = 0.0;
 		for( j=0; j<nseq; j++ )
 		{
@@ -11594,7 +11594,7 @@ void calcimportance_target( int nseq, int ntarget, double *eff, char **seq, Loca
 		}
 #if 0
 		reporterr(       "position specific importance of seq %d:\n", i );
-		for( pos=0; pos<nlenmax; pos++ )
+		for( pos=0; pos<alloclen; pos++ )
 			reporterr(       "%d: %f\n", pos, importance[pos] );
 		reporterr(       "\n" );
 #endif
@@ -11761,7 +11761,7 @@ void calcimportance_target( int nseq, int ntarget, double *eff, char **seq, Loca
 	free( ieff );
 }
 
-void calcimportance_half( int nseq, double *eff, char **seq, LocalHom **localhom )
+void calcimportance_half( int nseq, double *eff, char **seq, LocalHom **localhom, int alloclen )
 {
 	int i, j, pos, len;
 	double *importance; // static -> local, 2012/02/25
@@ -11770,7 +11770,8 @@ void calcimportance_half( int nseq, double *eff, char **seq, LocalHom **localhom
 	int *nogaplen; // static -> local, 2012/02/25
 	LocalHom *tmpptr;
 
-	importance = AllocateDoubleVec( nlenmax );
+	importance = AllocateDoubleVec( alloclen );
+//	reporterr("alloclen=%d, nlenmax=%d\n", alloclen, nlenmax );
 	nogaplen = AllocateIntVec( nseq );
 	ieff = AllocateDoubleVec( nseq );
 
@@ -11802,8 +11803,10 @@ void calcimportance_half( int nseq, double *eff, char **seq, LocalHom **localhom
 	for( i=0; i<nseq; i++ )
 	{
 //		reporterr(       "i = %d\n", i );
-		for( pos=0; pos<nlenmax; pos++ )
+		for( pos=0; pos<alloclen; pos++ )
+		{
 			importance[pos] = 0.0;
+		}
 		for( j=0; j<nseq; j++ )
 		{
 			if( i == j ) continue;
@@ -11812,6 +11815,7 @@ void calcimportance_half( int nseq, double *eff, char **seq, LocalHom **localhom
 			{
 				for( tmpptr = localhom[i]+j-i; tmpptr; tmpptr=tmpptr->next )
 				{
+//					reporterr( "pos=%d, alloclen=%d\n", pos, alloclen );
 					if( tmpptr->opt == -1 ) continue;
 					for( pos=tmpptr->start1; pos<=tmpptr->end1; pos++ )
 					{


=====================================
core/tbfast.c
=====================================
@@ -1337,10 +1337,10 @@ void treebase( int *nlen, char **aseq, int nadd, char *mergeoralign, char **mseq
 	if( constraint && compacttree != 3 )
 	{
 		if( specifictarget )
-			calcimportance_target( njob, ntarget, effarr, aseq, localhomtable, targetmap, targetmapr );
+			calcimportance_target( njob, ntarget, effarr, aseq, localhomtable, targetmap, targetmapr, *alloclen );
 //			dontcalcimportance_target( njob, effarr, aseq, localhomtable, ntarget ); //CHUUI
 		else
-			calcimportance_half( njob, effarr, aseq, localhomtable );
+			calcimportance_half( njob, effarr, aseq, localhomtable, *alloclen );
 //			dontcalcimportance_half( njob, effarr, aseq, localhomtable ); //CHUUI
 	}
 	else if( constraint && nseed ) // ie, compacttree == 3 && constraint > 0 
@@ -3320,10 +3320,10 @@ int main( int argc, char *argv[] )
 		if( constraint && compacttree != 3 )
 		{
 			if( specifictarget )
-				calcimportance_target( njob, ntarget, eff, bseq, localhomtable, targetmap, targetmapr );
+				calcimportance_target( njob, ntarget, eff, bseq, localhomtable, targetmap, targetmapr, alloclen );
 //				dontcalcimportance_target( njob, eff, bseq, localhomtable, ntarget ); // CHUUI
 			else
-				calcimportance_half( njob, eff, bseq, localhomtable );
+				calcimportance_half( njob, eff, bseq, localhomtable, alloclen );
 //				dontcalcimportance_half( njob, eff, bseq, localhomtable ); // CHUUI
 		}
 


=====================================
core/tditeration.c
=====================================
@@ -1406,9 +1406,9 @@ int TreeDependentIteration( int locnjob, char **name, int nlen[M],
 		{
 			counteff_simple( locnjob, topol, len, effarrforlocalhom );
 			if( ntarget < locnjob )
-				calcimportance_target( locnjob, ntarget, effarrforlocalhom, aseq, localhomtable, targetmap, targetmapr );
+				calcimportance_target( locnjob, ntarget, effarrforlocalhom, aseq, localhomtable, targetmap, targetmapr, alloclen );
 			else
-				calcimportance_half( locnjob, effarrforlocalhom, aseq, localhomtable );
+				calcimportance_half( locnjob, effarrforlocalhom, aseq, localhomtable, alloclen );
 		}
 
 		if( weight == 2 ) 
@@ -1631,9 +1631,9 @@ int TreeDependentIteration( int locnjob, char **name, int nlen[M],
 				{
 					counteff_simple( locnjob, topol, len, effarrforlocalhom );
 					if( ntarget < locnjob )
-						calcimportance_target( locnjob, ntarget, effarrforlocalhom, aseq, localhomtable, targetmap, targetmapr );
+						calcimportance_target( locnjob, ntarget, effarrforlocalhom, aseq, localhomtable, targetmap, targetmapr, alloclen );
 					else
-						calcimportance_half( locnjob, effarrforlocalhom, aseq, localhomtable );
+						calcimportance_half( locnjob, effarrforlocalhom, aseq, localhomtable, alloclen );
 				}
 			}
 	


=====================================
core/univscript.tmpl
=====================================
@@ -1,37 +1,27 @@
 progs="_PROGS"
+progs="$progs dash_client"
 for prog in $progs; do
 	printf  $prog" "
 done
 
 make clean
-make CC="$HOME/soft/gcc/usr/local/bin/gcc" CFLAGS="-O3 -m32 -mmacosx-version-min=10.5 -isysroot/Developer/SDKs/MacOSX10.5.sdk -DMACOSX_DEPLOYMENT_TARGET=10.5 -static-libgcc" LIBS="-lm  -lpthread -lgcc_eh" ENABLE_MULTITHREAD="-Denablemultithread"
+make CC="clang" CFLAGS="-O3 -arch x86_64 -mmacosx-version-min=10.9 -DMACOSX_DEPLOYMENT_TARGET=10.9" LIBS="-lm  -lpthread" ENABLE_MULTITHREAD="-Denablemultithread"
+env CC='clang -O3 -arch x86_64' GOARCH=amd64 GOOS=darwin CGO_ENABLED=0 go build --ldflags '-extldflags "-static"' dash_client.go # uwagaki
 for prog in $progs; do
-	mv $prog $prog.intel32
+	mv $prog $prog.x86_64
 done
 
 make clean
-make CC="$HOME/soft/gcc/usr/local/bin/gcc" CFLAGS="-O3 -m64 -mmacosx-version-min=10.5 -isysroot/Developer/SDKs/MacOSX10.5.sdk -DMACOSX_DEPLOYMENT_TARGET=10.5 -static-libgcc" LIBS="-lm  -lpthread -lgcc_eh" ENABLE_MULTITHREAD="-Denablemultithread"
+make CC="clang" CFLAGS="-O3 -arch arm64 -mmacosx-version-min=11.1 -DMACOSX_DEPLOYMENT_TARGET=11.1" LIBS="-lm  -lpthread" ENABLE_MULTITHREAD="-Denablemultithread"
+env CC='clang -O3 -arch arm64' GOARCH=arm64 GOOS=darwin CGO_ENABLED=0 go build --ldflags '-extldflags "-static"' dash_client.go # uwagaki
 for prog in $progs; do
-	mv $prog $prog.intel64
+	mv $prog $prog.arm64
 done
 
-#make clean
-#make CC="gcc-4.0" CFLAGS="-arch ppc64 -m64 -O3 -mmacosx-version-min=10.5 -isysroot/Developer/SDKs/MacOSX10.5.sdk -DMACOSX_DEPLOYMENT_TARGET=10.5" ENABLE_MULTITHREAD=""
-#for prog in $progs; do
-#	mv $prog $prog.ppc64
-#done
-#
-#make clean
-#make CC="gcc-4.0" CFLAGS="-arch ppc -m32 -O3 -mmacosx-version-min=10.5 -isysroot/Developer/SDKs/MacOSX10.5.sdk -DMACOSX_DEPLOYMENT_TARGET=10.5" ENABLE_MULTITHREAD=""
-#for prog in $progs; do
-#	mv $prog $prog.ppc32
-#done
-
-
 set $progs
 for prog in $progs; do
 #	lipo -create $prog.icc $prog.ppc32 $prog.ppc64 -output $prog
 #	lipo -create $prog.intel64 $prog.intel32 $prog.ppc32 $prog.ppc64 -output $prog
-	lipo -create $prog.intel64 $prog.intel32 -output $prog
+	lipo -create $prog.x86_64 $prog.arm64 -output $prog
 	cp $prog ../binaries
 done


=====================================
readme
=====================================
@@ -1,6 +1,6 @@
 -----------------------------------------------------------------------
   MAFFT: a multiple sequence alignment program
-  version 7.475, 2020/Nov/23
+  version 7.481, 2021/May/26
 
   http://mafft.cbrc.jp/alignment/software/
   katoh at ifrec.osaka-u.ac.jp



View it on GitLab: https://salsa.debian.org/med-team/mafft/-/commit/82da29e9f1abd9a8a5798273dad78db14009d9da

-- 
View it on GitLab: https://salsa.debian.org/med-team/mafft/-/commit/82da29e9f1abd9a8a5798273dad78db14009d9da
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-med-commit/attachments/20210611/f96fb07e/attachment-0001.htm>


More information about the debian-med-commit mailing list