-
Notifications
You must be signed in to change notification settings - Fork 48
Generating Binaries

For a new Scipion release we generate a "binary" version (a Scipion installation that can be moved
as a whole and work in basically any machine without recompiling). The main difference is the --binary
flag when installing from a fresh download, that will later change the RPATH of the binaries.
In order to get the maximum libc compatibility, it is recommended to generate the binary package in a computer running an old Linux. One option is a Centos-6.5 virtual machine (see below for details).
The following steps summarize how to generate the binaries in a Centos_64 virtual machine.
In your local system, move to the branch from where the bundle will be done (usually it is the master branch)
cd scipion git checkout <branch name>
Ensure that the Version, NickName and DateRelease variables are updated in the scipion script
more scipion
Make a git tag to the last commit in that branch
git tag -a v1.x
We have set up a Centos 6.5 virtual machine to generate the Scipion bundles. This VM is on heisenberg (user scipion) and the following commands are useful to manage it:
List existing VMs
VBoxManage list vms
(machine is called "CentOS_64")
List running vms
VBoxManage list runningvms
Start the VM
VBoxHeadless -startvm "CentOS_64" &
Access the VM from heisenberg (wait a bit till it starts)
ssh -p 2222 xmipp@127.0.0.1
(pass: 'V1rtu4l.')
Stop VM
VBoxManage controlvm CentOS_64 poweroff
It is recommended to stop the VM once bundles are done and copied out of the machine.
Once in the machine where we will do the bundle (usually CentOS_64), we must get the repository. For generating the binaries we do not need the whole repository history (option --depth 1
).
git clone --depth 1 https://github.com/I2PC/scipion.git
If you want to do a bundle from a certain branch (e.g. to make a beta), you need to move to that branch
cd scipion git checkout <branch name> cd ..
python scipion/scripts/tar.py source
This script will create the zipped tar file skipping temporary files and build artifacts. The script should print the tar command used:
tar czf scipion_devel__source.tgz \ --exclude=.git --exclude='*.o' --exclude='*.os' --exclude='*pyc' \ --exclude='*.mrc' --exclude='*.stk' --exclude='*.gz' \ --exclude='software/tmp/*' --exclude='*.scons*' --exclude='config/*.conf' scipion
cd scipion ./scipion config ./scipion install --binary -j 5 cd .. python scipion/scripts/tar.py linux64
In this CentOS machine the ./scipion config
should complain about the MPI variables.
You will need to correct with mpi directories. For example:
MPI_BINDIR = /usr/lib64/openmpi/bin MPI_LIBDIR = /usr/lib64/openmpi/lib MPI_INCLUDE = /usr/include/openmpi-x86_64
cd scipion ./scipion install --no-xmipp --binary -j 5 relion-1.4 ./scipion install --no-xmipp bsoft-1.9.0 chimera ctffind ctffind4 dogpicker eman2.11 frealign motioncorr resmap spider summovie unblur cd .. python scipion/scripts/tar.py linux64-em-packages