Here is the checklist when freezing a version of gdcm: * First stage, checkings: 1/ Un*x: Notation: we here assume you have a cvs tree in GDCMHOME directory. cvs -d:pserver:anonymous@cvs.creatis.insa-lyon.fr:2402/cvs/public login cvs -d:pserver:anonymous@cvs.creatis.insa-lyon.fr:2402/cvs/public co gdcm cd gdcm export GDCMHOME=`pwd` cvs -d:pserver:anonymous@cvs.creatis.insa-lyon.fr:2402/cvs/public co gdcmData 1a/ check the full compilation is effective: ./autogen.sh --enable-vtk --enable-python --enable-doxygen make 1b/ check the python test suite is clean: cd gdcmPython export PYTHONPATH=`pwd`/.. ln -s .libs/pygdcm.so _gdcm.so ln -s .libs/vtkgdcmPython.so . python testSuite.py 1c/ check the setup.py distutil script is operational and then validate its produced packages through the test suite, in all following cases - Direct installation: cd $GDCMHOME python setup.py install --prefix=/tmp cd /tmp/lib/python2.2/site-packages/ ln -s $GDCMHOME/gdcmData . export PYTHONPATH=`pwd` cd gdcmPython/ python testSuite.py cd $GDCMHOME \rm -fr build /tmp/lib - Binary distribution: cd $GDCMHOME make clean [ or you might get some complains about the function PyVTKClass_vtkGdcmReaderNew being multiply defined: this is because of the loose definition of vtkSources in setup.py in which the usage of the glob function will produce a link stage with multiple occurences of vtkGdcmReaderPython.o)]. python setup.py bdist --formats=rpm su rpm -Uvh dist/gdcmPython-0.*.i386.rpm cd /usr/lib/python2.2/site-packages/ ln -s $GDCMHOME/gdcmData . cd gdcmPython python testSuite.py rpm --erase gdcmPython - Source distribution and then binary distribution (out of build source distro): cd $GDCMHOME [make clean (see above) ] python setup.py sdist cd /tmp tar zxvf $GDCMHOME/dist/gdcmPython-*.tar.gz cd gdcmPython-*/ python setup.py bdist --formats=rpm cd dist As root, repeat above installation with rpm and test. 2/ Windoze: Notation: we consider that GDCMHOME is the directory obtained from the following checkout. cvs -d:pserver:anonymous@cvs.creatis.insa-lyon.fr:2402/cvs/public login cvs -d:pserver:anonymous@cvs.creatis.insa-lyon.fr:2402/cvs/public co gdcm cd gdcm cvs -d:pserver:anonymous@cvs.creatis.insa-lyon.fr:2402/cvs/public co gdcmData 2a/ compile all projects in the gdcm.dsw workspace. 2b/ set the PYTHONPATH environement variable to the gdcm/gdcmPython directory check the python test suite is clean (python testSuite.py) cd gdcmPython python testSuite.py 2c/ check the setup.py distutil script is operational and then validate its produced packages through the test suite, in all following cases - Direct installation: cd $(GDCMHOME) python setup.py install --prefix="c:\tmp" cd /tmp/Lib/site-packages/ copy $(GDCMDATAHOME) . export PYTHONPATH="c:\tmp\Lib\site-packages" cd gdcmPython/ python testSuite.py remove $(GDCMHOME)\build directory - Binary distribution: cd $(GDCMHOME) python setup.py bdist --formats=wininst install $(GDCMHOME)\dist\gdcmPython-xxx.win32-py2.2.exe cd $(PYTHONHOME)\Lib\site-packages\ Check out gdcmData cd gdcmPython clean up PYTHONPATH python testSuite.py remove $(GDCMHOME)\build directory - Source distribution and then binary distribution (out of build source distro): cd $(GDCMHOME) python setup.py sdist --formats=zip unzip $(GDCMHOME)\dist\gdcmPython-xxx.zip in TMPHOME directory cd $(TMPHOME) cd gdcmPython-*/ python setup.py bdist --formats=wininst As root, repeat above installation with exe and test. * Second stage: preparing packaging: - Update the version number in configure.in (AM_INIT_AUTOMAKE) - Update the version number in setup.py (version entry in setup object). * Third stage: packaging 1/ Un*x 1a/ Packaging at the C/C++/Python level (i.e. exports both libraries, include files and python package) - Make sure you have a ~/.rpmmacros file containing the line %_topdir and that exists and contains the subdirs BUILD, SOURCES, RPMS/i386, SRPMS, SPECS - cd $(GDCMHOME) - ./autogen.sh --enable-vtk --enable-python --enable-doxygen - make release (generates gdcm-x.y.z.tar.gz) - rpm -ta gdcm-x.y.z.tar.gz - collect the result in /RPMS/i386/ and /SRPMS. 1b/ Packaging at the python level: cd $(GDCMHOME) python setup.py sdist python setup.py bdist --formats=rpm collect both source distro and binary distro 2/ Un*x 2a/ Packaging at the python level: cd $(GDCMHOME) python setup.py sdist --formats=zip python setup.py bdist --formats=wininst collect both source distro and binary distro