[med-svn] [Git][med-team/kmer][master] 7 commits: d/control: apply Multiarch hints.

Michael R. Crusoe (@crusoe) gitlab at salsa.debian.org
Tue Aug 12 09:01:06 BST 2025



Michael R. Crusoe pushed to branch master at Debian Med / kmer


Commits:
ec6279a5 by Michael R. Crusoe at 2025-08-12T08:58:32+02:00
d/control: apply Multiarch hints.

- - - - -
52b9f398 by Michael R. Crusoe at 2025-08-12T09:09:00+02:00
Cleanup patch metadata.

- - - - -
2d0b85ed by Michael R. Crusoe at 2025-08-12T09:21:19+02:00
d/tests: make the test scripts shellcheck-clean. Also fixes a lintian warning about a bash-ism.

- - - - -
e20527f5 by Michael R. Crusoe at 2025-08-12T09:22:39+02:00
Standards-Version: 4.7.2 (routine-update)

- - - - -
1eae2a7a by Michael R. Crusoe at 2025-08-12T09:30:27+02:00
d/patches/fix_wrong_evaluation_order.patch: mark as forwarded

- - - - -
8daec100 by Michael R. Crusoe at 2025-08-12T09:53:04+02:00
d/atac.lintian-overrides: silence a false positive

- - - - -
e4472af7 by Michael R. Crusoe at 2025-08-12T09:53:04+02:00
routine-update: Ready to upload to unstable

- - - - -


13 changed files:

- + debian/atac.lintian-overrides
- debian/changelog
- debian/control
- debian/patches/2to3.patch
- debian/patches/allow-freebsd-build.patch
- debian/patches/atac-helper-script-paths.patch
- debian/patches/atac-readme.patch
- debian/patches/drop_distutils
- debian/patches/fix_wrong_evaluation_order.patch
- debian/patches/linux-cflags.patch
- debian/patches/spelling.patch
- debian/tests/atac-unit-test
- debian/tests/sim4db-unit-test


Changes:

=====================================
debian/atac.lintian-overrides
=====================================
@@ -0,0 +1,2 @@
+# false positive; gnuplot is both a virtual package and metapackage that defaults to gnuplot-qt
+atac: virtual-package-depends-without-real-package-depends Depends: gnuplot


=====================================
debian/changelog
=====================================
@@ -1,3 +1,16 @@
+kmer (0~20150903+r2013-10) unstable; urgency=medium
+
+  * Team upload.
+  * d/control: apply Multiarch hints.
+  * Cleanup patch metadata.
+  * d/tests: make the test scripts shellcheck-clean. Also fixes a
+    lintian warning about a bash-ism.
+  * Standards-Version: 4.7.2 (routine-update)
+  * d/patches/fix_wrong_evaluation_order.patch: mark as forwarded
+  * d/atac.lintian-overrides: silence a false positive
+
+ -- Michael R. Crusoe <crusoe at debian.org>  Tue, 12 Aug 2025 09:42:29 +0200
+
 kmer (0~20150903+r2013-9) unstable; urgency=medium
 
   * Team upload.


=====================================
debian/control
=====================================
@@ -9,7 +9,7 @@ Build-Depends: debhelper-compat (= 13),
                dh-sequence-python3,
                python3-dev,
                dh-python | dh-sequence-python3
-Standards-Version: 4.6.2
+Standards-Version: 4.7.2
 Vcs-Browser: https://salsa.debian.org/med-team/kmer
 Vcs-Git: https://salsa.debian.org/med-team/kmer.git
 Homepage: http://kmer.sourceforge.net
@@ -64,6 +64,7 @@ Description: in- and out-of-core kmer counting and utilities
 
 Package: libmeryl-dev
 Architecture: any
+Multi-Arch: same
 Section: libdevel
 Depends: ${shlibs:Depends},
          ${misc:Depends}
@@ -147,6 +148,7 @@ Description: genome assembly-to-assembly comparison
 
 Package: kmer-examples
 Architecture: all
+Multi-Arch: foreign
 Depends: ${misc:Depends}
 Enhances: sim4db,
           atac


=====================================
debian/patches/2to3.patch
=====================================
@@ -1,11 +1,35 @@
-Description: Use 2to3 to port from Python2 to Python3
+From: Andreas Tille <tille at debian.org>
+Date: Thu, 19 Dec 2019 10:45:52 +0100
+Subject: Use 2to3 to port from Python2 to Python3
+
 Bug-Debian: https://bugs.debian.org/936802
-Author: Andreas Tille <tille at debian.org>
-Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
+Last-Update: 2020-05-16
+---
+ Makefile.wiki                                      |   4 +-
+ atac-driver/atac.pl                                |   2 +-
+ atac-driver/chainer/halign/halignmodule.C          |  13 +-
+ .../localalign/localAlignerInterfacemodule.C       |  13 +-
+ atac-driver/chainer/python/AtacDriver.py           | 203 ++++++++++-----------
+ atac-driver/chainer/python/AtacFile.py             |  18 +-
+ atac-driver/chainer/python/IdxStore.py             |  16 +-
+ atac-driver/chainer/python/MatchRecord.py          |   8 +-
+ atac-driver/chainer/python/MyFile.py               |  78 ++++----
+ atac-driver/chainer/python/PerfectRuns.py          |  42 ++---
+ atac-driver/chainer/python/TrimMatchOverlaps.py    |  62 +++----
+ atac-driver/chainer/python/UniqueFilter.py         |  44 ++---
+ atac-driver/chainer/python/dedashMatches.py        |  12 +-
+ atac-driver/chainer/python/fillIntraRunGaps.py     | 118 ++++++------
+ atac-driver/chainer/python/mkstats.py              |  12 +-
+ atac-driver/chainer/python/squeezeIntraRunGaps.py  |  58 +++---
+ atac-driver/config.py                              |   4 +-
+ configure.sh                                       |   6 +-
+ 18 files changed, 369 insertions(+), 344 deletions(-)
 
+diff --git a/Makefile.wiki b/Makefile.wiki
+index c8bab56..3f33a92 100644
 --- a/Makefile.wiki
 +++ b/Makefile.wiki
-@@ -1370,9 +1370,9 @@
+@@ -1370,9 +1370,9 @@ there the <tt>_OS|FULL_</tt> is useful, since different platforms
  install LAPACK in all sorts of ways.
  
  <pre>
@@ -17,6 +41,68 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
  ifeq (${_OS_}${_CC_},TRU64)
    CFLAGS_PY :=-I/usr/local/ir/Python-2.2.2 -I/usr/local/ir/Python-2.2.2/Include
    PYTHON    :=/usr/local/ir/bin/python
