Proposals:Updating Nrrd library 2009: Difference between revisions

From KitwarePublic
Jump to navigationJump to search
Line 36: Line 36:


after the last Nrrd batch commit (from G Kindlmann),
after the last Nrrd batch commit (from G Kindlmann),
understand what the change was, and then apply the same change to either sourceforge's NrrdIO or even better, to Teem itself.
understand what the change was, and then apply the same change to either sourceforge's NrrdIO or even better, to Teem itself.  
 
For the .c files this should be easy; these are just copied directly from a Teem checkout, and then the headers are mangled.
 
For NrrdIO.h; this is actually a concatenation of air/air.h, biff/biff.h, nrrd/nrrdDefines.h, nrrd/nrrdEnums.h, nrrd/nrrdMacros.h, and nrrd/nrrd.h (these are defined in the NEED_PUB_HDRS variable of NrrdIO/pre-GNUmakefile)


This is probably not a one-day project.
This is probably not a one-day project.

Revision as of 05:51, 19 December 2009

Nrrd Library

This page describes the procedure for synchronizing the NrrdIO parts of Teem, with the one in Insight/Utilities/NrrdIO

Note that patches may have to be moved in both directions.

Background

  • Nrrd started as one of the libraries in Teem <http://teem.sf.net>
  • NrrdIO is a subset of Teem containing only the IO functionalities (basically, parts of the air, biff, and nrrd libraries).
  • The only part of Teem that's in ITK is in NrrdIO. Also, while Teem has a weakened LGPL license, NrrdIO is licensed identically to ITK.
  • Creating NrrdIO from Teem is done by a GNUMakefile and a perl script.
  • The back-propagation that should happen is from NrrdIO back to Teem, because the idea is that NrrdIO should be periodically regenerated from Teem.

Checking out NrrdIO

Use the following SVN command

  svn co http://teem.svn.sourceforge.net/svnroot/teem/NrrdIO/trunk NrrdIO


This was generated in the Teem side by

  • running a "pre-GNUmakefile" gnu makefile, which also uses a little perl script unteem.py.
    • The comments in pre-GNUmakefile explain this some.

Update Procedure

Perform the following two tasks:

From ITK to NrrdIO

For all the changes made to

             Insight/Utilities/NrrdIO

after the last Nrrd batch commit (from G Kindlmann), understand what the change was, and then apply the same change to either sourceforge's NrrdIO or even better, to Teem itself.

For the .c files this should be easy; these are just copied directly from a Teem checkout, and then the headers are mangled.

For NrrdIO.h; this is actually a concatenation of air/air.h, biff/biff.h, nrrd/nrrdDefines.h, nrrd/nrrdEnums.h, nrrd/nrrdMacros.h, and nrrd/nrrd.h (these are defined in the NEED_PUB_HDRS variable of NrrdIO/pre-GNUmakefile)

This is probably not a one-day project.

From Nrrd to ITK

Gradually or all at once, depending on our bravery, we copy sourceforge's NrrdIO to

           Insight/Utilities/NrrdIO 

and see what breaks,... and fix it

Progress

Table

File Check ITK for Bug Fix Move from NrrdIO to ITK
000-README.txt
754.c
accessors.c
array.c
arraysNrrd.c
axis.c
biffbiff.c
biffmsg.c
CMakeLists.txt
comment.c
defaultsNrrd.c
dio.c
encodingAscii.c
encodingBzip2.c
encoding.c
encodingGzip.c
encodingHex.c
encodingRaw.c
endianAir.c
endianNrrd.c
enum.c
enumsNrrd.c
format.c
formatEPS.c
formatNRRD.c
formatPNG.c
formatPNM.c
formatText.c
formatVTK.c
gzio.c
keyvalue.c
mangle.pl
methodsNrrd.c
miscAir.c
mop.c
NrrdIO.h
NrrdIO_Srcs.txt
NrrIOLIst.txt
parseAir.c
parseNrrd.c
preamble.c
pre-GNUmakefile
privateAir.h
privateNrrd.h
qnanhibit.c
read.c
reorder.c
sample-GNUmakefile
sampleIO.c
sane.c
simple.c
string.c
subset.c
teem32bit.h
teemDio.h
teemEndian.h
teemPng.h
teemQnanhibit.h
unteem.pl
write.c