[med-svn] [Git][med-team/bart][master-contrib] 8 commits: deterministic archive

Martin Uecker (@uecker-guest) gitlab at salsa.debian.org
Thu Dec 30 07:03:13 GMT 2021



Martin Uecker pushed to branch master-contrib at Debian Med / bart


Commits:
5cad340e by Martin Uecker at 2021-12-29T19:00:15+01:00
deterministic archive

- - - - -
45a48e77 by Martin Uecker at 2021-12-29T21:00:42+01:00
add tests

- - - - -
f6de618c by Martin Uecker at 2021-12-29T22:01:13+01:00
do not update commands.txt for package builds

- - - - -
3d35433e by Martin Uecker at 2021-12-29T22:02:24+01:00
Test that commands.txt is up-to-date

- - - - -
9cf305ab by Martin Uecker at 2021-12-29T22:12:26+01:00
Update patch to prevent deletion of commands.txt.

- - - - -
dce440f7 by Martin Uecker at 2021-12-29T22:37:12+01:00
fix typo and reorder tests

- - - - -
092749f1 by Martin Uecker at 2021-12-30T07:04:20+01:00
backport fixes for tests

- - - - -
c4910375 by Martin Uecker at 2021-12-30T07:31:38+01:00
Merge branch 'master' into master-contrib

- - - - -


8 changed files:

- debian/changelog
- + debian/patches/0006-do-not-update-doc-commands.txt-automatically.patch
- + debian/patches/0007-backported-test-fixes.patch
- debian/patches/series
- debian/rules
- + debian/tests/commands
- debian/tests/control
- + debian/tests/suite


Changes:

=====================================
debian/changelog
=====================================
@@ -5,6 +5,10 @@ bart-cuda (0.7.00-1) UNRELEASED; urgency=medium
   * Update upstream metadata.
   * Patch to relax failing unit test.
   * Patch to work around compiler bug.
+  * Deterministic build.
+  * Run test suite.
+  * Don't update commands.txt.
+  * Backport fixes for tests.
 
   [ Andreas Tille ]
   * Standards-Version: 4.6.0 (routine-update)