+diff --git a/atac-driver/atac.pl b/atac-driver/atac.pl
+index 4acc7a4..3d6c237 100755
+--- a/atac-driver/atac.pl
++++ b/atac-driver/atac.pl
+@@ -732,7 +732,7 @@ sub makeChains {
+     #
+     $ENV{'PYTHONPATH'} = "$LIBdir";
+ 
+-    if (runCommand("python $chainer $ATACdir/work/$matches.matches.extended")) {
++    if (runCommand("python3 $chainer $ATACdir/work/$matches.matches.extended")) {
+         print STDERR "PYTHONPATH=$ENV{'PYTHONPATH'}\n";
+         die "Chainer failed.\n";
+     }
+diff --git a/atac-driver/chainer/halign/halignmodule.C b/atac-driver/chainer/halign/halignmodule.C
+index 2015647..30300e4 100644
+--- a/atac-driver/chainer/halign/halignmodule.C
++++ b/atac-driver/chainer/halign/halignmodule.C
+@@ -54,7 +54,16 @@ registration_table[] = {
+   {NULL, NULL, 0, NULL}
+ };
+ 
++static struct PyModuleDef cModMethods =
++{
++    PyModuleDef_HEAD_INIT,
++    "halign",    /* name of module */
++    "",          /* module documentation, may be NULL */
++    -1,          /* size of per-interpreter state of the module, or -1 if the module keeps state in global variables. */
++    registration_table
++};
++
+ extern "C" 
+-void inithalign(void) {
+-  Py_InitModule("halign", registration_table);
++void PyInit_halign(void) {
++  PyModule_Create(&cModMethods);
+ }
+diff --git a/atac-driver/chainer/localalign/localAlignerInterfacemodule.C b/atac-driver/chainer/localalign/localAlignerInterfacemodule.C
+index ffdde01..840865f 100644
+--- a/atac-driver/chainer/localalign/localAlignerInterfacemodule.C
++++ b/atac-driver/chainer/localalign/localAlignerInterfacemodule.C
+@@ -227,8 +227,17 @@ registration_table[] = {
+ };
+ 
+ 
++static struct PyModuleDef cModMethods =
++{
++    PyModuleDef_HEAD_INIT,
++    "localAlignerInterface",  /* name of module */
++    "",          /* module documentation, may be NULL */
++    -1,          /* size of per-interpreter state of the module, or -1 if the module keeps state in global variables. */
++    registration_table
++};
++
+ extern "C"
+-void initlocalAlignerInterface() {
+-  Py_InitModule("localAlignerInterface", registration_table);
++void PyInit_localAlignerInterface() {
++  PyModule_Create(&cModMethods);
+ }
+ 
+diff --git a/atac-driver/chainer/python/AtacDriver.py b/atac-driver/chainer/python/AtacDriver.py
+index 5a7bc14..a104d75 100755
 --- a/atac-driver/chainer/python/AtacDriver.py
 +++ b/atac-driver/chainer/python/AtacDriver.py
 @@ -1,4 +1,4 @@
@@ -25,7 +111,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
  
  """
  The environmental variable "PYTHONPATH" is a colon separated list
-@@ -28,12 +28,9 @@
+@@ -28,12 +28,9 @@ import fillIntraRunGaps
  
  #import dedashMatches
  
@@ -40,7 +126,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
  
  def cvm(f,x,y):
      # A cvm variant (flag ? y : x) = (x,y)[f]
-@@ -58,7 +55,7 @@
+@@ -58,7 +55,7 @@ class GlobalParam:
      
  
  def usage (*_):
@@ -49,7 +135,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
  # end def
  
  def filterByMatchLength( inpfile, outfile, minimum_length):
-@@ -69,7 +66,7 @@
+@@ -69,7 +66,7 @@ def filterByMatchLength( inpfile, outfile, minimum_length):
              FM = MatchRecord.MatchRecord(line)
              if (FM.x_length >= minimum_length and
                  FM.y_length >= minimum_length ):
@@ -58,7 +144,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
              # end if
          # end if
      # end for
-@@ -90,7 +87,7 @@
+@@ -90,7 +87,7 @@ def onlyKeepLongRuns ( inpfile, outname, lengthThreshold ):
              SL = FM.x_length
              if FL != None and FL.runid != FM.runid :
                  for x in store:
@@ -67,7 +153,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
                  # end for
                  store = []
                  lenInMatches = SL
-@@ -102,10 +99,10 @@
+@@ -102,10 +99,10 @@ def onlyKeepLongRuns ( inpfile, outname, lengthThreshold ):
                  store.append(FM)
              else:
                  for x in store:
@@ -80,7 +166,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
              # end if
              FL = FM
          # end if
-@@ -142,10 +139,10 @@
+@@ -142,10 +139,10 @@ def coalesceMatches ( inpfile, outfile, needs_to_share_diagonal ):
              assert(py >= 0)
              assert(ny >= 0)
              if (not (not needs_to_share_diagonal or nx == ny)):
@@ -95,7 +181,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
              # end if
              assert((hghHitPX == None or (not needs_to_share_diagonal) or nx == ny))
              forward = (curF.x_orientation == curF.y_orientation)
-@@ -182,7 +179,7 @@
+@@ -182,7 +179,7 @@ def coalesceMatches ( inpfile, outfile, needs_to_share_diagonal ):
                      firstF.y_start = lowHitPY
                      firstF.x_length = hghHitPX - lowHitPX
                      firstF.y_length = hghHitPY - lowHitPY
@@ -104,7 +190,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
                  # end if
                  firstF = curF
                  lowHitPX = lowMerPX
-@@ -209,7 +206,7 @@
+@@ -209,7 +206,7 @@ def coalesceMatches ( inpfile, outfile, needs_to_share_diagonal ):
          firstF.y_start = lowHitPY
          firstF.x_length = hghHitPX - lowHitPX
          firstF.y_length = hghHitPY - lowHitPY
@@ -113,7 +199,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
  
      return
  # end def
-@@ -243,12 +240,12 @@
+@@ -243,12 +240,12 @@ def boxRecovery( inpfile, rawfile, outname):
                      if( rawline[0] == 'M'):
                          rawMatch = MatchRecord.MatchRecord(rawline)
                          if(rawMatch.sameAs(rightMatch)):
@@ -128,7 +214,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
                              # end if
                          # end if
                      # end if
-@@ -260,7 +257,7 @@
+@@ -260,7 +257,7 @@ def boxRecovery( inpfile, rawfile, outname):
                      if( rawline[0] == 'M'):
                          rawMatch = MatchRecord.MatchRecord(rawline)
                          if(rawMatch.sameAs(rightMatch)):
@@ -137,7 +223,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
                              break
                          else: 
                              # print >>STDERR, "Discard rawMatch=", rawMatch
-@@ -281,7 +278,7 @@
+@@ -281,7 +278,7 @@ def boxRecovery( inpfile, rawfile, outname):
  class AtacDriver(AtacFile.AtacFile):
      def runOld(self):
          self.globals['atacAlgorithmVersion'] = str(17)
@@ -146,7 +232,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
  
          # The ATAC globals used by this script:
          opt_t = int(self.globals['globalMatchMinSize'])
-@@ -295,7 +292,7 @@
+@@ -295,7 +292,7 @@ class AtacDriver(AtacFile.AtacFile):
          assemblyFile2 = self.globals['assemblyFile2']
  
          boxRecoveryOn = 0  # Deprecated for same species comparisons 2003/09/09.
@@ -155,7 +241,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
              boxRecoveryOn = int(self.globals['boxRecoveryOn'])
              
          t0 = time.time()
-@@ -309,24 +306,24 @@
+@@ -309,24 +306,24 @@ class AtacDriver(AtacFile.AtacFile):
          redo = 0
          keep = 0
          step = 0
@@ -189,7 +275,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
                  outfile = MyFile.myfile()
                  UniqueFilter.main( self.matches, outfile)
                  self.matches = outfile
-@@ -334,11 +331,11 @@
+@@ -334,11 +331,11 @@ class AtacDriver(AtacFile.AtacFile):
                  self.checkpoint(outprefix)
  
          step += 1
@@ -205,7 +291,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
              outfile = MyFile.myfile()
              filterByMatchLength( self.matches, outfile, opt_t)
              self.matches = outfile
-@@ -346,15 +343,15 @@
+@@ -346,15 +343,15 @@ class AtacDriver(AtacFile.AtacFile):
              self.checkpoint(outprefix)
  
          step += 1
@@ -226,7 +312,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
              outprefix += '.trim'
              self.checkpoint(outprefix)
  
-@@ -363,11 +360,11 @@
+@@ -363,11 +360,11 @@ class AtacDriver(AtacFile.AtacFile):
              rawfile = self.matches
  
          step += 1
@@ -242,7 +328,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
              tempdata = PerfectRuns.formPerfectRuns(self.matches,
                                                     MatchRecord.sortInXorderAP,
                                                     MatchRecord.sortInYorderAP,
-@@ -378,22 +375,22 @@
+@@ -378,22 +375,22 @@ class AtacDriver(AtacFile.AtacFile):
          # end if
  
          step += 1
@@ -273,7 +359,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
              tempdata = PerfectRuns.formPerfectRuns(self.matches,
                                         MatchRecord.sortInYorderAP,
                                         MatchRecord.sortInXorderAP, maxdiff, 'r')
-@@ -405,16 +402,16 @@
+@@ -405,16 +402,16 @@ class AtacDriver(AtacFile.AtacFile):
  
              # This is a box recovery step.
              step += 1
@@ -296,7 +382,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
                  tempdata = boxRecovery( self.matches, rawfile, outprefix)
                  self.matches = tempdata
                  outprefix += '.br'
-@@ -422,12 +419,12 @@
+@@ -422,12 +419,12 @@ class AtacDriver(AtacFile.AtacFile):
              # end if
  
              step += 1
@@ -314,7 +400,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
                  tempdata = PerfectRuns.formPerfectRuns(self.matches,
                                         MatchRecord.sortInXorderAP,
                                         MatchRecord.sortInYorderAP, maxdiff, 'r')
-@@ -436,11 +433,11 @@
+@@ -436,11 +433,11 @@ class AtacDriver(AtacFile.AtacFile):
                  self.checkpoint(outprefix)
  
          step += 1
@@ -330,7 +416,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
              tempdata = MyFile.myfile()
              squeezeIntraRunGaps.mainLoop(
                  self.matches,
-@@ -454,39 +451,39 @@
+@@ -454,39 +451,39 @@ class AtacDriver(AtacFile.AtacFile):
              self.checkpoint(outprefix)
  
          step += 1
@@ -385,7 +471,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
                      self.globals['fillIntraRunGapsMaxGap'] = 100000
                  fillIntraRunGapsErate = float(self.globals['fillIntraRunGapsErate'])
                  fillIntraRunGapsMaxGap = int(self.globals['fillIntraRunGapsMaxGap'])
-@@ -499,11 +496,11 @@
+@@ -499,11 +496,11 @@ class AtacDriver(AtacFile.AtacFile):
                  self.checkpoint(outprefix)
  
              step += 1
@@ -401,7 +487,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
                  tempdata = MyFile.myfile()
                  TrimMatchOverlaps.trimMatchOverlapsInBoth(self.matches,tempdata,'u')
                  self.matches = tempdata
-@@ -522,7 +519,7 @@
+@@ -522,7 +519,7 @@ class localExecutable :
          self.name = name
      def run(self,argline,inpfile,outfile):
          cmd = "%s %s %s %s" % (self.name,argline,inpfile,outfile)
@@ -410,7 +496,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
          iret = os.system(cmd)
          assert(iret == 0)
  
-@@ -533,14 +530,14 @@
+@@ -533,14 +530,14 @@ def main(runName):
      obj = AtacDriver(runName)
  
      t1 = time.time()
@@ -430,7 +516,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
  
      assemblyId1 = obj.globals['assemblyId1']
      assemblyId2 = obj.globals['assemblyId2']
-@@ -560,33 +557,33 @@
+@@ -560,33 +557,33 @@ def main(runName):
      assert(os.path.exists(assemblyFile1+".idxStore"))
      assert(os.path.exists(assemblyFile2+".idxStore"))
  
@@ -474,7 +560,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
  
      obj.checkpoint(runName + ".chained.atac")
  
-@@ -594,7 +591,7 @@
+@@ -594,7 +591,7 @@ def main(runName):
  
  if __name__ == '__main__':
      if (len(sys.argv) == 1):
@@ -483,6 +569,8 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
          sys.exit(1)
      if (sys.argv[1] == "justtestingifitworks"):
          sys.exit(0)
+diff --git a/atac-driver/chainer/python/AtacFile.py b/atac-driver/chainer/python/AtacFile.py
+index 583bd07..723545b 100755
 --- a/atac-driver/chainer/python/AtacFile.py
 +++ b/atac-driver/chainer/python/AtacFile.py
 @@ -1,4 +1,4 @@
@@ -491,7 +579,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
  # Looking in /usr/local/ir/bin on the Compaqs for the correct Python interpreter.
  # export PYTHONPATH=${PYTHONPATH}:$WORK/cds/IR/COMPASS/src/AtacPipeline
  
-@@ -58,15 +58,15 @@
+@@ -58,15 +58,15 @@ class AtacFile:
          elif(linetype == 'M'):
              fields = line.split()
              if(fields[1] == 'r'):
@@ -511,7 +599,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
              assert(0)
          # end if
      # end def
-@@ -75,19 +75,19 @@
+@@ -75,19 +75,19 @@ class AtacFile:
          self.globals["modificationDate"] = time.asctime()
          fp = open(filename,"w")
          for line in self.metacommands:
@@ -535,9 +623,11 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
          self.matches.seek(0)
          self.runs.seek(0)
          for line in self.runs:
+diff --git a/atac-driver/chainer/python/IdxStore.py b/atac-driver/chainer/python/IdxStore.py
+index 8c5b251..aa34e21 100644
 --- a/atac-driver/chainer/python/IdxStore.py
 +++ b/atac-driver/chainer/python/IdxStore.py
-@@ -12,7 +12,7 @@
+@@ -12,7 +12,7 @@ def createIndexedFasta( prefix, nickname):
    # This is a class method (as opposed to an object method).
    # This method creates an indexed FASTA file on disk.
  
@@ -546,7 +636,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
  
    the_uid = None
    defline = None
-@@ -20,8 +20,8 @@
+@@ -20,8 +20,8 @@ def createIndexedFasta( prefix, nickname):
    linenumber = 0
    cur_offset = 0
  
@@ -557,7 +647,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
    for line in FASTA:
      linenumber += 1
      line = line.strip()
-@@ -45,7 +45,7 @@
+@@ -45,7 +45,7 @@ def createIndexedFasta( prefix, nickname):
          cur_offset += seq_length + 1;
          # remember the UNIX newline inserted by print.
  
@@ -566,7 +656,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
        # end if
  
        # Now process the new data.
-@@ -73,7 +73,7 @@
+@@ -73,7 +73,7 @@ def createIndexedFasta( prefix, nickname):
      cur_offset += seq_length + 1;
      # remember the UNIX newline inserted by print.
  
@@ -575,7 +665,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
    # end if
  
    FASTA.close()
-@@ -107,7 +107,7 @@
+@@ -107,7 +107,7 @@ class IdxStore:
      self.iid2seq_offset = []
  
      filename = prefix + ".idxStore"
@@ -584,7 +674,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
  
      the_iid=0;
      while 1:
-@@ -129,7 +129,7 @@
+@@ -129,7 +129,7 @@ class IdxStore:
        the_iid += 1;
  
      filename = prefix
@@ -593,7 +683,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
      return
    
  
-@@ -196,7 +196,7 @@
+@@ -196,7 +196,7 @@ def convertIndexToUID (  x_prefix, y_prefix, inpfile, outname, assemblyId1, asse
              FM = MatchRecord.MatchRecord(line)
              FM.x_scaf_uid = the_x_uid[FM.x_scaf_uid]
              FM.y_scaf_uid = the_y_uid[FM.y_scaf_uid]
@@ -602,6 +692,8 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
          # end if
      # end for
      outfile.finished()
+diff --git a/atac-driver/chainer/python/MatchRecord.py b/atac-driver/chainer/python/MatchRecord.py
+index 0182323..cb3de54 100644
 --- a/atac-driver/chainer/python/MatchRecord.py
 +++ b/atac-driver/chainer/python/MatchRecord.py
 @@ -1,4 +1,4 @@
@@ -610,7 +702,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
  
  import sys, os, copy, string, tempfile
  
-@@ -153,7 +153,7 @@
+@@ -153,7 +153,7 @@ def convertBrianRecordFormat( inpfile, outfile, assemblyId1, assemblyId2):
      for line in inpfile:
          lineCount += 1
          if(lineCount % 100000 == 0):
@@ -619,7 +711,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
          FB = line.split()
          orientation = (FB[0][1:]=='f')
          FM = MatchRecord("M x . . . 0 0 0 . 0 0 0 0\n")
-@@ -169,9 +169,9 @@
+@@ -169,9 +169,9 @@ def convertBrianRecordFormat( inpfile, outfile, assemblyId1, assemblyId2):
          FM.identifier    = ""
          FM.extend        = {}
          #FM.mismatches   = 0
@@ -631,6 +723,8 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
      outfile.seek(0)
      return
  # end def
+diff --git a/atac-driver/chainer/python/MyFile.py b/atac-driver/chainer/python/MyFile.py
+index 680a83a..22321d4 100755
 --- a/atac-driver/chainer/python/MyFile.py
 +++ b/atac-driver/chainer/python/MyFile.py
 @@ -1,22 +1,32 @@
@@ -677,7 +771,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
  
  class ListLikeFileIter:
      # See http://www.python.org/peps/pep-0234.html
-@@ -27,8 +37,8 @@
+@@ -27,8 +37,8 @@ class ListLikeFileIter:
          self._fileIter = iter(self._fileptr.readline,"")
      def __del__(self):
          self._fileptr.close()
@@ -688,7 +782,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
          if line:
              return line
          else:
-@@ -37,7 +47,7 @@
+@@ -37,7 +47,7 @@ class ListLikeFileIter:
      def __getitem__(self,ii):
          # For files, the list location ii is ignored.
          # line = self._fileptr.readline()
@@ -697,7 +791,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
          if line:
              return line
          else:
-@@ -50,14 +60,14 @@
+@@ -50,14 +60,14 @@ class ListLikeFile:
      def __init__(self):
          #self._filename = tempfile.mktemp()
          #self._fileptr = open(self._filename,"w")
@@ -714,7 +808,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
          #return iter(self._fileptr)
          #return ListLikeFileIter(self._filename)
          return iter(self._list)
-@@ -69,34 +79,34 @@
+@@ -69,34 +79,34 @@ class ListLikeFile:
  
  def tester():
      x = ListLikeFile()
@@ -767,6 +861,8 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
  
      x = None
  
+diff --git a/atac-driver/chainer/python/PerfectRuns.py b/atac-driver/chainer/python/PerfectRuns.py
+index dfbf416..7eddef8 100755
 --- a/atac-driver/chainer/python/PerfectRuns.py
 +++ b/atac-driver/chainer/python/PerfectRuns.py
 @@ -1,4 +1,4 @@
@@ -775,7 +871,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
  # Looking in /usr/local/ir/bin on the Compaqs for the correct Python interpreter.
  # export PYTHONPATH=${PYTHONPATH}:$WORK/cds/IR/COMPASS/src/AtacPipeline
  
-@@ -32,7 +32,7 @@
+@@ -32,7 +32,7 @@ def createSignedEnumeration(inpfile):
              srank = cvm(forwardX == forwardY, p, -p)
              p += 1
              FM.extend['srank'] = srank
@@ -784,7 +880,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
          # end if
      # end while
      return outfile
-@@ -91,20 +91,20 @@
+@@ -91,20 +91,20 @@ def findPerfectRuns ( inpfile, maxJump, runIdPrefix ):
                          sorted_by_y = (y_ls <= y_rs)
  
                          if(not(sorted_by_x or sorted_by_y)):
@@ -814,7 +910,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
                  # endif
                  if(
                      (left.x_scaf_uid != right.x_scaf_uid) or  # check first axis id
-@@ -117,7 +117,7 @@
+@@ -117,7 +117,7 @@ def findPerfectRuns ( inpfile, maxJump, runIdPrefix ):
              # end if
              lastpr = pr
              right.runid = "%s%d" % (runIdPrefix,runid,)   # Assign the run id in the same slot as the signed rank.
@@ -823,7 +919,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
              left = right
          # end if
      # end for
-@@ -127,22 +127,22 @@
+@@ -127,22 +127,22 @@ def findPerfectRuns ( inpfile, maxJump, runIdPrefix ):
  def formPerfectRuns ( inpfile, firstSort, secondSort, maxJump, runIdPrefix ):
      inpfile.seek(0)
      step = 0
@@ -850,7 +946,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
      step += 1
      outfile = findPerfectRuns( tmpfile, maxJump, runIdPrefix)
      
-@@ -161,8 +161,8 @@
+@@ -161,8 +161,8 @@ def runsAsMatches(inpfile):
              curF = MatchRecord.MatchRecord(line)
              if ((lastF == None) or (curF.runid != lastF.runid)):
                  if ((lastF != None) and (firstF.x_scaf_uid != lastF.x_scaf_uid)):
@@ -861,7 +957,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
                  # end if
                  assert((lastF==None) or (firstF.x_scaf_uid == lastF.x_scaf_uid))
                  assert((lastF==None) or (firstF.y_scaf_uid == lastF.y_scaf_uid))
-@@ -187,7 +187,7 @@
+@@ -187,7 +187,7 @@ def runsAsMatches(inpfile):
                      lastF.x_length = endX - startX
                      lastF.y_length = endY - startY
                      lastF.runFill = runFill
@@ -870,7 +966,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
                  # end if
                  firstF = curF
                  runFill = 0
-@@ -218,14 +218,14 @@
+@@ -218,14 +218,14 @@ def runsAsMatches(inpfile):
          lastF.x_length = endX - startX
          lastF.y_length = endY - startY
          lastF.runFill = runFill
@@ -887,6 +983,8 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
  
      inpfile = open(inpname)
      tempdata1 = formPerfectRuns(inpfile,
+diff --git a/atac-driver/chainer/python/TrimMatchOverlaps.py b/atac-driver/chainer/python/TrimMatchOverlaps.py
+index b90bb9f..6f9dfda 100644
 --- a/atac-driver/chainer/python/TrimMatchOverlaps.py
 +++ b/atac-driver/chainer/python/TrimMatchOverlaps.py
 @@ -1,4 +1,4 @@
@@ -895,7 +993,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
  
  import sys
  import MyFile
-@@ -41,10 +41,10 @@
+@@ -41,10 +41,10 @@ def coalesceMatches ( inpfile, outfile, needs_to_share_diagonal ):
              assert(py >= 0)
              assert(ny >= 0)
              if (not (not needs_to_share_diagonal or nx == ny)):
@@ -910,7 +1008,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
              # end if
              assert((hghHitPX == None or (not needs_to_share_diagonal) or nx == ny))
              forward = (curF.x_orientation == curF.y_orientation)
-@@ -81,7 +81,7 @@
+@@ -81,7 +81,7 @@ def coalesceMatches ( inpfile, outfile, needs_to_share_diagonal ):
                      firstF.y_start = lowHitPY
                      firstF.x_length = hghHitPX - lowHitPX
                      firstF.y_length = hghHitPY - lowHitPY
@@ -919,7 +1017,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
                  # end if
                  firstF = curF
                  lowHitPX = lowMerPX
-@@ -108,7 +108,7 @@
+@@ -108,7 +108,7 @@ def coalesceMatches ( inpfile, outfile, needs_to_share_diagonal ):
          firstF.y_start = lowHitPY
          firstF.x_length = hghHitPX - lowHitPX
          firstF.y_length = hghHitPY - lowHitPY
@@ -928,7 +1026,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
  
      return
  # end def
-@@ -132,7 +132,7 @@
+@@ -132,7 +132,7 @@ def trimMatchOverlapsInX(inpfile,outfile, trim_subtype):
          if(line[0] == 'M'):
              right = MatchRecord.MatchRecord(line)
              if( right.subtype != trim_subtype):
@@ -937,7 +1035,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
                  continue
              if( left == None or
                  #left.x_scaf_uid < right.x_scaf_uid):
-@@ -142,15 +142,15 @@
+@@ -142,15 +142,15 @@ def trimMatchOverlapsInX(inpfile,outfile, trim_subtype):
                  assert(left != None)
                  assert(right != None)
                  if(left.x_scaf_uid > right.x_scaf_uid):
@@ -959,7 +1057,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
                      #assert(0)
  
                  thisbgn = right.x_start
-@@ -177,16 +177,16 @@
+@@ -177,16 +177,16 @@ def trimMatchOverlapsInX(inpfile,outfile, trim_subtype):
                      contained += 1
                      right = None # remove this match
              if(right != None):
@@ -981,7 +1079,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
      return
  
  def trimMatchOverlapsInY(inpfile,outfile, trim_subtype):
-@@ -208,7 +208,7 @@
+@@ -208,7 +208,7 @@ def trimMatchOverlapsInY(inpfile,outfile, trim_subtype):
          if(line[0] == 'M'):
              right = MatchRecord.MatchRecord(line)
              if( right.subtype != trim_subtype):
@@ -990,7 +1088,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
                  continue
              if( left == None or
                  #left.y_scaf_uid < right.y_scaf_uid):
-@@ -218,15 +218,15 @@
+@@ -218,15 +218,15 @@ def trimMatchOverlapsInY(inpfile,outfile, trim_subtype):
                  assert(left != None)
                  assert(right != None)
                  if(left.y_scaf_uid > right.y_scaf_uid):
@@ -1012,7 +1110,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
                      #assert(0)
  
                  thisbgn = right.y_start
-@@ -253,16 +253,16 @@
+@@ -253,16 +253,16 @@ def trimMatchOverlapsInY(inpfile,outfile, trim_subtype):
                      contained += 1
                      right = None # remove this match
              if(right != None):
@@ -1034,6 +1132,8 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
      return
  
  
+diff --git a/atac-driver/chainer/python/UniqueFilter.py b/atac-driver/chainer/python/UniqueFilter.py
+index c35ce58..27d1c0e 100755
 --- a/atac-driver/chainer/python/UniqueFilter.py
 +++ b/atac-driver/chainer/python/UniqueFilter.py
 @@ -1,4 +1,4 @@
@@ -1042,7 +1142,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
  
  import os, sys, time, tempfile
  import MyFile
-@@ -19,7 +19,7 @@
+@@ -19,7 +19,7 @@ def xorIntervals( inpname, outname):
          rghtSide = min(newstart,rghtPicket)
          if rghtSide > leftPicket:
              # interval has positive length
@@ -1051,7 +1151,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
          leftPicket = max(newstart,  min(rightPicket,newend))
          rghtPicket = max(leftPicket,max(rightPicket,newend))
  
-@@ -35,10 +35,10 @@
+@@ -35,10 +35,10 @@ def findUniformCoverageIntervals(inpfile,outfile):
          if(recordtype == "E"):
              newposition = int(newposition)
              newchange = int(newchange)
@@ -1064,7 +1164,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
              cov += newchange;
              assert(cov >= 0)
              oldaxis = newaxis; oldposition = newposition;
-@@ -65,18 +65,18 @@
+@@ -65,18 +65,18 @@ def findCoverageIntervals( inpfile, outfile, processFirstAxis):
                      axis = fields[8]
                      bgn = int(fields[9])
                      end = bgn+int(fields[10])
@@ -1088,7 +1188,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
      tmpfile4.close()
      os.system("rm -f " + tmpname)
      outfile.seek(0)
-@@ -111,7 +111,7 @@
+@@ -111,7 +111,7 @@ def applyOneKeepMask( inpfile, outfile, keepMaskFile, processFirstAxis):
      try:   # StopIteration exception from either iterator gets us out
          while 1:
              if(iline == None):
@@ -1097,7 +1197,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
                  (subtype, qa, qs, ql, cov, ) = iline.split()
                  assert(subtype=='C')
                  cov= int(cov)
-@@ -123,10 +123,10 @@
+@@ -123,10 +123,10 @@ def applyOneKeepMask( inpfile, outfile, keepMaskFile, processFirstAxis):
                  qe = qs + ql
  
              if(mline == None):
@@ -1110,7 +1210,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
                      mline = None
                      continue
                  FM = MatchRecord.MatchRecord(mline)
-@@ -177,8 +177,8 @@
+@@ -177,8 +177,8 @@ def applyOneKeepMask( inpfile, outfile, keepMaskFile, processFirstAxis):
                  FT.x_length = trimmedLength
                  FT.y_length = trimmedLength
                  if debug:
@@ -1121,7 +1221,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
  
                  # We must insure that the match identifier is still unique.
                  if last_matchid == FM.matchid :
-@@ -194,7 +194,7 @@
+@@ -194,7 +194,7 @@ def applyOneKeepMask( inpfile, outfile, keepMaskFile, processFirstAxis):
                      else:
                          FT.matchid = FT.matchid + "y" + str(subcount)
                  
@@ -1130,7 +1230,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
                  # we need to get a new one
                  if(qe < me):
                      iline = None
-@@ -205,7 +205,7 @@
+@@ -205,7 +205,7 @@ def applyOneKeepMask( inpfile, outfile, keepMaskFile, processFirstAxis):
          # If there are any left over non-match lines, then output them!
          for mline in inpiter:
              if(mline[0] != "M"):
@@ -1139,7 +1239,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
  
  def applyBothKeepMasks( inpfile, outfile ):
  
-@@ -238,7 +238,7 @@
+@@ -238,7 +238,7 @@ def applyBothKeepMasks( inpfile, outfile ):
      findCoverageIntervals( inpfile, keepMaskFile, processFirstAxis)
      if debug:
          debugnum += 1; debugfile = open("debugfile.%d" % debugnum, "w")
@@ -1148,7 +1248,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
              
      MatchRecord.sortInXorderAP(tmpfile2,tmpfile3)
      if debug:
-@@ -247,13 +247,13 @@
+@@ -247,13 +247,13 @@ def applyBothKeepMasks( inpfile, outfile ):
          #for line in tmpfile2: print >>debugfile, line,
          tmpfile3.seek(0)
          debugnum += 1; debugfile = open("debugfile.%d" % debugnum, "w")
@@ -1164,7 +1264,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
          
      # Apply the keepMask for the second axis.
      # Make the sorted the keep mask intervals for the second axis.
-@@ -266,7 +266,7 @@
+@@ -266,7 +266,7 @@ def applyBothKeepMasks( inpfile, outfile ):
      findCoverageIntervals( inpfile, keepMaskFile, processFirstAxis)
      if debug:
          debugnum += 1; debugfile = open("debugfile.%d" % debugnum, "w")
@@ -1173,7 +1273,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
  
  
      MatchRecord.sortInYorderAP(tmpfile2,tmpfile3)
-@@ -276,13 +276,13 @@
+@@ -276,13 +276,13 @@ def applyBothKeepMasks( inpfile, outfile ):
          #for line in tmpfile2: print >>debugfile, line,
          tmpfile3.seek(0)
          debugnum += 1; debugfile = open("debugfile.%d" % debugnum, "w")
@@ -1189,6 +1289,8 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
  
  
  def main( inpfile, outfile):
+diff --git a/atac-driver/chainer/python/dedashMatches.py b/atac-driver/chainer/python/dedashMatches.py
+index db45eed..ef73414 100755
 --- a/atac-driver/chainer/python/dedashMatches.py
 +++ b/atac-driver/chainer/python/dedashMatches.py
 @@ -1,4 +1,4 @@
@@ -1197,7 +1299,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
  
  # dedashMatches.py /prod/IR02/synteny/mus-vs-rat/mouse_celera_R13_chr_20030210-vs-rat_celera_R1_chr_20030507-V3.atac.t20.l100.br.squeezed.filled.coalesced mus-vs-rat.out /prod/IR05/GENOMES/mouse_celera_R13_chr_20030210 /prod/IR05/GENOMES/rat_celera_R1_chr_20030507 MR13 RR1
  
-@@ -32,7 +32,7 @@
+@@ -32,7 +32,7 @@ def subc():
      suba()
      it = iter(subb,None)
      for y in it:
@@ -1206,7 +1308,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
  
  def main( inpfile, outfile, xIdx, yIdx):
      inpfile.seek(0)
-@@ -42,7 +42,7 @@
+@@ -42,7 +42,7 @@ def main( inpfile, outfile, xIdx, yIdx):
      for line in inpfile:
          lineCount += 1
          if((lineCount % 10000)==0):
@@ -1215,7 +1317,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
          if(line[0] == 'M'):
              FM = MatchRecord.MatchRecord(line)
              if(FM.subtype == 'g'):
-@@ -87,11 +87,11 @@
+@@ -87,11 +87,11 @@ def main( inpfile, outfile, xIdx, yIdx):
                              mismatches += 1
                      FM.extend['mm'] = str(mismatches)
                      FM.identifier = ""  # BEWARE
@@ -1230,6 +1332,8 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
  
  
  def oldmain():    
+diff --git a/atac-driver/chainer/python/fillIntraRunGaps.py b/atac-driver/chainer/python/fillIntraRunGaps.py
+index 68b66ae..50cb788 100644
 --- a/atac-driver/chainer/python/fillIntraRunGaps.py
 +++ b/atac-driver/chainer/python/fillIntraRunGaps.py
 @@ -1,4 +1,4 @@
@@ -1238,7 +1342,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
  
  import sys
  import string
-@@ -9,7 +9,7 @@
+@@ -9,7 +9,7 @@ import halign
  #import shelve
  
  # True=1
@@ -1247,7 +1351,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
  
  def analyzeGap(x,y,left,right,outfile,maxgap,erate,margin):
      inter_run_gap_count = 0
-@@ -33,20 +33,20 @@
+@@ -33,20 +33,20 @@ def analyzeGap(x,y,left,right,outfile,maxgap,erate,margin):
          sorted_by_y = (left.y_start <= right.y_start) and \
                        (left.y_start+left.y_length <= right.y_start+right.y_length)
          if(not(sorted_by_x or sorted_by_y)):
@@ -1277,7 +1381,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
          assert((not left_forward) or (sorted_by_x and sorted_by_y))
          assert((left_forward) or (not(sorted_by_x and sorted_by_y)))
  
-@@ -104,10 +104,10 @@
+@@ -104,10 +104,10 @@ def analyzeGap(x,y,left,right,outfile,maxgap,erate,margin):
              parent_y_length = y_len + 2*margin
  
              if 0:
@@ -1292,7 +1396,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
  
              x_seq = ""
              if(x_len > 0):
-@@ -123,13 +123,13 @@
+@@ -123,13 +123,13 @@ def analyzeGap(x,y,left,right,outfile,maxgap,erate,margin):
              # end if
  
              if 0:
@@ -1313,7 +1417,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
                  outfile.flush()
  
              try:
-@@ -156,34 +156,34 @@
+@@ -156,34 +156,34 @@ def analyzeGap(x,y,left,right,outfile,maxgap,erate,margin):
                      assert(bgn1 >= 0)
                      assert(bgn2 >= 0)
                      if(not(bgn1 + len1 <= parent_x_length)):
@@ -1366,7 +1470,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
                          continue
                      assert(bgn1 >= 0)
                      assert(bgn2 >= 0)
-@@ -218,11 +218,11 @@
+@@ -218,11 +218,11 @@ def analyzeGap(x,y,left,right,outfile,maxgap,erate,margin):
                      #assert(bgn2+len2 <= parent_y_length)
  
                      if 0:
@@ -1383,7 +1487,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
  
                      halign.halignStart(x_seq[bgn1:bgn1+len1], y_seq[bgn2:bgn2+len2])
                      outfile.flush()
-@@ -246,20 +246,20 @@
+@@ -246,20 +246,20 @@ def analyzeGap(x,y,left,right,outfile,maxgap,erate,margin):
                                  mismatches += 1
                          FM.extend['mm'] = str(mismatches)
                          #FM.identifier = ""  # BEWARE
@@ -1414,7 +1518,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
          # end if
  
      else:
-@@ -291,7 +291,7 @@
+@@ -291,7 +291,7 @@ def mainLoop( inpfile, outfile, xIdx, yIdx, maxgap, erate):
      for line in inpfileIter:
          if(line[0] == 'M'):
              left = MatchRecord.MatchRecord(line)
@@ -1423,7 +1527,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
              countLines += 1
              break;
  
-@@ -311,7 +311,7 @@
+@@ -311,7 +311,7 @@ def mainLoop( inpfile, outfile, xIdx, yIdx, maxgap, erate):
                  inter_run_gap_count_total += inter_run_gap_count
  
                  # Output the record which was possibly trimmed.
@@ -1432,7 +1536,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
                  countLines += 1
                  left = right
          # end if
-@@ -330,9 +330,9 @@
+@@ -330,9 +330,9 @@ def main( inpname, outname):
      assemblyFilePrefix1 = obj.globals['assemblyFilePrefix1']
      assemblyFilePrefix2 = obj.globals['assemblyFilePrefix2']
  
@@ -1444,6 +1548,8 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
          obj.globals['fillIntraRunGapsMaxGap'] = 100000
      fillIntraRunGapsErate = float(obj.globals['fillIntraRunGapsErate'])
      fillIntraRunGapsMaxGap = int(obj.globals['fillIntraRunGapsMaxGap'])
+diff --git a/atac-driver/chainer/python/mkstats.py b/atac-driver/chainer/python/mkstats.py
+index daf7cc6..1798edc 100755
 --- a/atac-driver/chainer/python/mkstats.py
 +++ b/atac-driver/chainer/python/mkstats.py
 @@ -1,4 +1,4 @@
@@ -1452,7 +1558,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
  # Must look in /usr/local/ir/bin on the Compaqs for the correct Python interpreter.
  # export PYTHONPATH=${PYTHONPATH}:$WORK/cds/IR/COMPASS/src/AtacPipeline
  
-@@ -19,7 +19,7 @@
+@@ -19,7 +19,7 @@ def main(glist):
              pattern = re.compile(r"^M [gl] ")
              for line in inpfile:
                  if(pattern.search(line)):
@@ -1461,7 +1567,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
              tmpfile.close()
              os.system("celagram -c 7 -t 'gapped match lengths' %s" % (tmpname,))
  
-@@ -30,7 +30,7 @@
+@@ -30,7 +30,7 @@ def main(glist):
              pattern = re.compile(r"^M x ")
              for line in inpfile:
                  if(pattern.search(line)):
@@ -1470,7 +1576,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
              tmpfile.close()
              os.system("celagram -c 7 -t 'exact match lengths' %s" % (tmpname,))
  
-@@ -41,7 +41,7 @@
+@@ -41,7 +41,7 @@ def main(glist):
              pattern = re.compile(r"^M u ")
              for line in inpfile:
                  if(pattern.search(line)):
@@ -1479,7 +1585,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
              tmpfile.close()
              os.system("celagram -c 7 -t 'ungapped match lengths' %s" % (tmpname,))
  
-@@ -52,7 +52,7 @@
+@@ -52,7 +52,7 @@ def main(glist):
          pattern = re.compile(r"^M [xu] ")
          for line in inpfile:
              if(pattern.search(line)):
@@ -1488,7 +1594,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
          tmpfile.close()
          os.system("celagram -c 7 -t '%s ungapped match lengths' %s" % (inpname,tmpname))
  
-@@ -63,7 +63,7 @@
+@@ -63,7 +63,7 @@ def main(glist):
          pattern = re.compile(r"^M\s*r\s")
          for line in inpfile:
              if(pattern.search(line)):
@@ -1497,6 +1603,8 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
          tmpfile.close()
          os.system("celagram -c 7  -t '%s spans in 1st assembly' %s" % (inpname,tmpname))
          os.system("celagram -c 11 -t '%s spans in 2nd assembly' %s" % (inpname,tmpname))
+diff --git a/atac-driver/chainer/python/squeezeIntraRunGaps.py b/atac-driver/chainer/python/squeezeIntraRunGaps.py
+index 81719c2..9287ac9 100644
 --- a/atac-driver/chainer/python/squeezeIntraRunGaps.py
 +++ b/atac-driver/chainer/python/squeezeIntraRunGaps.py
 @@ -1,4 +1,4 @@
@@ -1505,7 +1613,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
  
  import sys
  import string
-@@ -9,7 +9,7 @@
+@@ -9,7 +9,7 @@ import IdxStore
  #import shelve
  
  # True=1
@@ -1514,7 +1622,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
  
          
  theIsolatedSNPcount = 0
-@@ -52,30 +52,30 @@
+@@ -52,30 +52,30 @@ def analyzeGap(x,y,left,right,outfile,maxgap,margin):
          sorted_by_y = (left.y_start <= right.y_start)
          dovetail_in_y = sorted_by_y and (left.y_start+left.y_length <= right.y_start+right.y_length)
          if(not(sorted_by_x or sorted_by_y)):
@@ -1560,7 +1668,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
          assert((not left_forward) or (sorted_by_x and sorted_by_y))
          assert((left_forward) or (not(sorted_by_x and sorted_by_y)))
  
-@@ -157,19 +157,19 @@
+@@ -157,19 +157,19 @@ def analyzeGap(x,y,left,right,outfile,maxgap,margin):
              sys.stderr.write("x string lengths mismatch asked=%d got=%d\n" % (x_len,len(x_substring)))
              sys.stderr.write("x_uid= %s x_pos= %d x_len= %d y_uid= %s y_pos= %d y_len= %d\n" %
                                         (left.x_scaf_uid,x_pos,x_len,left.y_scaf_uid,y_pos,y_len))
@@ -1588,7 +1696,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
          # end if
          
          assert(x_len < 0 or x_len == len(x_substring))
-@@ -357,7 +357,7 @@
+@@ -357,7 +357,7 @@ def analyzeGap(x,y,left,right,outfile,maxgap,margin):
                  # end if
              # end if
              # outfile.write(str(left_fill))
@@ -1597,7 +1705,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
          # end if
          if(rp>0):
              right_fill = right.copy()
-@@ -386,7 +386,7 @@
+@@ -386,7 +386,7 @@ def analyzeGap(x,y,left,right,outfile,maxgap,margin):
                  # end if
              # end if
              #outfile.write(str(right_fill))
@@ -1606,7 +1714,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
          # end if
          
          if(0): # Start gap composition diagnostics.
-@@ -447,7 +447,7 @@
+@@ -447,7 +447,7 @@ def mainLoop( inpfile, outfile, xIdx, yIdx):
          if(line[0] == 'M'):
              left = MatchRecord.MatchRecord(line)
              # outfile.write(str(left))
@@ -1615,7 +1723,7 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
              countLines += 1
              break;
  
-@@ -470,7 +470,7 @@
+@@ -470,7 +470,7 @@ def mainLoop( inpfile, outfile, xIdx, yIdx):
  
              # Output the record which was possibly trimmed.
              #outfile.write(str(right))
@@ -1624,6 +1732,8 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
              countLines += 1
              left = right
          # end if
+diff --git a/atac-driver/config.py b/atac-driver/config.py
+index 9f9bea4..2f9a059 100644
 --- a/atac-driver/config.py
 +++ b/atac-driver/config.py
 @@ -1,11 +1,11 @@
@@ -1640,9 +1750,11 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
  
  #        flags = ['-I' + ,
  #                 '-I' + sysconfig.get_python_inc(plat_specific=True)]
+diff --git a/configure.sh b/configure.sh
+index 17b19cb..26ff7cc 100755
 --- a/configure.sh
 +++ b/configure.sh
-@@ -80,14 +80,14 @@
+@@ -80,14 +80,14 @@ fi
  #  used by atac-driver/chainer only.
  #
  
@@ -1660,57 +1772,3 @@ Last-Update: Thu, 19 Dec 2019 10:43:09 +0100
    
    if [ -z "$CFLAGS_PYTHON" -o ! -d "$CFLAGS_PYTHON" ] ; then
      echo "WARNING:  Python development environment not found."
---- a/atac-driver/chainer/localalign/localAlignerInterfacemodule.C
-+++ b/atac-driver/chainer/localalign/localAlignerInterfacemodule.C
-@@ -227,8 +227,17 @@
- };
- 
- 
-+static struct PyModuleDef cModMethods =
-+{
-+    PyModuleDef_HEAD_INIT,
-+    "localAlignerInterface",  /* name of module */
-+    "",          /* module documentation, may be NULL */
-+    -1,          /* size of per-interpreter state of the module, or -1 if the module keeps state in global variables. */
-+    registration_table
-+};
-+
- extern "C"
--void initlocalAlignerInterface() {
--  Py_InitModule("localAlignerInterface", registration_table);
-+void PyInit_localAlignerInterface() {
-+  PyModule_Create(&cModMethods);
- }
- 
---- a/atac-driver/chainer/halign/halignmodule.C
-+++ b/atac-driver/chainer/halign/halignmodule.C
-@@ -54,7 +54,16 @@
-   {NULL, NULL, 0, NULL}
- };
- 
-+static struct PyModuleDef cModMethods =
-+{
-+    PyModuleDef_HEAD_INIT,
-+    "halign",    /* name of module */
-+    "",          /* module documentation, may be NULL */
-+    -1,          /* size of per-interpreter state of the module, or -1 if the module keeps state in global variables. */
-+    registration_table
-+};
-+
- extern "C" 
--void inithalign(void) {
--  Py_InitModule("halign", registration_table);
-+void PyInit_halign(void) {
-+  PyModule_Create(&cModMethods);
- }
---- a/atac-driver/atac.pl
-+++ b/atac-driver/atac.pl
-@@ -732,7 +732,7 @@
-     #
-     $ENV{'PYTHONPATH'} = "$LIBdir";
- 
--    if (runCommand("python $chainer $ATACdir/work/$matches.matches.extended")) {
-+    if (runCommand("python3 $chainer $ATACdir/work/$matches.matches.extended")) {
-         print STDERR "PYTHONPATH=$ENV{'PYTHONPATH'}\n";
-         die "Chainer failed.\n";
-     }


=====================================
debian/patches/allow-freebsd-build.patch
=====================================
@@ -1,17 +1,26 @@
-Description: Try to fix building on kFreeBSD
- Upstream's build system fails to detect GNU/kFreeBSD because its
- uname output is unique. This patch sets its uname to match the
- regular FreeBSD build parameters. It also sets the target build
- directory to always be "installdir" (rather than uname-arch). We
- only build for one architecture at a time, anyway, and this way,
- we don't have to figure out which system we're building on
- and mangle the uname string depending on whether we're Linux or kFreeBSD.
-Author: Afif Elghraoui <afif at ghraoui.name>
+From: Afif Elghraoui <afif at ghraoui.name>
+Date: Sat, 2 Jan 2016 16:34:57 -0800
+Subject: Try to fix building on kFreeBSD
+
 Forwarded: not-needed
 Last-Update: 2016-01-02
---- kmer-tools.orig/configure.sh
-+++ kmer-tools/configure.sh
-@@ -43,7 +43,7 @@
+
+Upstream's build system fails to detect GNU/kFreeBSD because its
+uname output is unique. This patch sets its uname to match the
+regular FreeBSD build parameters. It also sets the target build
+directory to always be "installdir" (rather than uname-arch). We
+only build for one architecture at a time, anyway, and this way,
+we don't have to figure out which system we're building on
+and mangle the uname string depending on whether we're Linux or kFreeBSD.
+---
+ configure.sh | 24 ++++++++++++------------
+ 1 file changed, 12 insertions(+), 12 deletions(-)
+
+diff --git a/configure.sh b/configure.sh
+index f1a12a4..fe36882 100755
+--- a/configure.sh
++++ b/configure.sh
+@@ -43,7 +43,7 @@ if [ "x$target" = "x" ] ; then
          target="Darwin-amd64$opts"
        fi
        ;;
@@ -20,7 +29,7 @@ Last-Update: 2016-01-02
        target="FreeBSD-i386$opts"
        if [ `uname -m` = "amd64" ] ; then
          target="FreeBSD-amd64$opts"
-@@ -137,7 +137,7 @@
+@@ -137,7 +137,7 @@ CXXLDFLAGS        := -m64
  CXXLIBS           := 
  LDFLAGS_PYTHON    := -bundle -framework CoreFoundation -framework Python -dynamic
  ARFLAGS           := ruvs
@@ -29,7 +38,7 @@ Last-Update: 2016-01-02
  EOF
      ;;
    Darwin-i386-debug|Darwin-amd64-debug)
-@@ -157,7 +157,7 @@
+@@ -157,7 +157,7 @@ CXXLDFLAGS        := -m64
  CXXLIBS           := 
  LDFLAGS_PYTHON    := -bundle -framework CoreFoundation -framework Python -dynamic
  ARFLAGS           := ruvs
@@ -38,7 +47,7 @@ Last-Update: 2016-01-02
  EOF
      ;;
    FreeBSD-amd64)
-@@ -175,7 +175,7 @@
+@@ -175,7 +175,7 @@ CXXFLAGS_COMPILE  := -O3 -fPIC -pthread -D_REENTRANT -Wall -Wno-char-subscripts
  CXXLDFLAGS        := -L/usr/local/lib
  CXXLIBS           := -pthread -lthr
  ARFLAGS           := ruvs
@@ -47,7 +56,7 @@ Last-Update: 2016-01-02
  EOF
      ;;
    FreeBSD-amd64-debug)
-@@ -193,7 +193,7 @@
+@@ -193,7 +193,7 @@ CXXFLAGS_COMPILE  := -g -pthread -D_REENTRANT -fPIC -Wall -Wno-char-subscripts -
  CXXLDFLAGS        := -L/usr/local/lib
  CXXLIBS           := -pthread -lthr
  ARFLAGS           := ruvs
@@ -56,7 +65,7 @@ Last-Update: 2016-01-02
  EOF
      ;;
    FreeBSD-amd64-profile)
-@@ -211,7 +211,7 @@
+@@ -211,7 +211,7 @@ CXXFLAGS_COMPILE  := -pg -O3 -pthread -D_REENTRANT -fPIC -Wall -Wno-char-subscri
  CXXLDFLAGS        := -pg -L/usr/local/lib
  CXXLIBS           := -pthread -lthr
  ARFLAGS           := ruvs
@@ -65,7 +74,7 @@ Last-Update: 2016-01-02
  EOF
      ;;
    Linux-i686)
-@@ -229,7 +229,7 @@
+@@ -229,7 +229,7 @@ CXXFLAGS_COMPILE  := -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_REENTRANT -
  CXXLDFLAGS        := -L/usr/local/lib
  CXXLIBS           := -pthread -ldl
  ARFLAGS           := ruvs
@@ -74,7 +83,7 @@ Last-Update: 2016-01-02
  EOF
      ;;
    Linux-amd64)
-@@ -247,7 +247,7 @@
+@@ -247,7 +247,7 @@ CXXFLAGS_COMPILE  := -m64 -fPIC -D_REENTRANT -O3 -D_THREAD_SAFE -pthread -fmessa
  CXXLDFLAGS        := -L/usr/local/lib
  CXXLIBS           := -pthread -ldl
  ARFLAGS           := ruvs
@@ -83,7 +92,7 @@ Last-Update: 2016-01-02
  EOF
      ;;
    Linux-amd64-debug)
-@@ -265,7 +265,7 @@
+@@ -265,7 +265,7 @@ CXXFLAGS_COMPILE  := -m64 -fPIC -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -D_
  CXXLDFLAGS        := -L/usr/local/lib
  CXXLIBS           := -pthread -ldl
  ARFLAGS           := ruvs
@@ -92,7 +101,7 @@ Last-Update: 2016-01-02
  EOF
      ;;
    Linux-amd64-profile)
-@@ -283,7 +283,7 @@
+@@ -283,7 +283,7 @@ CXXFLAGS_COMPILE  := -pg -m64 -fPIC -D_REENTRANT -O3 -D_THREAD_SAFE -pthread -fm
  CXXLDFLAGS        := -L/usr/local/lib
  CXXLIBS           := -pthread -ldl
  ARFLAGS           := ruvs
@@ -101,7 +110,7 @@ Last-Update: 2016-01-02
  EOF
      ;;
    Linux-ia64)
-@@ -301,7 +301,7 @@
+@@ -301,7 +301,7 @@ CXXFLAGS_COMPILE  := -m64 -fPIC -D_REENTRANT -O3 -D_THREAD_SAFE -pthread -fmessa
  CXXLDFLAGS        := -L/usr/local/lib
  CXXLIBS           := -pthread -ldl
  ARFLAGS           := ruvs
@@ -110,7 +119,7 @@ Last-Update: 2016-01-02
  EOF
      ;;
  
-@@ -331,7 +331,7 @@
+@@ -331,7 +331,7 @@ CXXFLAGS_COMPILE  := -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O3
  CXXLDFLAGS        :=
  CXXLIBS           := -lpthread -lrt
  ARFLAGS           := ruv


=====================================
debian/patches/atac-helper-script-paths.patch
=====================================
@@ -1,13 +1,22 @@
-Description: Adjust paths for helper scripts to be found
- ATAC uses some generically named scripts (like "makeplots") that
- can't sensibly be placed in /usr/bin. We put them instead in
- /usr/lib/atac and adjust the driver script to be able to find them
- there.
-Author: Afif Elghraoui <afif at debian.org>
+From: Afif Elghraoui <afif at debian.org>
+Date: Sat, 3 Dec 2016 16:27:07 -0800
+Subject: Adjust paths for helper scripts to be found
+
 Forwarded: not-needed
 Last-Update: 2016-11-30
---- kmer-tools.orig/atac-driver/atac.pl
-+++ kmer-tools/atac-driver/atac.pl
+
+ATAC uses some generically named scripts (like "makeplots") that
+can't sensibly be placed in /usr/bin. We put them instead in
+/usr/lib/atac and adjust the driver script to be able to find them
+there.
+---
+ atac-driver/atac.pl | 11 ++++++-----
+ 1 file changed, 6 insertions(+), 5 deletions(-)
+
+diff --git a/atac-driver/atac.pl b/atac-driver/atac.pl
+index 7386fe3..4acc7a4 100755
+--- a/atac-driver/atac.pl
++++ b/atac-driver/atac.pl
 @@ -20,6 +20,7 @@
  
  use strict;
@@ -16,7 +25,7 @@ Last-Update: 2016-11-30
  
  my $id1               = undef;
  my $seq1              = undef;
-@@ -30,8 +31,8 @@
+@@ -30,8 +31,8 @@ my $ATACdir           = undef;
  my $GENOMEdir         = "default";   #  Location of genome assemblies
  my $MERYLdir          = "default";   #  Location of genome mercount databases
  
@@ -27,7 +36,7 @@ Last-Update: 2016-11-30
  
  my $mersize           = 20; # the mer size
  my $minfill           = 20; # the mimimum fill for a reported match.
-@@ -56,9 +57,9 @@
+@@ -56,9 +57,9 @@ my $merylOnly         = 0;
  
  #  Check that we have everything we need to run
  #


=====================================
debian/patches/atac-readme.patch
=====================================
@@ -1,17 +1,26 @@
-Description: Fix typo and adjust script name
- The debian package uses the executable "atac" rather than "atac.pl".
-Author: Afif Elghraoui <afif at debian.org>
+From: Afif Elghraoui <afif at debian.org>
+Date: Sat, 3 Dec 2016 16:27:07 -0800
+Subject: Fix typo and adjust script name
+
 Forwarded: no
 Last-Update: 2016-11-03
---- kmer-tools.orig/README.atac
-+++ kmer-tools/README.atac
+
+The debian package uses the executable "atac" rather than "atac.pl".
+---
+ README.atac | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/README.atac b/README.atac
+index 0156bfa..a7456e9 100644
+--- a/README.atac
++++ b/README.atac
 @@ -1,4 +1,4 @@
 -atac - assembly-to-assembly comparasion, comparative mapping between
 +atac - assembly-to-assembly comparison, comparative mapping between
         two genome assemblies (same species), or between two different
         genomes (cross species).
  
-@@ -44,7 +44,7 @@
+@@ -44,7 +44,7 @@ II. Command line usage
  
  A simple invocation:
  


=====================================
debian/patches/drop_distutils
=====================================
@@ -1,11 +1,18 @@
-From: Michael R. Crusoe <crusoe at debian.org>
+From: "Michael R. Crusoe" <crusoe at debian.org>
+Date: Tue, 10 Sep 2024 10:20:51 +0200
 Subject: Replace distutils.sysconfig with the stdlib sysconfig
 
 sysconfig has been available since Python 3.2
 https://docs.python.org/3/library/sysconfig.html#module-sysconfig
+---
+ atac-driver/config.py | 4 ++--
+ configure.sh          | 2 +-
+ 2 files changed, 3 insertions(+), 3 deletions(-)
 
---- kmer.orig/atac-driver/config.py
-+++ kmer/atac-driver/config.py
+diff --git a/atac-driver/config.py b/atac-driver/config.py
+index 2f9a059..567d6f5 100644
+--- a/atac-driver/config.py
++++ b/atac-driver/config.py
 @@ -3,9 +3,9 @@
  import sys
  import os
@@ -18,9 +25,11 @@ https://docs.python.org/3/library/sysconfig.html#module-sysconfig
  
  #        flags = ['-I' + ,
  #                 '-I' + sysconfig.get_python_inc(plat_specific=True)]
---- kmer.orig/configure.sh
-+++ kmer/configure.sh
-@@ -87,7 +87,7 @@
+diff --git a/configure.sh b/configure.sh
+index 26ff7cc..f980cbd 100755
+--- a/configure.sh
++++ b/configure.sh
+@@ -87,7 +87,7 @@ if [ ! -x $PYTHON ] ; then
    WITHOUT_ATAC="atac-driver/ seatac/"
  else
    echo "Python executable found in '$PYTHON'"


=====================================
debian/patches/fix_wrong_evaluation_order.patch
=====================================
@@ -1,11 +1,19 @@
-Author: Liubov Chuprikova <chuprikovalv at gmail.com>
-Last-Update: Mon, 27 August 2018 11:24:36 +0200
-Description: Fix a piece of code that has unpredictable results
+From: Liubov Chuprikova <chuprikovalv at gmail.com>
+Date: Mon, 27 Aug 2018 12:03:00 +0200
+Subject: Fix a piece of code that has unpredictable results
+
+Last-Update: 2018-08-27
 Bug-Debian: https://bugs.debian.org/906980
+Forwarded: https://sourceforge.net/p/kmer/bugs/33/
+---
+ atac-driver/libatac/atacMatchList.C | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
 
+diff --git a/atac-driver/libatac/atacMatchList.C b/atac-driver/libatac/atacMatchList.C
+index 146d2d0..6e30b72 100644
 --- a/atac-driver/libatac/atacMatchList.C
 +++ b/atac-driver/libatac/atacMatchList.C
-@@ -47,5 +47,6 @@
+@@ -47,5 +47,6 @@ atacMatchList::add(atacMatch &m) {
  
    memcpy(&_matches[_matchesLen], &m, sizeof(atacMatch));
  


=====================================
debian/patches/linux-cflags.patch
=====================================
@@ -1,11 +1,19 @@
-Description: Use the same compile flags in all Linux builds, and include -fPIC
- atac .so were built without -fPIC on !amd64/ia64.
-Author: Adrian Bunk <bunk at debian.org>
+From: Adrian Bunk <bunk at debian.org>
+Date: Thu, 23 Aug 2018 08:31:32 +0200
+Subject: Use the same compile flags in all Linux builds, and include -fPIC
+
 Bug-Debian: https://bugs.debian.org/907007
-Last-Update: Thu, 23 Aug 2018 05:16:16 +0300
+Last-Update: 2018-08-23
+
+atac .so were built without -fPIC on !amd64/ia64.
+---
+ configure.sh | 18 +++++++++---------
+ 1 file changed, 9 insertions(+), 9 deletions(-)
 
---- kmer-0~20150903+r2013.orig/configure.sh
-+++ kmer-0~20150903+r2013/configure.sh
+diff --git a/configure.sh b/configure.sh
+index fe36882..17b19cb 100755
+--- a/configure.sh
++++ b/configure.sh
 @@ -57,12 +57,12 @@ if [ "x$target" = "x" ] ; then
        ;;
      Linux)


=====================================
debian/patches/spelling.patch
=====================================
@@ -1,21 +1,35 @@
-Description: Fix spelling
-Author: Andreas Tille <tille at debian.org>, Antoni Villalonga <antoni at friki.cat>
-Last-Update: Sat, 11 Apr 2020 22:30:00 +0200
+From: Andreas Tille <tille at debian.org>
+From: Antoni Villalonga <antoni at friki.cat>
+Date: Sun, 5 Aug 2018 11:01:22 +0200
+Subject: Fix spelling
 
---- a/libutil/bitPackedFile.C
-+++ b/libutil/bitPackedFile.C
-@@ -157,7 +157,7 @@
-     } else if ((at == uint64Swap(ac)) && (bt == uint64Swap(bc))) {
-       endianess_flipped = true;
-     } else {
--      fprintf(stderr, "bitPackedFile::bitPackedFile()-- '%s' looked like a bitPackedFile, but failed the endianess check, not opened.\n", _name);
-+      fprintf(stderr, "bitPackedFile::bitPackedFile()-- '%s' looked like a bitPackedFile, but failed the endianness check, not opened.\n", _name);
-       exit(1);
-     }
-   } else {
+Last-Update: 2020-04-19
+---
+ leaff/leaff.C            | 2 +-
+ libkmer/driver-existDB.C | 2 +-
+ libutil/bitPackedFile.C  | 2 +-
+ libutil/palloc.c         | 2 +-
+ sim4dbutils/parseSNP.C   | 2 +-
+ 5 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/leaff/leaff.C b/leaff/leaff.C
+index 592a58e..eb7f36b 100644
+--- a/leaff/leaff.C
++++ b/leaff/leaff.C
+@@ -126,7 +126,7 @@ helpAnalysis(char *program) {
+   fprintf(stderr, "   --partitionmap         [ n[gmk]bp | n ] a.fasta\n");
+   fprintf(stderr, "                Partition the sequences into roughly equal size pieces of\n");
+   fprintf(stderr, "                size nbp, nkbp, nmbp or ngbp; or into n roughly equal sized\n");
+-  fprintf(stderr, "                parititions.  Sequences larger that the partition size are\n");
++  fprintf(stderr, "                partitions.  Sequences larger that the partition size are\n");
+   fprintf(stderr, "                in a partition by themself.  --partitionmap writes a\n");
+   fprintf(stderr, "                description of the partition to stdout; --partiton creates\n");
+   fprintf(stderr, "                a fasta file 'prefix-###.fasta' for each partition.\n");
+diff --git a/libkmer/driver-existDB.C b/libkmer/driver-existDB.C
+index 1ad7230..4b87efa 100644
 --- a/libkmer/driver-existDB.C
 +++ b/libkmer/driver-existDB.C
-@@ -178,7 +178,7 @@
+@@ -178,7 +178,7 @@ const char *usage =
  "\n"
  "       -testexhaustive some.fasta some.meryl\n"
  "         -- Build an existDB table from some.fasta, check _EVERY_ mer\n"
@@ -24,9 +38,24 @@ Last-Update: Sat, 11 Apr 2020 22:30:00 +0200
  "            not in the meryl database.  Assumes 'some.meryl' is the\n"
  "            mercount of some.fasta.\n"
  "\n";
+diff --git a/libutil/bitPackedFile.C b/libutil/bitPackedFile.C
+index 278cc56..c4da1a7 100644
+--- a/libutil/bitPackedFile.C
++++ b/libutil/bitPackedFile.C
+@@ -157,7 +157,7 @@ bitPackedFile::bitPackedFile(char const *name, uint64 offset, bool forceTruncate
+     } else if ((at == uint64Swap(ac)) && (bt == uint64Swap(bc))) {
+       endianess_flipped = true;
+     } else {
+-      fprintf(stderr, "bitPackedFile::bitPackedFile()-- '%s' looked like a bitPackedFile, but failed the endianess check, not opened.\n", _name);
++      fprintf(stderr, "bitPackedFile::bitPackedFile()-- '%s' looked like a bitPackedFile, but failed the endianness check, not opened.\n", _name);
+       exit(1);
+     }
+   } else {
+diff --git a/libutil/palloc.c b/libutil/palloc.c
+index db848ad..f4cdb75 100644
 --- a/libutil/palloc.c
 +++ b/libutil/palloc.c
-@@ -133,7 +133,7 @@
+@@ -133,7 +133,7 @@ palloc2(size_t size, void *handle) {
      root->_cn = root->_nl;
  
      if (root->_dbg > 0)
@@ -35,9 +64,11 @@ Last-Update: Sat, 11 Apr 2020 22:30:00 +0200
  
      root->_cn->_cp = 0;
      root->_cn->_dt = (char *)really_allocate(root->_bs);
+diff --git a/sim4dbutils/parseSNP.C b/sim4dbutils/parseSNP.C
+index f1c61b6..50c2eac 100644
 --- a/sim4dbutils/parseSNP.C
 +++ b/sim4dbutils/parseSNP.C
-@@ -491,7 +491,7 @@
+@@ -491,7 +491,7 @@ main(int argc, char **argv) {
      fprintf(stderr, "                                 default, and if posTag is not found.\n");
      fprintf(stderr, "\n");
      fprintf(stderr, "                                 TAGS: The number immediately after the first\n");
@@ -46,14 +77,3 @@ Last-Update: Sat, 11 Apr 2020 22:30:00 +0200
      fprintf(stderr, "\n");
      fprintf(stderr, "             -o offset           An additive offset to the SNP position.\n");
      fprintf(stderr, "                                 The default is 0.\n");
---- a/leaff/leaff.C
-+++ b/leaff/leaff.C
-@@ -126,7 +126,7 @@
-   fprintf(stderr, "   --partitionmap         [ n[gmk]bp | n ] a.fasta\n");
-   fprintf(stderr, "                Partition the sequences into roughly equal size pieces of\n");
-   fprintf(stderr, "                size nbp, nkbp, nmbp or ngbp; or into n roughly equal sized\n");
--  fprintf(stderr, "                parititions.  Sequences larger that the partition size are\n");
-+  fprintf(stderr, "                partitions.  Sequences larger that the partition size are\n");
-   fprintf(stderr, "                in a partition by themself.  --partitionmap writes a\n");
-   fprintf(stderr, "                description of the partition to stdout; --partiton creates\n");
-   fprintf(stderr, "                a fasta file 'prefix-###.fasta' for each partition.\n");


=====================================
debian/tests/atac-unit-test
=====================================
@@ -4,24 +4,25 @@ pkg="atac"
 
 if [ "$AUTOPKGTEST_TMP" = "" ]; then
     AUTOPKGTEST_TMP=$(mktemp -d /tmp/${pkg}-test.XXXXXX)
+    # shellcheck disable=SC2064
     trap "rm -rf $AUTOPKGTEST_TMP" 0 INT QUIT ABRT PIPE TERM
 fi
-ORIGDIR=`pwd`
-cd $AUTOPKGTEST_TMP
+ORIGDIR=$(pwd)
+cd "$AUTOPKGTEST_TMP"
 if [ -e /usr/share/doc/kmer-examples/test_data.tar.gz ] ; then
     TARFILE=/usr/share/doc/kmer-examples/test_data.tar.gz
 else
-    if [ -e ${ORIGDIR}/debian/tests/test-data/test_data.tar.gz ] ; then
+    if [ -e "${ORIGDIR}/debian/tests/test-data/test_data.tar.gz" ] ; then
         TARFILE=${ORIGDIR}/debian/tests/test-data/test_data.tar.gz
     else
         echo "Please install package kmer-examples to run this script"
         exit 1
     fi
 fi
-tar -xaf $TARFILE
+tar -xaf "$TARFILE"
 
 # Run atac:
 atac -meryldir meryldir -dir results -id1 Lepr -seq1 GCF_000195855.1_ASM19585v1_genomic.fna \
 	-id2 Tuber -seq2 GCF_000195955.2_ASM19595v2_genomic.fna
 
-echo "RESULTS: OK\n"
+printf "RESULTS: OK\n"


=====================================
debian/tests/sim4db-unit-test
=====================================
@@ -4,30 +4,31 @@ pkg="sim4db"
 
 if [ "$AUTOPKGTEST_TMP" = "" ]; then
     AUTOPKGTEST_TMP=$(mktemp -d /tmp/${pkg}-test.XXXXXX)
+    # shellcheck disable=SC2064
     trap "rm -rf $AUTOPKGTEST_TMP" 0 INT QUIT ABRT PIPE TERM
 fi
-ORIGDIR=`pwd`
-cd $AUTOPKGTEST_TMP
+ORIGDIR=$(pwd)
+cd "$AUTOPKGTEST_TMP"
 if [ -e /usr/share/doc/kmer-examples/test_data.tar.gz ] ; then
     TARFILE=/usr/share/doc/kmer-examples/test_data.tar.gz
 else
-    if [ -e ${ORIGDIR}/debian/tests/test-data/test_data.tar.gz ] ; then
+    if [ -e "${ORIGDIR}/debian/tests/test-data/test_data.tar.gz" ] ; then
         TARFILE=${ORIGDIR}/debian/tests/test-data/test_data.tar.gz
     else
         echo "Please install package kmer-examples to run this script"
         exit 1
     fi
 fi
-tar -xaf $TARFILE
+tar -xaf "$TARFILE"
 
 # Run sim4db
-echo "Testing sim4 for intra-species alignment...\n"
+printf "Testing sim4 for intra-species alignment...\n"
 sim4db -genomic GCF_000195955.2_ASM19595v2_genomic.fna -cdna ESTs.fasta \
 	-output results.sim4db
 [ -s results.sim4db ]
-echo "Testing sim4cc for inter-species alignment...\n"
+printf "Testing sim4cc for inter-species alignment...\n"
 sim4db -genomic GCF_000195855.1_ASM19585v1_genomic.fna -cdna ESTs.fasta \
 	-interspecies -gff3 -output results.gff3
 [ -s results.gff3 ]
 
-echo "RESULTS: OK\n"
+printf "RESULTS: OK\n"



View it on GitLab: https://salsa.debian.org/med-team/kmer/-/compare/5afd1e89428a974b53450d3dd4406d0638b39f72...e4472af729546e503c96ee5203faddf5df7cdfdd

-- 
View it on GitLab: https://salsa.debian.org/med-team/kmer/-/compare/5afd1e89428a974b53450d3dd4406d0638b39f72...e4472af729546e503c96ee5203faddf5df7cdfdd
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/20250812/5b7696b2/attachment-0001.htm>


More information about the debian-med-commit mailing list