Using git to get mxCuBE ready to install on your beamlines
Current situation : how to get mxCuBE ? This is confusing ! SVN repository on http://blissgarden.org RPM packages (blissbuilder/blissinstaller) Files on http://ftp.esrf.eu Even by email (tar.gz !) And also it has problems : Missing dependencies (e.g PyChooch) No examples for XML files Obstacle to any collaboration M. Guijarro / BCU / ISDD – mxCuBE meeting, 22-09-2010
Solutions Let’s stop relying on RPMs (causes problems with binaries on non-ESRF compatible platforms) Let’s use the new forge available for the whole ESRF campus instead of blissgarden.org (maintained by real sysadmins, enhanced reliability) Let’s have a single mxCuBE repository, with all dependencies + XML files examples Let’s use a decentralized RCS (helps people to work on different branches easily, more powerful) … and also : really use the same repository for the ESRF version of mxCuBE ! M. Guijarro / BCU / ISDD – mxCuBE meeting, 22-09-2010
Includes issue tracker, mailing-list, files sharing… The new Forge : http://forge.epn-campus.eu Feel free to register There is a mxCuBE project Includes issue tracker, mailing-list, files sharing… M. Guijarro / BCU / ISDD – mxCuBE meeting, 22-09-2010
Git Repository One single repository for mxCuBE Dependencies are handled as submodules (i.e links to other Git repositories) Please read the Git manual! And keep it under your pillow… mxCuBE mxCuBE.gui HardwareObjects XML examples PyChooch … Bliss Framework Hardware Repository Qub PyMca SpecClient Bricks HW Objects M. Guijarro / BCU / ISDD – mxCuBE meeting, 22-09-2010
How to get it ? (1/2) [guijarro@linguijarro ~]$ cd /tmp 1st step: let’s clone the mxCuBE repository How to get it ? (1/2) [guijarro@linguijarro ~]$ cd /tmp [guijarro@linguijarro tmp]$ git clone git://git.epn-campus.eu/repositories/mxCuBE warning: templates not found /bliss/users/guijarro/tmp/git/git-1.7.0.4/../share/ git-core/templates Initialized empty Git repository in /tmp/mxCuBE/.git/ remote: Counting objects: 265, done. remote: Compressing objects: 100% (154/154), done. remote: Total 265 (delta 121), reused 204 (delta 106) Receiving objects: 100% (265/265), 272.59 KiB, done. Resolving deltas: 100% (121/121), done. [guijarro@linguijarro tmp]$ cd mxCuBE [guijarro@linguijarro mxCuBE]$ git submodule init Submodule 'BlissFramework' (git://git.epn-campus.eu/repositories/BlissFramework) registered for path 'BlissFramework' Submodule 'HardwareRepository' (git://git.epn-campus.eu/repositories/HardwareRepository) registered for path 'HardwareRepository' Submodule 'HardwareRepositoryServer' (git://git.epn-campus.eu/repositories/HardwareRepositoryServer) registered for path 'HardwareRepositoryServer' Submodule 'PyMca' (git://git.epn-campus.eu/repositories/PyMca.git) registered for path 'PyMca' Submodule 'Qub' (git://git.epn-campus.eu/repositories/Qub) registered for path 'Qub' Submodule 'SpecClient' (git://git.epn-campus.eu/repositories/SpecClient) registered for path 'SpecClient‘ [guijarro@linguijarro mxCuBE]$ git submodule update 2nd step: retrieving submodules M. Guijarro / BCU / ISDD – mxCuBE meeting, 22-09-2010
How to get it ? (2/2) 2nd-level submodules need to be initialized and updated mxCuBE Bliss Framework Hardware Repository Qub PyMca SpecClient Bricks HW Objects [guijarro@linguijarro mxCuBE]$ cd BlissFramework [guijarro@linguijarro BlissFramework]$ git submodule init [guijarro@linguijarro BlissFramework]$ git submodule update … [guijarro@linguijarro BlissFramework]$ cd ../HardwareRepository [guijarro@linguijarro HardwareRepository]$ git submodule init [guijarro@linguijarro HardwareRepository]$ git submodule update M. Guijarro / BCU / ISDD – mxCuBE meeting, 22-09-2010
(by default PyChooch.so file will go mxCuBE/lib/python) Getting started (1/2) 0) Pre-requisities: Python 2.5/6/7, PyQt3, PyQwt5, libgsl 1) Compiling & installing PyChooch extension [guijarro@linguijarro mxCuBE]$ cd PyChooch [guijarro@linguijarro PyChooch]$ python setup.py install (by default PyChooch.so file will go mxCuBE/lib/python) 2) Compiling & installing Qub [guijarro@linguijarro mxCuBE]$ cd Qub/CTools [guijarro@linguijarro Qub/CTools]$ python setup.py install install-lib=./lib The following additional steps are required for those extensions: pixmaptools, opencv, qwttools (replace X with the extension name) [guijarro@linguijarro Qub/CTools]$ cd X [guijarro@linguijarro Qub/Ctools/X]$ python configure.py; make [guijarro@linguijarro Qub/Ctools/X]$ cp X.so ../lib/ M. Guijarro / BCU / ISDD – mxCuBE meeting, 22-09-2010
Getting started (2/2) 3) PyMca Now let’s run mxCuBE : [guijarro@linguijarro mxCuBE]$ cd PyMca [guijarro@linguijarro PyMca]$ python setup.py install install-lib=./lib Now let’s run mxCuBE : [guijarro@linguijarro mxCuBE]$ hwrServer --daemon [guijarro@linguijarro mxCuBE]$ mxCuBE M. Guijarro / BCU / ISDD – mxCuBE meeting, 22-09-2010
Thanks for your attention ! That’s all : Thanks for your attention ! Any question ? M. Guijarro / BCU / ISDD – mxCuBE meeting, 22-09-2010