=====================================
debian/patches/0006-do-not-update-doc-commands.txt-automatically.patch
=====================================
@@ -0,0 +1,1441 @@
+From: Martin Uecker <martin.uecker at med.uni-goettingen.de>
+Date: Wed, 29 Dec 2021 21:40:59 +0100
+Subject: do not update doc/commands.txt automatically
+
+---
+ Makefile         |    4 +-
+ doc/commands.txt | 1403 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 1405 insertions(+), 2 deletions(-)
+ create mode 100644 doc/commands.txt
+
+diff --git a/Makefile b/Makefile
+index c917dc8..3d09e8b 100644
+--- a/Makefile
++++ b/Makefile
+@@ -568,7 +568,7 @@ XTARGETS:=$(sort $(XTARGETS))
+ 
+ 
+ doc/commands.txt: bart
+-	./rules/update_commands.sh ./bart doc/commands.txt $(XTARGETS)
++#	./rules/update_commands.sh ./bart doc/commands.txt $(XTARGETS)
+ 
+ doxygen: makedoc.sh doxyconfig bart
+ 	 ./makedoc.sh
+@@ -649,7 +649,7 @@ allclean: clean
+ 	rm -f $(srcdir)/misc/version.inc
+ 	rm -rf $(root)/tests/tmp/*/
+ 	rm -rf $(root)/doc/dx
+-	rm -f $(root)/doc/commands.txt
++#	rm -f $(root)/doc/commands.txt
+ 	touch isclean
+ 
+ distclean: allclean
+diff --git a/doc/commands.txt b/doc/commands.txt
+new file mode 100644
+index 0000000..2650973
+--- /dev/null
++++ b/doc/commands.txt
+@@ -0,0 +1,1403 @@
++AUTOGENERATED. DO NOT EDIT.
++
++
++--avg--
++
++Usage: avg [-w] <bitmask> <input> <output>
++
++Calculates (weighted) average along dimensions specified by bitmask.
++
++-w		weighted average
++-h		help
++
++
++--bench--
++
++Usage: bench [-T] [-S] [-s d] [<output>]
++
++Performs a series of micro-benchmarks.
++
++-T		varying number of threads
++-S		varying problem size
++-s flags      	select benchmarks
++-h		help
++
++
++--bin--
++
++Usage: bin [-l d] [-o] [-R d] [-C d] [-r ...] [-c ...] [-a d] [-A d] [-x <string>] <label> <src> <dst>
++
++Binning
++
++
++-l dim      	Bin according to labels: Specify cluster dimension
++-o		Reorder according to labels
++-R n_resp      	Quadrature Binning: Number of respiratory labels
++-C n_card      	Quadrature Binning: Number of cardiac labels
++-r x:y      	(Respiration: Eigenvector index)
++-c x:y      	(Cardiac motion: Eigenvector index)
++-a window      	Quadrature Binning: Moving average
++-A window      	(Quadrature Binning: Cardiac moving average window)
++-x file      	(Output filtered cardiac EOFs)
++-h		help
++
++
++--bitmask--
++
++Usage: bitmask [-b] -b <bitmask> | <dim1> ... <dimN>
++
++Convert between a bitmask and set of dimensions.
++
++-b		dimensions from bitmask
++-h		help
++
++
++--cabs--
++
++Usage: cabs <input> <output>
++
++Absolute value of array (|<input>|).
++
++-h		help
++
++
++--caldir--
++
++Usage: caldir cal_size <input> <output>
++
++Estimates coil sensitivities from the k-space center using
++a direct method (McKenzie et al.). The size of the fully-sampled
++calibration region is automatically determined but limited by
++{cal_size} (e.g. in the readout direction).
++
++-h		help
++
++
++--calmat--
++
++Usage: calmat [-k ...] [-r ...] <kspace> <calibration matrix>
++
++Compute calibration matrix.
++
++-k ksize      	kernel size
++-r cal_size      	Limits the size of the calibration region.
++-h		help
++
++
++--carg--
++
++Usage: carg <input> <output>
++
++Argument (phase angle).
++
++-h		help
++
++
++--casorati--
++
++Usage: casorati dim1 kern1 dim2 kern2 ... dimn kernn <input> <output>
++
++Casorati matrix with kernel (kern1, ..., kernn) along dimensions (dim1, ..., dimn).
++
++
++-h		help
++
++
++--cc--
++
++Usage: cc [-p d] [-M] [-r ...] [-A] [-S ...] [-G ...] [-E ...] <kspace> <coeff>|<proj_kspace>
++
++Performs coil compression.
++
++-p N      	perform compression to N virtual channels
++-M		output compression matrix
++-r S      	size of calibration region
++-A		use all data to compute coefficients
++-S		type: SVD
++-G		type: Geometric
++-E		type: ESPIRiT
++-h		help
++
++
++--ccapply--
++
++Usage: ccapply [-p d] [-u] [-t] [-S ...] [-G ...] [-E ...] <kspace> <cc_matrix> <proj_kspace>
++
++Apply coil compression forward/inverse operation.
++
++-p N      	perform compression to N virtual channels
++-u		apply inverse operation
++-t		don't apply FFT in readout
++-S		type: SVD
++-G		type: Geometric
++-E		type: ESPIRiT
++-h		help
++
++
++--cdf97--
++
++Usage: cdf97 [-i] bitmask <input> <output>
++
++Perform a wavelet (cdf97) transform.
++
++
++-i		inverse
++-h		help
++
++
++--circshift--
++
++Usage: circshift dim shift <input> <output>
++
++Perform circular shift along {dim} by {shift} elements.
++
++-h		help
++
++
++--conj--
++
++Usage: conj <input> <output>
++
++Compute complex conjugate.
++
++-h		help
++
++
++--conv--
++
++Usage: conv bitmask <input> <kernel> <output>
++
++Performs a convolution along selected dimensions.
++
++-h		help
++
++
++--conway--
++
++Usage: conway [-P] [-n d] <input> <output>
++
++Conway's game of life.
++
++
++-P		periodic boundary conditions
++-n #      	nr. of iterations
++-h		help
++
++
++--copy--
++
++Usage: copy [dim1 pos1 ... dimn posn] <input> <output>
++
++Copy an array (to a given position in the output file - which then must exist).
++
++-h		help
++
++
++--cpyphs--
++
++Usage: cpyphs <input> <output
++
++Copy phase from <input> to <output>.
++
++-h		help
++
++
++--creal--
++
++Usage: creal <input> <output>
++
++Real value.
++
++-h		help
++
++
++--crop--
++
++Usage: crop dimension size <input> <output>
++
++Extracts a sub-array corresponding to the central part of {size} along {dimension}
++
++-h		help
++
++
++--delta--
++
++Usage: delta dims flags size out
++
++Kronecker delta.
++
++-h		help
++
++
++--ecalib--
++
++Usage: ecalib [-t f] [-c f] [-k ...] [-r ...] [-m d] [-S] [-W] [-I] [-1] [-P] [-v f] [-a] [-d d] <kspace> <sensitivites> [<ev-maps>]
++
++Estimate coil sensitivities using ESPIRiT calibration.
++Optionally outputs the eigenvalue maps.
++
++-t threshold      	This determined the size of the null-space.
++-c crop_value      	Crop the sensitivities if the eigenvalue is smaller than {crop_value}.
++-k ksize      	kernel size
++-r cal_size      	Limits the size of the calibration region.
++-m maps      	Number of maps to compute.
++-S		create maps with smooth transitions (Soft-SENSE).
++-W		soft-weighting of the singular vectors.
++-I		intensity correction
++-1		perform only first part of the calibration
++-P		Do not rotate the phase with respect to the first principal component
++-v variance      	Variance of noise in data.
++-a		Automatically pick thresholds.
++-d level      	Debug level
++-h		help
++
++
++--ecaltwo--
++
++Usage: ecaltwo [-c f] [-m d] [-S] x y z <input> <sensitivities> [<ev_maps>]
++
++Second part of ESPIRiT calibration.
++Optionally outputs the eigenvalue maps.
++
++-c crop_value      	Crop the sensitivities if the eigenvalue is smaller than {crop_value}.
++-m maps      	Number of maps to compute.
++-S		Create maps with smooth transitions (Soft-SENSE).
++-h		help
++
++
++--estdelay--
++
++Usage: estdelay [-R] [-p d] [-n d] [-r f] <trajectory> <data> [<qf>]
++
++Estimate gradient delays from radial data.
++
++-R		RING method
++-p p      	[RING] Padding
++-n n      	[RING] Number of intersecting spokes
++-r r      	[RING] Central region size
++-h		help
++
++
++--estdims--
++
++Usage: estdims <traj>
++
++Estimate image dimension from non-Cartesian trajectory.
++Assume trajectory scaled to -DIM/2 to DIM/2 (ie dk=1/FOV=1)
++
++-h		help
++
++
++--estshift--
++
++Usage: estshift flags <arg1> <arg2>
++
++Estimate sub-pixel shift.
++
++-h		help
++
++
++--estvar--
++
++Usage: estvar [-k ...] [-r ...] <kspace>
++
++Estimate the noise variance assuming white Gaussian noise.
++
++-k ksize      	kernel size
++-r cal_size      	Limits the size of the calibration region.
++-h		help
++
++
++--extract--
++
++Usage: extract dim1 start1 end1 ... dimn startn endn <input> <output>
++
++Extracts a sub-array along dims from index start to (not including) end..
++
++
++-h		help
++
++
++--fakeksp--
++
++Usage: fakeksp [-r] <image> <kspace> <sens> <output>
++
++Recreate k-space from image and sensitivities.
++
++-r		replace measured samples with original values
++-h		help
++
++
++--fft--
++
++Usage: fft [-u] [-i] [-n] bitmask <input> <output>
++
++Performs a fast Fourier transform (FFT) along selected dimensions.
++
++-u		unitary
++-i		inverse
++-n		un-centered
++-h		help
++
++
++--fftmod--
++
++Usage: fftmod [-i] bitmask <input> <output>
++
++Apply 1 -1 modulation along dimensions selected by the {bitmask}.
++
++
++-i		inverse
++-h		help
++
++
++--fftrot--
++
++Usage: fftrot dim1 dim2 theta <input> <output>
++
++Performs a rotation using Fourier transform (FFT) along selected dimensions.
++
++-h		help
++
++
++--fftshift--
++
++Usage: fftshift bitmask <input> <output>
++
++Apply fftshift along dimensions selected by the {bitmask}.
++
++-h		help
++
++
++--filter--
++
++Usage: filter [-m d] [-l d] <input> <output>
++
++Apply filter.
++
++
++-m dim      	median filter along dimension dim
++-l len      	length of filter
++-h		help
++
++
++--flatten--
++
++Usage: flatten <input> <output>
++
++Flatten array to one dimension.
++
++-h		help
++
++
++--flip--
++
++Usage: flip bitmask <input> <output>
++
++Flip (reverse) dimensions specified by the {bitmask}.
++
++-h		help
++
++
++--fmac--
++
++Usage: fmac [-A] [-C] [-s d] <input1> [<input2>] <output>
++
++Multiply <input1> and <input2> and accumulate in <output>.
++If <input2> is not specified, assume all-ones.
++
++-A		add to existing output (instead of overwriting)
++-C		conjugate input2
++-s b      	squash dimensions selected by bitmask b
++-h		help
++
++
++--homodyne--
++
++Usage: homodyne [-r f] [-I] [-C] [-P <string>] [-n] dim fraction <input> <output>
++
++Perform homodyne reconstruction along dimension dim.
++
++-r alpha      	Offset of ramp filter, between 0 and 1. alpha=0 is a full ramp, alpha=1 is a horizontal line
++-I		Input is in image domain
++-C		Clear unacquired portion of kspace
++-P phase_ref>      	Use <phase_ref> as phase reference
++-n		use uncentered ffts
++-h		help
++
++
++--index--
++
++Usage: index dim size name
++
++Create an array counting from 0 to {size-1} in dimensions {dim}.
++
++-h		help
++
++
++--invert--
++
++Usage: invert <input> <output>
++
++Invert array (1 / <input>). The output is set to zero in case of divide by zero.
++
++-h		help
++
++
++--itsense--
++
++Usage: itsense alpha <sensitivities> <kspace> <pattern> <image>
++
++A simplified implementation of iterative sense reconstruction
++with l2-regularization.
++
++-h		help
++
++
++--join--
++
++Usage: join [-a] dimension <input1> ... <inputn> <output>
++
++Join input files along {dimensions}. All other dimensions must have the same size.
++	 Example 1: join 0 slice_001 slice_002 slice_003 full_data
++	 Example 2: join 0 `seq -f "slice_%%03g" 0 255` full_data
++
++
++-a		append - only works for cfl files!
++-h		help
++
++
++--looklocker--
++
++Usage: looklocker [-t f] [-D f] <input> <output>
++
++Compute T1 map from M_0, M_ss, and R_1*.
++
++
++-t threshold      	Pixels with M0 values smaller than {threshold} are set to zero.
++-D delay      	Time between the middle of inversion pulse and the first excitation.
++-h		help
++
++
++--lrmatrix--
++
++Usage: lrmatrix [-d] [-i d] [-m d] [-f d] [-j d] [-k d] [-N] [-s] [-l d] [-o <string>] <input> <output>
++
++Perform (multi-scale) low rank matrix completion
++
++-d		perform decomposition instead, ie fully sampled
++-i iter      	maximum iterations.
++-m flags      	which dimensions are reshaped to matrix columns.
++-f flags      	which dimensions to perform multi-scale partition.
++-j scale      	block size scaling from one scale to the next one.
++-k size      	smallest block size
++-N		add noise scale to account for Gaussian noise.
++-s		perform low rank + sparse matrix completion.
++-l size      	perform locally low rank soft thresholding with specified block size.
++-o out2      	summed over all non-noise scales to create a denoised output.
++-h		help
++
++
++--mandelbrot--
++
++Usage: mandelbrot [-s d] [-n d] [-t f] [-z f] [-r f] [-i f] output
++
++Compute mandelbrot set.
++
++
++-s size      	image size
++-n #      	nr. of iterations
++-t t      	threshold for divergence
++-z z      	zoom
++-r r      	offset real
++-i i      	offset imag
++-h		help
++
++
++--mip--
++
++Usage: mip [-m] [-a] bitmask <input> <output>
++
++Maximum (minimum) intensity projection (MIP) along dimensions specified by bitmask.
++
++
++-m		minimum
++-a		do absolute value first
++-h		help
++
++
++--moba--
++
++Usage: moba [-r ...] [-L ...] [-F ...] [-G ...] [-m d] [-l d] [-i d] [-R f] [-T f] [-j f] [-u f] [-C d] [-s f] [-B f] [-b ...] [-d d] [-f f] [-p <string>] [-J] [-M] [-g] [-I <string>] [-t <string>] [-o f] [-k] [--kfilter-1 ...] [--kfilter-2 ...] [-n] [--fat_spec_0 ...] <kspace> <TI/TE> <output> [<sensitivities>]
++
++Model-based nonlinear inverse reconstruction
++
++
++-r <T>:A:B:C	generalized regularization options (-rh for help)
++-L		T1 mapping using model-based look-locker
++-F		T2 mapping using model-based Fast Spin Echo
++-G		T2* mapping using model-based multiple gradient echo
++-m model      	Select the MGRE model from enum { WF = 0, WFR2S, WF2R2S, R2S, PHASEDIFF } [default: WFR2S]
++-l reg      	1/-l2	toggle l1-wavelet or l2 regularization.
++-i iter      	Number of Newton steps
++-R redu      	reduction factor
++-T damp      	damping on temporal frames
++-j minreg      	Minimum regu. parameter
++-u rho      	ADMM rho [default: 0.01]
++-C iter      	inner iterations
++-s step      	step size
++-B bound      	lower bound for relaxivity
++-b SMO:SC      	B0 field: spatial smooth level; scaling [default: 222.; 1.]
++-d level      	Debug level
++-f FOV      	
++-p PSF      	
++-J		Stack frames for joint recon
++-M		Simultaneous Multi-Slice reconstruction
++-g		use gpu
++-I init      	File for initialization
++-t Traj      	
++-o os      	Oversampling factor for gridding [default: 1.25]
++-k		k-space edge filter for non-Cartesian trajectories
++--kfilter-1		k-space edge filter 1
++--kfilter-2		k-space edge filter 2
++-n		disable normlization of parameter maps for thresholding
++--fat_spec_0		select fat spectrum from ISMRM fat-water tool
++-h		help
++
++
++--mobafit--
++
++Usage: mobafit [-G ...] [-m d] [-i d] [-p ...] [-g] <TE> <echo images> <parameters>
++
++Pixel-wise fitting of sequence models.
++
++-G		MGRE
++-m model      	Select the MGRE model from enum { WF = 0, WFR2S, WF2R2S, R2S, PHASEDIFF } [default: WFR2S]
++-i iter      	Number of IRGNM steps
++-p px,py,pz      	(patch size)
++-g		use gpu
++-h		help
++
++
++--nlinv--
++
++Usage: nlinv [-i d] [-d d] [-c] [-N] [-m d] [-U] [-f f] [-p <string>] [-t <string>] [-I <string>] [-g] [-S] [--lowmem] <kspace> <output> [<sensitivities>]
++
++Jointly estimate image and sensitivities with nonlinear
++inversion using {iter} iteration steps. Optionally outputs
++the sensitivities.
++
++-i iter      	Number of Newton steps
++-d level      	Debug level
++-c		Real-value constraint
++-N		Do not normalize image with coil sensitivities
++-m nmaps      	Number of ENLIVE maps to use in reconstruction
++-U		Do not combine ENLIVE maps in output
++-f FOV      	restrict FOV
++-p file      	pattern / transfer function
++-t file      	kspace trajectory
++-I file      	File for initialization
++-g		use gpu
++-S		Re-scale image after reconstruction
++--lowmem		Use low-mem mode of the nuFFT
++-h		help
++
++
++--noise--
++
++Usage: noise [-s d] [-r] [-n f] <input> <output>
++
++Add noise with selected variance to input.
++
++-s random seed initialization
++-r		real-valued input
++-n variance      	DEFAULT: 1.0
++-h		help
++
++
++--normalize--
++
++Usage: normalize flags <input> <output>
++
++Normalize along selected dimensions.
++
++-h		help
++
++
++--nrmse--
++
++Usage: nrmse [-t f] [-s] <reference> <input>
++
++Output normalized root mean square error (NRMSE),
++i.e. norm(input - ref) / norm(ref)
++
++-t eps      	compare to eps
++-s		automatic (complex) scaling
++-h		help
++
++
++--nufft--
++
++Usage: nufft [-a] [-i] [-d ...] [-t] [-r] [-c] [-l f] [-P] [-s] [-g] [-1] [--lowmem] <traj> <input> <output>
++
++Perform non-uniform Fast Fourier Transform.
++
++-a		adjoint
++-i		inverse
++-d x:y:z      	dimensions
++-t		Toeplitz embedding for inverse NUFFT
++-r		turn-off Toeplitz embedding for inverse NUFFT
++-c		Preconditioning for inverse NUFFT
++-l lambda      	l2 regularization
++-P		periodic k-space
++-s		DFT
++-g		GPU (only inverse)
++-1		use/return oversampled grid
++--lowmem		Use low-mem mode of the nuFFT
++-h		help
++
++
++--ones--
++
++Usage: ones dims dim1 ... dimn name
++
++Create an array filled with ones with {dims} dimensions of size {dim1} to {dimn}.
++
++-h		help
++
++
++--pattern--
++
++Usage: pattern [-s d] <kspace> <pattern>
++
++Compute sampling pattern from kspace
++
++
++-s bitmask      	Squash dimensions selected by bitmask
++-h		help
++
++
++--phantom--
++
++Usage: phantom [-s d] [-S d] [-k] [-t <string>] [-G ...] [-T ...] [-N d] [-B ...] [-x d] [-g d] [-3] [-b] [-r d] <output>
++
++Image and k-space domain phantoms.
++
++-s nc      	nc sensitivities
++-S nc      	Output nc sensitivities
++-k		k-space
++-t file      	trajectory
++-G		geometric object phantom
++-T		tubes phantom
++-N num      	Random tubes phantom and number
++-B		BART logo
++-x n      	dimensions in y and z
++-g n=1,2      	select geometry for object phantom
++-3		3D
++-b		basis functions for geometry
++-r seed      	random seed initialization
++-h		help
++
++
++--pics--
++
++Usage: pics [-l ...] [-r f] [-R ...] [-c] [-s f] [-i d] [-t <string>] [-n] [-N] [-g] [-G d] [-p <string>] [-I ...] [-b d] [-e] [-T <string>] [-W <string>] [-d d] [-O d] [-o f] [-u f] [-C d] [-q f] [-f f] [-m ...] [-w f] [-S] [-L d] [-K] [-B <string>] [-P f] [-a ...] [-M] [-U,--lowmem] <kspace> <sensitivities> <output>
++
++Parallel-imaging compressed-sensing reconstruction.
++
++-l1/-l2		toggle l1-wavelet or l2 regularization.
++-r lambda      	regularization parameter
++-R <T>:A:B:C	generalized regularization options (-Rh for help)
++-c		real-value constraint
++-s step      	iteration stepsize
++-i iter      	max. number of iterations
++-t file      	k-space trajectory
++-n		disable random wavelet cycle spinning
++-N		do fully overlapping LLR blocks
++-g		use GPU
++-G gpun      	use GPU device gpun
++-p file      	pattern or weights
++-I		select IST
++-b blk      	Lowrank block size
++-e		Scale stepsize based on max. eigenvalue
++-T file      	(truth file)
++-W <img>      	Warm start with <img>
++-d level      	Debug level
++-O rwiter      	(reweighting)
++-o gamma      	(reweighting)
++-u rho      	ADMM rho
++-C iter      	ADMM max. CG iterations
++-q cclambda      	(cclambda)
++-f rfov      	restrict FOV
++-m		select ADMM
++-w val      	inverse scaling of the data
++-S		re-scale the image after reconstruction
++-L flags      	batch-mode
++-K		randshift for NUFFT
++-B file      	temporal (or other) basis
++-P eps      	Basis Pursuit formulation, || y- Ax ||_2 <= eps
++-a		select Primal Dual
++-M		Simultaneous Multi-Slice reconstruction
++-U,--lowmem		Use low-mem mode of the nuFFT
++-h		help
++
++
++--pocsense--
++
++Usage: pocsense [-i d] [-r f] [-l d] <kspace> <sensitivities> <output>
++
++Perform POCSENSE reconstruction.
++
++-i iter      	max. number of iterations
++-r alpha      	regularization parameter
++-l 1/-l2      	toggle l1-wavelet or l2 regularization
++-h		help
++
++
++--poisson--
++
++Usage: poisson [-Y d] [-Z d] [-y f] [-z f] [-C d] [-v] [-e] [-s d] <outfile>
++
++Computes Poisson-disc sampling pattern.
++
++-Y size      	size dimension 1
++-Z size      	size dimension 2
++-y acc      	acceleration dim 1
++-z acc      	acceleration dim 2
++-C size      	size of calibration region
++-v		variable density
++-e		elliptical scanning
++-s seed      	random seed
++-h		help
++
++
++--pol2mask--
++
++Usage: pol2mask [-X d] [-Y d] <poly> <output>
++
++Compute masks from polygons.
++
++-X size      	size dimension 0
++-Y size      	size dimension 1
++-h		help
++
++
++--poly--
++
++Usage: poly L N a_0 a_1 ... a_N output
++
++Evaluate polynomial p(x) = a_0 + a_1 x + a_2 x^2 ... a_N x^N at x = {0, 1, ... , L - 1} where a_i are floats.
++
++-h		help
++
++
++--repmat--
++
++Usage: repmat dimension repetitions <input> <output>
++
++Repeat input array multiple times along a certain dimension.
++
++-h		help
++
++
++--reshape--
++
++Usage: reshape flags dim1 ... dimN <input> <output>
++
++Reshape selected dimensions.
++
++
++-h		help
++
++
++--resize--
++
++Usage: resize [-c] dim1 size1 ... dimn sizen <input> <output>
++
++Resizes an array along dimensions to sizes by truncating or zero-padding.
++
++-c		center
++-h		help
++
++
++--rmfreq--
++
++Usage: rmfreq [-N d] <traj> <k> <k_cor>
++
++Remove angle-dependent frequency
++
++
++-N #      	Number of harmonics [Default: 5]
++-h		help
++
++
++--rof--
++
++Usage: rof <lambda> <flags> <input> <output>
++
++Perform total variation denoising along dims <flags>.
++
++-h		help
++
++
++--roistat--
++
++Usage: roistat [-b] [-C ...] [-S ...] [-M ...] [-D ...] [-E ...] [-V ...] <roi> <input> [<output>]
++
++Compute ROI statistics.
++
++-b		Bessel's correction, i.e. 1 / (n - 1)
++-C		voxel count
++-S		sum
++-M		mean
++-D		standard deviation
++-E		energy
++-V		variance
++-h		help
++
++
++--rss--
++
++Usage: rss bitmask <input> <output>
++
++Calculates root of sum of squares along selected dimensions.
++
++-h		help
++
++
++--rtnlinv--
++
++Usage: rtnlinv [-i d] [-d d] [-c] [-N] [-m d] [-U] [-f f] [-p <string>] [-t <string>] [-I <string>] [-g] [-S] [-T f] [-x ...] <kspace> <output> [<sensitivities>]
++
++Jointly estimate a time-series of images and sensitivities with nonlinear
++inversion using {iter} iteration steps. Optionally outputs
++the sensitivities.
++
++-i iter      	Number of Newton steps
++-d level      	Debug level
++-c		Real-value constraint
++-N		Do not normalize image with coil sensitivities
++-m nmaps      	Number of ENLIVE maps to use in reconstruction
++-U		Do not combine ENLIVE maps in output
++-f FOV      	restrict FOV
++-p file      	pattern / transfer function
++-t file      	kspace trajectory
++-I file      	File for initialization
++-g		use gpu
++-S		Re-scale image after reconstruction
++-T temp_damp      	temporal damping [default: 0.9]
++-x x:y:z      	Explicitly specify image dimensions
++-h		help
++
++
++--sake--
++
++Usage: sake [-i d] [-s f] <kspace> <output>
++
++Use SAKE algorithm to recover a full k-space from undersampled
++data using low-rank matrix completion.
++
++-i iter      	tnumber of iterations
++-s size      	rel. size of the signal subspace
++-h		help
++
++
++--saxpy--
++
++Usage: saxpy scale <input1> <input2> <output>
++
++Multiply input1 with scale factor and add input2.
++
++-h		help
++
++
++--scale--
++
++Usage: scale factor <input> <output>
++
++Scale array by {factor}. The scale factor can be a complex number.
++
++-h		help
++
++
++--sdot--
++
++Usage: sdot <input1> <input2>
++
++Compute dot product along selected dimensions.
++
++-h		help
++
++
++--show--
++
++Usage: show [-m] [-d d] [-s <string>] [-f <string>] <input>
++
++Outputs values or meta data.
++
++-m		show meta data
++-d dim      	show size of dimension
++-s sep      	use <sep> as the separator
++-f format      	use <format> as the format. Default: "%%+.6e%%+.6ei"
++-h		help
++
++
++--signal--
++
++Usage: signal [-F ...] [-B ...] [-T ...] [-M ...] [-G ...] [--fat] [-I] [-s] [-0 ...] [-1 ...] [-2 ...] [-3 ...] [-r f] [-e f] [-f f] [-t f] [-n d] [-b d] <basis-functions>
++
++Analytical simulation tool.
++
++-F		FLASH
++-B		bSSFP
++-T		TSE
++-M		MOLLI
++-G		MGRE
++--fat		Simulate additional fat component.
++-I		inversion recovery
++-s		inversion recovery starting from steady state
++-0 min:max:N      	range of off-resonance frequency (Hz)
++-1 min:max:N      	range of T1s (s)
++-2 min:max:N      	range of T2s (s)
++-3 min:max:N      	range of Mss
++-r TR      	repetition time
++-e TE      	echo time
++-f FA      	flip ange
++-t T1 relax      	T1 relax period (second) for MOLLI
++-n n      	number of measurements
++-b heart beats      	number of heart beats for MOLLI
++-h		help
++
++
++--slice--
++
++Usage: slice dim1 pos1 ... dimn posn <input> <output>
++
++Extracts a slice from positions along dimensions.
++
++
++-h		help
++
++
++--spow--
++
++Usage: spow exponent <input> <output>
++
++Raise array to the power of {exponent}. The exponent can be a complex number.
++
++-h		help
++
++
++--sqpics--
++
++Usage: sqpics [-l ...] [-r f] [-R ...] [-s f] [-i d] [-t <string>] [-n] [-g] [-p <string>] [-b d] [-e] [-T <string>] [-W <string>] [-d d] [-u f] [-C d] [-f f] [-m ...] [-w f] [-S] <kspace> <sensitivities> <output>
++
++Parallel-imaging compressed-sensing reconstruction.
++
++-l1/-l2		toggle l1-wavelet or l2 regularization.
++-r lambda      	regularization parameter
++-R <T>:A:B:C	generalized regularization options (-Rh for help)
++-s step      	iteration stepsize
++-i iter      	max. number of iterations
++-t file      	k-space trajectory
++-n		disable random wavelet cycle spinning
++-g		use GPU
++-p file      	pattern or weights
++-b blk      	Lowrank block size
++-e		Scale stepsize based on max. eigenvalue
++-T file      	(truth file)
++-W <img>      	Warm start with <img>
++-d level      	Debug level
++-u rho      	ADMM rho
++-C iter      	ADMM max. CG iterations
++-f rfov      	restrict FOV
++-m		Select ADMM
++-w val      	scaling
++-S		Re-scale the image after reconstruction
++-h		help
++
++
++--squeeze--
++
++Usage: squeeze <input> <output>
++
++Remove singleton dimensions of array.
++
++-h		help
++
++
++--ssa--
++
++Usage: ssa [-w d] [-z] [-m d] [-n d] [-r d] [-g d] <src> <EOF> [<S>] [<backprojection>]
++
++Perform SSA-FARY or Singular Spectrum Analysis. <src>: [samples, coordinates]
++
++
++-w window      	Window length
++-z		Zeropadding [Default: True]
++-m 0/1      	Remove mean [Default: True]
++-n 0/1      	Normalize [Default: False]
++-r rank      	Rank for backprojection. r < 0: Throw away first r components. r > 0: Use only first r components.
++-g bitmask      	Bitmask for Grouping (long value!)
++-h		help
++
++
++--std--
++
++Usage: std bitmask <input> <output>
++
++Compute standard deviation along selected dimensions specified by the {bitmask}
++
++-h		help
++
++
++--svd--
++
++Usage: svd [-e] <input> <U> <S> <VH>
++
++Compute singular-value-decomposition (SVD).
++
++
++-e		econ
++-h		help
++
++
++--tgv--
++
++Usage: tgv <lambda> <flags> <input> <output>
++
++Perform total generalized variation denoising along dims <flags>.
++
++-h		help
++
++
++--threshold--
++
++Usage: threshold [-H ...] [-W ...] [-L ...] [-D ...] [-B ...] [-j d] [-b d] lambda <input> <output>
++
++Perform (soft) thresholding with parameter lambda.
++
++-H		hard thresholding
++-W		daubechies wavelet soft-thresholding
++-L		locally low rank soft-thresholding
++-D		divergence-free wavelet soft-thresholding
++-B		thresholding with binary output
++-j bitmask      	joint soft-thresholding
++-b blocksize      	locally low rank block size
++-h		help
++
++
++--toimg--
++
++Usage: toimg [-g f] [-c f] [-w f] [-d] [-m] [-W] [-h] <input> <output_prefix>
++
++Create magnitude images as png or proto-dicom.
++The first two non-singleton dimensions will
++be used for the image, and the other dimensions
++will be looped over.
++
++
++-g gamma      	gamma level
++-c contrast      	contrast level
++-w window      	window level
++-d		write to dicom format (deprecated, use extension .dcm)
++-m		re-scale each image
++-W		use dynamic windowing
++-h		help
++
++
++--traj--
++
++Usage: traj [-x d] [-y d] [-d d] [-e d] [-a d] [-t d] [-m d] [-l] [-g] [-r] [-G] [-H] [-s d] [-D] [-R f] [-q ...] [-Q ...] [-O] [-3] [-c] [-E] [-z ...] [-C <string>] [-V <string>] <output>
++
++Computes k-space trajectories.
++
++-x x      	readout samples
++-y y      	phase encoding lines
++-d d      	full readout samples
++-e e      	number of echoes
++-a a      	acceleration
++-t t      	turns
++-m mb      	SMS multiband factor
++-l		aligned partition angle
++-g		golden angle in partition direction
++-r		radial
++-G		golden-ratio sampling
++-H		halfCircle golden-ratio sampling
++-s # Tiny GA      	tiny golden angle
++-D		projection angle in [0,360°), else in [0,180°)
++-R phi      	rotate
++-q delays      	gradient delays: x, y, xy
++-Q delays      	(gradient delays: z, xz, yz)
++-O		correct transverse gradient error for radial tajectories
++-3		3D
++-c		asymmetric trajectory [DC sampled]
++-E		multi-echo multi-spoke trajectory
++-z Ref:Acel      	Undersampling in z-direction.
++-C file      	custom_angle file [phi + i * psi]
++-V file      	(custom_gdelays)
++-h		help
++
++
++--transpose--
++
++Usage: transpose dim1 dim2 <input> <output>
++
++Transpose dimensions {dim1} and {dim2}.
++
++-h		help
++
++
++--twixread--
++
++Usage: twixread [-x d] [-r d] [-y d] [-z d] [-s d] [-v d] [-c d] [-n d] [-a d] [-A] [-L] [-P] [-M] <dat file> <output>
++
++Read data from Siemens twix (.dat) files.
++
++-x X      	number of samples (read-out)
++-r R      	radial lines
++-y Y      	phase encoding steps
++-z Z      	partition encoding steps
++-s S      	number of slices
++-v V      	number of averages
++-c C      	number of channels
++-n N      	number of repetitions
++-a A      	total number of ADCs
++-A		automatic [guess dimensions]
++-L		use linectr offset
++-P		use partctr offset
++-M		MPI mode
++-h		help
++
++
++--upat--
++
++Usage: upat [-Y d] [-Z d] [-y d] [-z d] [-c d] output
++
++Create a sampling pattern.
++
++
++-Y Y      	size Y
++-Z Z      	size Z
++-y uy      	undersampling y
++-z uz      	undersampling z
++-c cen      	size of k-space center
++-h		help
++
++
++--var--
++
++Usage: var bitmask <input> <output>
++
++Compute variance along selected dimensions specified by the {bitmask}
++
++-h		help
++
++
++--vec--
++
++Usage: vec val1 val2 ... valN name
++
++Create a vector of values.
++
++-h		help
++
++
++--version--
++
++Usage: version [-t <string>] [-V] [-h]
++
++Print BART version. The version string is of the form
++TAG or TAG-COMMITS-SHA as produced by 'git describe'. It
++specifies the last release (TAG), and (if git is used)
++the number of commits (COMMITS) since this release and
++the abbreviated hash of the last commit (SHA). If there
++are local changes '-dirty' is added at the end.
++
++
++-t version      	Check minimum version
++-V		Output verbose info
++-h		help
++
++
++--walsh--
++
++Usage: walsh [-r ...] [-b ...] <input> <output>
++
++Estimate coil sensitivities using walsh method (use with ecaltwo).
++
++-r cal_size      	Limits the size of the calibration region.
++-b block_size      	Block size.
++-h		help
++
++
++--wave--
++
++Usage: wave [-r f] [-b d] [-i d] [-s f] [-c f] [-t f] [-e f] [-g] [-f] [-H] [-v] [-w] [-l] <maps> <wave> <kspace> <output>
++
++Perform a wave-caipi reconstruction.
++
++Conventions:
++  * (sx, sy, sz) - Spatial dimensions.
++  * wx           - Extended FOV in READ_DIM due to
++                   wave's voxel spreading.
++  * (nc, md)     - Number of channels and ESPIRiT's 
++                   extended-SENSE model operator
++                   dimensions (or # of maps).
++Expected dimensions:
++  * maps    - ( sx, sy, sz, nc, md)
++  * wave    - ( wx, sy, sz,  1,  1)
++  * kspace  - ( wx, sy, sz, nc,  1)
++  * output  - ( sx, sy, sz,  1, md)
++
++-r lambda      	Soft threshold lambda for wavelet or locally low rank.
++-b blkdim      	Block size for locally low rank.
++-i mxiter      	Maximum number of iterations.
++-s stepsz      	Step size for iterative method.
++-c cntnu      	Continuation value for IST/FISTA.
++-t toler      	Tolerance convergence condition for iterative method.
++-e eigvl      	Maximum eigenvalue of normal operator, if known.
++-g		use GPU
++-f		Reconstruct using FISTA instead of IST.
++-H		Use hogwild in IST/FISTA.
++-v		Split result to real and imaginary components.
++-w		Use wavelet.
++-l		Use locally low rank across the real and imaginary components.
++-h		help
++
++
++--wavelet--
++
++Usage: wavelet [-a] flags [dims] <input> <output>
++
++Perform wavelet transform.
++
++-a		adjoint (specify dims)
++-h		help
++
++
++--wavepsf--
++
++Usage: wavepsf [-c] [-x d] [-y d] [-r f] [-a d] [-t f] [-g f] [-s f] [-n d] <output>
++
++Generate a wave PSF in hybrid space.
++- Assumes the first dimension is the readout dimension.
++- Only generates a 2 dimensional PSF.
++- Use reshape and fmac to generate a 3D PSF.
++
++3D PSF Example:
++bart wavepsf		-x 768 -y 128 -r 0.1 -a 3000 -t 0.00001 -g 0.8 -s 17000 -n 6 wY
++bart wavepsf -c -x 768 -y 128 -r 0.1 -a 3000 -t 0.00001 -g 0.8 -s 17000 -n 6 wZ
++bart reshape 7 wZ 768 1 128 wZ wZ
++bart fmac wY wZ wYZ
++
++-c		Set to use a cosine gradient wave
++-x RO_dim      	Number of readout points
++-y PE_dim      	Number of phase encode points
++-r PE_res      	Resolution of phase encode in cm
++-a ADC_T      	Readout duration in microseconds.
++-t ADC_dt      	ADC sampling rate in seconds
++-g gMax      	Maximum gradient amplitude in Gauss/cm
++-s sMax      	Maximum gradient slew rate in Gauss/cm/second
++-n ncyc      	Number of cycles in the gradient wave
++-h		help
++
++
++--whiten--
++
++Usage: whiten [-o <string>] [-c <string>] [-n] <input> <ndata> <output> [<optmat_out>] [<covar_out>]
++
++Apply multi-channel noise pre-whitening on <input> using noise data <ndata>.
++Optionally output whitening matrix and noise covariance matrix
++
++-o <optmat_in>      	use external whitening matrix <optmat_in>
++-c <covar_in>      	use external noise covariance matrix <covar_in>
++-n		normalize variance to 1 using noise data <ndata>
++-h		help
++
++
++--window--
++
++Usage: window [-H] flags <input> <output>
++
++Apply Hamming (Hann) window to <input> along dimensions specified by flags
++
++-H		Hann window
++-h		help
++
++
++--wshfl--
++
++Usage: wshfl [-R ...] [-b d] [-i d] [-j d] [-s f] [-e f] [-F <string>] [-O <string>] [-t f] [-g] [-K] [-H] [-v] <maps> <wave> <phi> <reorder> <table> <output>
++
++Perform a wave-shuffling reconstruction.
++
++Conventions:
++  * (sx, sy, sz) - Spatial dimensions.
++  * wx           - Extended FOV in READ_DIM due to
++                   wave's voxel spreading.
++  * (nc, md)     - Number of channels and ESPIRiT's 
++                   extended-SENSE model operator
++                   dimensions (or # of maps).
++  * (tf, tk)     - Turbo-factor and the rank
++                   of the temporal basis used in
++                   shuffling.
++  * ntr          - Number of TRs, or the number of
++                   (ky, kz) points acquired of one
++                   echo image.
++  * n            - Total number of (ky, kz) points
++                   acquired. This is equal to the
++                   product of ntr and tf.
++
++Descriptions:
++  * reorder is an (n by 3) index matrix such that
++    [ky, kz, t] = reorder(i, :) represents the
++    (ky, kz) kspace position of the readout line
++    acquired at echo number (t), and 0 <= ky < sy,
++    0 <= kz < sz, 0 <= t < tf).
++  * table is a (wx by nc by n) matrix such that
++    table(:, :, k) represents the kth multichannel
++    kspace line.
++
++Expected dimensions:
++  * maps    - (   sx, sy, sz, nc, md,  1,  1)
++  * wave    - (   wx, sy, sz,  1,  1,  1,  1)
++  * phi     - (    1,  1,  1,  1,  1, tf, tk)
++  * output  - (   sx, sy, sz,  1, md,  1, tk)
++  * reorder - (    n,  3,  1,  1,  1,  1,  1)
++  * table   - (   wx, nc,  n,  1,  1,  1,  1)
++
++-R<T>:A:B:C	Generalized regularization options. (-Rh for help)
++-b blkdim      	Block size for locally low rank.
++-i mxiter      	Maximum number of iterations.
++-j cgiter      	Maximum number of CG iterations in ADMM.
++-s admrho      	ADMM Rho value.
++-e eigval      	Eigenvalue to scale step size. (Optional.)
++-F frwrd      	Go from shfl-coeffs to data-table. Pass in coeffs path.
++-O initl      	Initialize reconstruction with guess.
++-t toler      	Tolerance convergence condition for FISTA.
++-g		Use GPU.
++-K		Go from data-table to shuffling basis k-space.
++-H		Use hogwild.
++-v		Split coefficients to real and imaginary components.
++-h		help
++
++
++--zeros--
++
++Usage: zeros dims dim1 ... dimn name
++
++Create a zero-filled array with {dims} dimensions of size {dim1} to {dimn}.
++
++-h		help
++
++
++--zexp--
++
++Usage: zexp [-i] <input> <output>
++
++Point-wise complex exponential.
++
++
++-i		imaginary
++-h		help


=====================================
debian/patches/0007-backported-test-fixes.patch
=====================================
@@ -0,0 +1,85 @@
+From: Martin Uecker <uecker at tugraz.at>
+Date: Sat, 18 Dec 2021 19:45:51 +0100
+Subject: backported test fixes
+
+---
+ src/num/splines.c         | 2 +-
+ src/num/vec3.c            | 5 +++--
+ src/simu/biot_savart.c    | 3 +--
+ utests/test_biot_savart.c | 6 +++---
+ 4 files changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/src/num/splines.c b/src/num/splines.c
+index 289a055..f710937 100644
+--- a/src/num/splines.c
++++ b/src/num/splines.c
+@@ -316,7 +316,7 @@ void bspline_coeff_derivative_n(unsigned int k, unsigned int n, unsigned int p,
+ 		double v1[n - p - 1];
+ 
+ 		bspline_coeff_derivative(n, p, t1, v1, t, v);
+-		bspline_coeff_derivative_n(k - 1, n - 1, p - 1, t2, v2, t1, v1);
++		bspline_coeff_derivative_n(k - 1, n - 2, p - 1, t2, v2, t1, v1);
+ 	}
+ }
+ 
+diff --git a/src/num/vec3.c b/src/num/vec3.c
+index b75ebbe..72d872f 100644
+--- a/src/num/vec3.c
++++ b/src/num/vec3.c
+@@ -30,12 +30,13 @@ void vec3_add(vec3_t dst, const vec3_t src1, const vec3_t src2)
+ 
+ void vec3_copy(vec3_t dst, const vec3_t src)
+ {
+-	vec3_saxpy(dst, src, 0., src);
++	for (int i = 0; i < 3; i++)
++		dst[i] = src[i];
+ }
+ 
+ void vec3_clear(vec3_t dst)
+ {
+-	vec3_saxpy(dst, dst, -1., dst);
++	vec3_copy(dst, (vec3_t){ 0. });
+ }
+ 
+ float vec3_sdot(const vec3_t a, const vec3_t b)
+diff --git a/src/simu/biot_savart.c b/src/simu/biot_savart.c
+index 446ff84..2e7ee73 100644
+--- a/src/simu/biot_savart.c
++++ b/src/simu/biot_savart.c
+@@ -39,8 +39,7 @@ void biot_savart(vec3_t b, const vec3_t r, unsigned int N, const vec3_t curve[st
+ 
+ 		vec3_t x;
+ 		vec3_rot(x, l, d);
+-		vec3_smul(x, x, c / pow(n, 3.));	//saxpy
+-		vec3_add(b, b, x);
++		vec3_saxpy(b, b, c / pow(n, 3.), x);
+ 	}
+ }
+ 
+diff --git a/utests/test_biot_savart.c b/utests/test_biot_savart.c
+index 85aeb93..4017ecf 100644
+--- a/utests/test_biot_savart.c
++++ b/utests/test_biot_savart.c
+@@ -32,7 +32,7 @@ static bool test_vec3_ring(void)
+ 		ok &= (1.E-6 > fabs(0.33 - vec3_norm(r[i])));
+ 
+ 	for (unsigned int i = 0; i < N; i++)
+-		ok &= (0. == vec3_sdot(r[i], n));
++		ok &= (1.E-9 > fabsf(vec3_sdot(r[i], n)));
+ 
+ 	return ok;
+ }
+@@ -46,11 +46,11 @@ static bool test_biot_savart(void)
+ 	vec3_t n = { 1., 0., 0. };
+ 	vec3_ring(N, r, c, n, 0.5);
+ 	vec3_t x;
+-	biot_savart(x, c, N, (const vec3_t*)r);
++	biot_savart(x, c, N, r);
+ 
+ 	vec3_t d;
+ 	vec3_sub(d, x, n);
+-	return (1.E-3 > vec3_norm(d)); 
++	return (1.E-3 > vec3_norm(d));
+ }
+ 
+ 


=====================================
debian/patches/series
=====================================
@@ -3,3 +3,5 @@
 0003-deactivate-ode-unit-tests.patch
 0004-relax-failing-unit-test.patch
 0005-workaround-for-compiler-bug.patch
+0006-do-not-update-doc-commands.txt-automatically.patch
+0007-backported-test-fixes.patch


=====================================
debian/rules
=====================================
@@ -4,11 +4,13 @@ export DEB_BUILD_MAINT_OPTIONS = hardening=+all
 
 DEB_BUILD_ARCH ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH)
 
-
 # Activate CUDA.
 export CUDA=1
 export CUDA_BASE=/usr/
 
+# set AR flags for deterministic archive
+export ARFLAGS=rs
+
 # Some tests fail on the following architectures probably
 # due to minor differences in floating point processing.
 # For now, just turn it off...


=====================================
debian/tests/commands
=====================================
@@ -0,0 +1,8 @@
+#!/bin/sh
+set -e
+
+CMDS=`bart | tail -n +2`
+
+./rules/update_commands.sh /usr/bin/bart $AUTOPKGTEST_TMP/commands.txt $CMDS
+zcmp /usr/share/doc/bart/commands.txt.gz $AUTOPKGTEST_TMP/commands.txt
+


=====================================
debian/tests/control
=====================================
@@ -5,3 +5,17 @@ Restrictions: superficial
 Tests: octave-integration
 Depends: octave-bart, octave
 Restrictions: superficial
+
+Tests: commands
+Depends: bart
+Restrictions: superficial
+
+Tests: suite
+Depends: bart, make
+Architecture: amd64
+Restrictions: allow-stderr
+
+Tests: suite
+Depends: bart, make
+Architecture: i386, mips64el, s390x
+Restrictions: allow-stderr, flaky


=====================================
debian/tests/suite
=====================================
@@ -0,0 +1,32 @@
+#!/bin/sh
+set -e
+
+CMDS=`bart | tail -n +2`
+
+mkdir $AUTOPKGTEST_TMP/tests/
+mkdir $AUTOPKGTEST_TMP/tests/out/
+mkdir $AUTOPKGTEST_TMP/tests/tmp/
+
+cat <<EOF > $AUTOPKGTEST_TMP/Makefile
+
+TOOLDIR=$AUTOPKGTEST_TMP/
+TESTS_TMP=$AUTOPKGTEST_TMP/tests/tmp/\$\$\$\$/
+TESTS_OUT=$AUTOPKGTEST_TMP/tests/out/
+
+include tests/*.mk
+
+all: \${TESTS}
+
+EOF
+
+cp version.txt $AUTOPKGTEST_TMP/
+
+for CMD in $CMDS ; do
+
+	ln -s /usr/bin/bart $AUTOPKGTEST_TMP/$CMD
+	[ -e tests/$CMD.mk ] && cp tests/$CMD.mk $AUTOPKGTEST_TMP/tests/
+done
+
+cd $AUTOPKGTEST_TMP
+make all
+



View it on GitLab: https://salsa.debian.org/med-team/bart/-/compare/46bb1d4ddc8bdace1254b79a81daf397666c2183...c4910375a775754bb19eefa08317792a664c9a88

-- 
View it on GitLab: https://salsa.debian.org/med-team/bart/-/compare/46bb1d4ddc8bdace1254b79a81daf397666c2183...c4910375a775754bb19eefa08317792a664c9a88
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/20211230/97635962/attachment-0001.htm>


More information about the debian-med-commit mailing list