[med-svn] [relion] 04/06: Redesign bin + lib + dev packages + dependencies

Roland Fehrenbacher rfehren-guest at moszumanska.debian.org
Thu Oct 16 16:50:32 UTC 2014


This is an automated email from the git hooks/post-receive script.

rfehren-guest pushed a commit to branch master
in repository relion.

commit fa243721224e007c7c5a9684cf8ab3d9650bce17
Author: Roland Fehrenbacher <rf at q-leap.de>
Date:   Wed Oct 15 21:49:31 2014 +0000

    Redesign bin + lib  + dev packages + dependencies
    
    Now 4 packages are built for the 4 combinations:
    
    - simple
    - bare + MPI
    - bare + GUI
    - bare + MPI + GUI
    
    This is necessary because the relion binaries only work with the versions of the
    lib they were built with :(. librelion is unfortunately not designed in a way
    that will allow to build one version of the lib which would properly support
    all configuration cases.
---
 debian/control                                     | 123 ++++++++++++++++-----
 debian/librelion+gui-1.3-1.install                 |   2 +
 debian/librelion+gui-1.3-1.lintian-overrides       |   5 +
 debian/librelion+gui-dev.install                   |   6 +
 debian/librelion+mpi+gui-1.3-1.install             |   2 +
 debian/librelion+mpi+gui-1.3-1.lintian-overrides   |   5 +
 debian/librelion+mpi+gui-dev.install               |   6 +
 ...i-1.3-1.install => librelion+mpi-1.3-1.install} |   0
 debian/librelion+mpi-1.3-1.lintian-overrides       |   5 +
 ...n-mpi-dev.install => librelion+mpi-dev.install} |   1 +
 debian/librelion-1.3-1.install                     |   3 +-
 debian/librelion-dev-common.install                |   1 -
 debian/librelion-dev.install                       |  10 +-
 debian/librelion-mpi-1.3-1.lintian-overrides       |   5 -
 .../{relion-bin-mpi.docs => relion-bin+gui.docs}   |   0
 ...relion-gui.examples => relion-bin+gui.examples} |   0
 debian/relion-bin+gui.install                      |   1 +
 ...relion-bin-mpi.docs => relion-bin+mpi+gui.docs} |   0
 ...on-gui.examples => relion-bin+mpi+gui.examples} |   0
 debian/relion-bin+mpi+gui.install                  |   1 +
 .../{relion-bin-mpi.docs => relion-bin+mpi.docs}   |   0
 debian/relion-bin+mpi.install                      |   1 +
 debian/relion-bin-mpi.install                      |   1 -
 debian/relion-bin.install                          |  20 +---
 debian/relion-gui.install                          |   3 -
 debian/rules                                       |  46 +++++---
 26 files changed, 171 insertions(+), 76 deletions(-)

diff --git a/debian/control b/debian/control
index 067d509..ba1b08d 100644
--- a/debian/control
+++ b/debian/control
@@ -20,9 +20,8 @@ Homepage: http://www2.mrc-lmb.cam.ac.uk/relion/index.php/Main_Page
 Package: relion-bin
 Architecture: i386 amd64
 Depends: ${shlibs:Depends},
-         ${misc:Depends},
-         librelion-1.3-1 (= ${binary:Version}) | librelion-mpi-1.3-1 (= ${binary:Version}),
-Conflicts: relion-bin-mpi
+         ${misc:Depends}
+Conflicts: relion-bin+mpi, relion-bin+gui, relion-bin+mpi+gui
 Description: toolkit for 3D reconstructions in cryo-electron microscopy
  RELION (for REgularised LIkelihood OptimisatioN) is a stand-alone
  computer program for Maximum A Posteriori refinement of (multiple) 3D
@@ -33,13 +32,12 @@ Description: toolkit for 3D reconstructions in cryo-electron microscopy
  .
  relion-bin provides the serial command-line tools
 
-Package: relion-bin-mpi
+Package: relion-bin+mpi
 Architecture: i386 amd64
 Depends: ${shlibs:Depends},
          ${misc:Depends},
-         librelion-mpi-1.3-1 (= ${binary:Version}),
          openmpi-gcc | openmpi-bin
-Conflicts: relion-bin
+Conflicts: relion-bin, relion-bin+gui, relion-bin+mpi+gui
 Description: parallel toolkit for 3D reconstructions in cryo-electron microscopy
  RELION (for REgularised LIkelihood OptimisatioN) is a stand-alone
  computer program for Maximum A Posteriori refinement of (multiple) 3D
@@ -48,15 +46,31 @@ Description: parallel toolkit for 3D reconstructions in cryo-electron microscopy
  RELION provides a GUI, several command-line tools in parallel (MPI) and serial
  versions as well as a C++ API.
  .
- relion-bin-mpi provides the serial and parallel command-line tools based on
+ relion-bin+mpi provides the serial and parallel command-line tools based on
  OpenMPI.
 
-Package: relion-gui
+Package: relion-bin+gui
+Architecture: i386 amd64
+Depends: ${shlibs:Depends},
+         ${misc:Depends}
+Conflicts: relion-bin, relion-bin+mpi, relion-bin+mpi+gui
+Description: parallel toolkit for 3D reconstructions in cryo-electron microscopy
+ RELION (for REgularised LIkelihood OptimisatioN) is a stand-alone
+ computer program for Maximum A Posteriori refinement of (multiple) 3D
+ reconstructions or 2D class averages in cryo-electron microscopy.
+ .
+ RELION provides a GUI, several command-line tools in parallel (MPI) and serial
+ versions as well as a C++ API.
+ .
+ relion-bin+gui provides the serial command-line tools and the graphical user
+ interface.
+
+Package: relion-bin+mpi+gui
 Architecture: i386 amd64
 Depends: ${shlibs:Depends},
          ${misc:Depends},
-         librelion-1.3-1 (= ${binary:Version}) | librelion-mpi-1.3-1 (= ${binary:Version}),
-         relion-bin (= ${binary:Version})
+         openmpi-gcc | openmpi-bin
+Conflicts: relion-bin, relion-bin+mpi, relion-bin+gui
 Description: parallel toolkit for 3D reconstructions in cryo-electron microscopy
  RELION (for REgularised LIkelihood OptimisatioN) is a stand-alone
  computer program for Maximum A Posteriori refinement of (multiple) 3D
@@ -65,12 +79,16 @@ Description: parallel toolkit for 3D reconstructions in cryo-electron microscopy
  RELION provides a GUI, several command-line tools in parallel (MPI) and serial
  versions as well as a C++ API.
  .
- relion-gui provides the graphical user interface.
+ relion-bin+mpi+gui provides the serial and parallel command-line tools as
+ well as the graphical user interface.
 
-Package: librelion-dev-common
+Package: librelion-dev
 Architecture: i386 amd64
 Section: libdevel
-Depends: ${misc:Depends}
+Depends: librelion-1.3-1 (= ${binary:Version}),
+         librelion-dev-common,
+         ${misc:Depends}
+Conflicts: librelion+mpi-dev, librelion+gui-dev, librelion+mpi+gui-dev
 Description: C++ API for RELION (3D reconstructions in cryo-electron microscopy)
  RELION (for REgularised LIkelihood OptimisatioN) is a stand-alone
  computer program for Maximum A Posteriori refinement of (multiple) 3D
@@ -79,15 +97,32 @@ Description: C++ API for RELION (3D reconstructions in cryo-electron microscopy)
  RELION provides a GUI, several command-line tools in parallel (MPI) and serial
  versions as well as a C++ API.
  .
- This is the developers API package including only the header files.
+ This is the developers API package for use without GUI and MPI.
 
-Package: librelion-dev
+Package: librelion+mpi-dev
 Architecture: i386 amd64
 Section: libdevel
-Depends: librelion-1.3-1 (= ${binary:Version}),
+Depends: librelion+mpi-1.3-1 (= ${binary:Version}),
+         librelion-dev-common,
+         ${misc:Depends}
+Conflicts: librelion-dev, librelion+gui-dev, librelion+mpi+gui-dev
+Description: C++ API for RELION (3D reconstructions in cryo-electron microscopy)
+ RELION (for REgularised LIkelihood OptimisatioN) is a stand-alone
+ computer program for Maximum A Posteriori refinement of (multiple) 3D
+ reconstructions or 2D class averages in cryo-electron microscopy.
+ .
+ RELION provides a GUI, several command-line tools in parallel (MPI) and serial
+ versions as well as a C++ API.
+ .
+ This is the developers API package for use with MPI but without GUI.
+
+Package: librelion+gui-dev
+Architecture: i386 amd64
+Section: libdevel
+Depends: librelion+gui-1.3-1 (= ${binary:Version}),
          librelion-dev-common,
          ${misc:Depends}
-Conflicts: librelion-mpi-dev
+Conflicts: librelion-dev, librelion+mpi-dev, librelion+mpi+gui-dev
 Description: C++ API for RELION (3D reconstructions in cryo-electron microscopy)
  RELION (for REgularised LIkelihood OptimisatioN) is a stand-alone
  computer program for Maximum A Posteriori refinement of (multiple) 3D
@@ -96,15 +131,15 @@ Description: C++ API for RELION (3D reconstructions in cryo-electron microscopy)
  RELION provides a GUI, several command-line tools in parallel (MPI) and serial
  versions as well as a C++ API.
  .
- This is the developers API package.
+ This is the developers API package for use with GUI but without MPI.
 
-Package: librelion-mpi-dev
+Package: librelion+mpi+gui-dev
 Architecture: i386 amd64
 Section: libdevel
-Depends: librelion-mpi-1.3-1 (= ${binary:Version}),
+Depends: librelion+mpi+gui-1.3-1 (= ${binary:Version}),
          librelion-dev-common,
          ${misc:Depends}
-Conflicts: librelion-dev
+Conflicts: librelion-dev, librelion+mpi-dev, librelion+gui-dev
 Description: C++ API for RELION (3D reconstructions in cryo-electron microscopy)
  RELION (for REgularised LIkelihood OptimisatioN) is a stand-alone
  computer program for Maximum A Posteriori refinement of (multiple) 3D
@@ -113,7 +148,7 @@ Description: C++ API for RELION (3D reconstructions in cryo-electron microscopy)
  RELION provides a GUI, several command-line tools in parallel (MPI) and serial
  versions as well as a C++ API.
  .
- This is the developers API package based on OpenMPI.
+ This is the developers API package for use with MPI and GUI.
 
 Package: librelion-1.3-1
 Architecture: i386 amd64
@@ -122,7 +157,7 @@ Pre-Depends: ${misc:Pre-Depends}
 Multi-Arch: same
 Depends: ${shlibs:Depends},
          ${misc:Depends}
-Conflicts: librelion-mpi-1.3-1
+Conflicts: librelion+mpi-1.3-1, librelion+gui-1.3-1, librelion+mpi+gui-1.3-1
 Description: RELION dynnamic library (3D reconstructions in cryo-electron microscopy)
  RELION (for REgularised LIkelihood OptimisatioN) is a stand-alone
  computer program for Maximum A Posteriori refinement of (multiple) 3D
@@ -133,14 +168,50 @@ Description: RELION dynnamic library (3D reconstructions in cryo-electron micros
  .
  This is the runtime library.
 
-Package: librelion-mpi-1.3-1
+Package: librelion+mpi-1.3-1
+Architecture: i386 amd64
+Section: libs
+Pre-Depends: ${misc:Pre-Depends}
+Multi-Arch: same
+Depends: ${shlibs:Depends},
+         ${misc:Depends}
+Conflicts: librelion-1.3-1, librelion+gui-1.3-1, librelion+mpi+gui-1.3-1
+Description: RELION dynnamic library (3D reconstructions in cryo-electron microscopy)
+ RELION (for REgularised LIkelihood OptimisatioN) is a stand-alone
+ computer program for Maximum A Posteriori refinement of (multiple) 3D
+ reconstructions or 2D class averages in cryo-electron microscopy.
+ .
+ RELION provides a GUI, several command-line tools in parallel (MPI) and serial
+ versions as well as a C++ API.
+ .
+ This is the runtime library for use with MPI but without GUI.
+
+Package: librelion+gui-1.3-1
+Architecture: i386 amd64
+Section: libs
+Pre-Depends: ${misc:Pre-Depends}
+Multi-Arch: same
+Depends: ${shlibs:Depends},
+         ${misc:Depends}
+Conflicts: librelion-1.3-1, librelion+mpi-1.3-1, librelion+mpi+gui-1.3-1
+Description: RELION dynnamic library (3D reconstructions in cryo-electron microscopy)
+ RELION (for REgularised LIkelihood OptimisatioN) is a stand-alone
+ computer program for Maximum A Posteriori refinement of (multiple) 3D
+ reconstructions or 2D class averages in cryo-electron microscopy.
+ .
+ RELION provides a GUI, several command-line tools in parallel (MPI) and serial
+ versions as well as a C++ API.
+ .
+ This is the runtime library for use with GUI but without MPI.
+
+Package: librelion+mpi+gui-1.3-1
 Architecture: i386 amd64
 Section: libs
 Pre-Depends: ${misc:Pre-Depends}
 Multi-Arch: same
 Depends: ${shlibs:Depends},
          ${misc:Depends}
-Conflicts: librelion-1.3-1
+Conflicts: librelion-1.3-1, librelion+mpi-1.3-1, librelion+gui-1.3-1
 Description: RELION dynnamic library (3D reconstructions in cryo-electron microscopy)
  RELION (for REgularised LIkelihood OptimisatioN) is a stand-alone
  computer program for Maximum A Posteriori refinement of (multiple) 3D
@@ -149,4 +220,4 @@ Description: RELION dynnamic library (3D reconstructions in cryo-electron micros
  RELION provides a GUI, several command-line tools in parallel (MPI) and serial
  versions as well as a C++ API.
  .
- This is the runtime library based on OpenMPI.
+ This is the runtime library for use with MPI and GUI.
diff --git a/debian/librelion+gui-1.3-1.install b/debian/librelion+gui-1.3-1.install
new file mode 100755
index 0000000..785dcb6
--- /dev/null
+++ b/debian/librelion+gui-1.3-1.install
@@ -0,0 +1,2 @@
+#! /usr/bin/dh-exec
+gui/usr/lib/${DEB_HOST_MULTIARCH}/librelion*.so.* usr/lib/${DEB_HOST_MULTIARCH}/
diff --git a/debian/librelion+gui-1.3-1.lintian-overrides b/debian/librelion+gui-1.3-1.lintian-overrides
new file mode 100644
index 0000000..54c1a62
--- /dev/null
+++ b/debian/librelion+gui-1.3-1.lintian-overrides
@@ -0,0 +1,5 @@
+# librelion+gui-1.3-1 contains the same library names as librelion-1.3-1
+# just that they are built with GUI support. The build system doesn't set
+# a different name/soname for these libs. They are packaged as alternative
+# versions (with or without GUI support) and conflict.
+librelion+gui-1.3-1 binary: package-name-doesnt-match-sonames librelion-1.3-1
diff --git a/debian/librelion+gui-dev.install b/debian/librelion+gui-dev.install
new file mode 100755
index 0000000..2894d19
--- /dev/null
+++ b/debian/librelion+gui-dev.install
@@ -0,0 +1,6 @@
+#! /usr/bin/dh-exec
+gui/usr/lib/${DEB_HOST_MULTIARCH}/librelion*.a usr/lib/${DEB_HOST_MULTIARCH}/
+gui/usr/lib/${DEB_HOST_MULTIARCH}/librelion*.la usr/lib/${DEB_HOST_MULTIARCH}/
+gui/usr/lib/${DEB_HOST_MULTIARCH}/librelion*.so usr/lib/${DEB_HOST_MULTIARCH}/
+gui/usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig usr/lib/${DEB_HOST_MULTIARCH}/
+gui/usr/include usr/include
diff --git a/debian/librelion+mpi+gui-1.3-1.install b/debian/librelion+mpi+gui-1.3-1.install
new file mode 100755
index 0000000..f0eea2a
--- /dev/null
+++ b/debian/librelion+mpi+gui-1.3-1.install
@@ -0,0 +1,2 @@
+#! /usr/bin/dh-exec
+mpi+gui/usr/lib/${DEB_HOST_MULTIARCH}/librelion*.so.* usr/lib/${DEB_HOST_MULTIARCH}/
diff --git a/debian/librelion+mpi+gui-1.3-1.lintian-overrides b/debian/librelion+mpi+gui-1.3-1.lintian-overrides
new file mode 100644
index 0000000..cf5ee64
--- /dev/null
+++ b/debian/librelion+mpi+gui-1.3-1.lintian-overrides
@@ -0,0 +1,5 @@
+# librelion+mpi+gui-1.3-1 contains the same library names as librelion-1.3-1
+# just that they are built with MPI and GUI support. The build system doesn't set
+# a different name/soname for these libs. They are packaged as alternative
+# versions (with or without mpi/GUI support) and conflict.
+librelion+mpi+gui-1.3-1 binary: package-name-doesnt-match-sonames librelion-1.3-1
diff --git a/debian/librelion+mpi+gui-dev.install b/debian/librelion+mpi+gui-dev.install
new file mode 100755
index 0000000..f261bea
--- /dev/null
+++ b/debian/librelion+mpi+gui-dev.install
@@ -0,0 +1,6 @@
+#! /usr/bin/dh-exec
+mpi+gui/usr/lib/${DEB_HOST_MULTIARCH}/librelion*.a usr/lib/${DEB_HOST_MULTIARCH}/
+mpi+gui/usr/lib/${DEB_HOST_MULTIARCH}/librelion*.la usr/lib/${DEB_HOST_MULTIARCH}/
+mpi+gui/usr/lib/${DEB_HOST_MULTIARCH}/librelion*.so usr/lib/${DEB_HOST_MULTIARCH}/
+mpi+gui/usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig usr/lib/${DEB_HOST_MULTIARCH}/
+mpi+gui/usr/include usr/include
diff --git a/debian/librelion-mpi-1.3-1.install b/debian/librelion+mpi-1.3-1.install
similarity index 100%
rename from debian/librelion-mpi-1.3-1.install
rename to debian/librelion+mpi-1.3-1.install
diff --git a/debian/librelion+mpi-1.3-1.lintian-overrides b/debian/librelion+mpi-1.3-1.lintian-overrides
new file mode 100644
index 0000000..cca7d05
--- /dev/null
+++ b/debian/librelion+mpi-1.3-1.lintian-overrides
@@ -0,0 +1,5 @@
+# librelion+mpi-1.3-1 contains the same library names as librelion-1.3-1
+# just that they are built with MPI support. The build system doesn't set
+# a different name/soname for these libs. They are packaged as alternative
+# versions (with or without mpi support) and conflict.
+librelion+mpi-1.3-1 binary: package-name-doesnt-match-sonames librelion-1.3-1
diff --git a/debian/librelion-mpi-dev.install b/debian/librelion+mpi-dev.install
similarity index 92%
rename from debian/librelion-mpi-dev.install
rename to debian/librelion+mpi-dev.install
index 048e2a2..dbc6925 100755
--- a/debian/librelion-mpi-dev.install
+++ b/debian/librelion+mpi-dev.install
@@ -3,3 +3,4 @@ mpi/usr/lib/${DEB_HOST_MULTIARCH}/librelion*.a usr/lib/${DEB_HOST_MULTIARCH}/
 mpi/usr/lib/${DEB_HOST_MULTIARCH}/librelion*.la usr/lib/${DEB_HOST_MULTIARCH}/
 mpi/usr/lib/${DEB_HOST_MULTIARCH}/librelion*.so usr/lib/${DEB_HOST_MULTIARCH}/
 mpi/usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig usr/lib/${DEB_HOST_MULTIARCH}/
+mpi/usr/include usr/include
diff --git a/debian/librelion-1.3-1.install b/debian/librelion-1.3-1.install
old mode 100644
new mode 100755
index c03ddb7..8a0f6b9
--- a/debian/librelion-1.3-1.install
+++ b/debian/librelion-1.3-1.install
@@ -1 +1,2 @@
-usr/lib/*/librelion*.so.*
+#! /usr/bin/dh-exec
+simple/usr/lib/${DEB_HOST_MULTIARCH}/librelion*.so.* usr/lib/${DEB_HOST_MULTIARCH}/
diff --git a/debian/librelion-dev-common.install b/debian/librelion-dev-common.install
deleted file mode 100644
index e43b95c..0000000
--- a/debian/librelion-dev-common.install
+++ /dev/null
@@ -1 +0,0 @@
-usr/include
diff --git a/debian/librelion-dev.install b/debian/librelion-dev.install
old mode 100644
new mode 100755
index 644cf23..a5af184
--- a/debian/librelion-dev.install
+++ b/debian/librelion-dev.install
@@ -1,4 +1,6 @@
-usr/lib/*/librelion*.a
-usr/lib/*/librelion*.la
-usr/lib/*/librelion*.so
-usr/lib/*/pkgconfig
+#! /usr/bin/dh-exec
+simple/usr/lib/${DEB_HOST_MULTIARCH}/librelion*.a usr/lib/${DEB_HOST_MULTIARCH}/
+simple/usr/lib/${DEB_HOST_MULTIARCH}/librelion*.la usr/lib/${DEB_HOST_MULTIARCH}/
+simple/usr/lib/${DEB_HOST_MULTIARCH}/librelion*.so usr/lib/${DEB_HOST_MULTIARCH}/
+simple/usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig usr/lib/${DEB_HOST_MULTIARCH}/
+simple/usr/include usr/include
diff --git a/debian/librelion-mpi-1.3-1.lintian-overrides b/debian/librelion-mpi-1.3-1.lintian-overrides
deleted file mode 100644
index 04883b5..0000000
--- a/debian/librelion-mpi-1.3-1.lintian-overrides
+++ /dev/null
@@ -1,5 +0,0 @@
-# librelion-mpi-1.3-1 contains the same library names as librelion-1.3-1
-# just that they are built with MPI support. The build system doesn't set
-# a different name/soname for these libs. They are packaged as alternative
-# versions (with or without mpi) and conflict.
-librelion-mpi-1.3-1 binary: package-name-doesnt-match-sonames librelion-1.3-1
diff --git a/debian/relion-bin-mpi.docs b/debian/relion-bin+gui.docs
similarity index 100%
copy from debian/relion-bin-mpi.docs
copy to debian/relion-bin+gui.docs
diff --git a/debian/relion-gui.examples b/debian/relion-bin+gui.examples
similarity index 100%
copy from debian/relion-gui.examples
copy to debian/relion-bin+gui.examples
diff --git a/debian/relion-bin+gui.install b/debian/relion-bin+gui.install
new file mode 100644
index 0000000..8fd9a7e
--- /dev/null
+++ b/debian/relion-bin+gui.install
@@ -0,0 +1 @@
+gui/usr/bin/* usr/bin/
diff --git a/debian/relion-bin-mpi.docs b/debian/relion-bin+mpi+gui.docs
similarity index 100%
copy from debian/relion-bin-mpi.docs
copy to debian/relion-bin+mpi+gui.docs
diff --git a/debian/relion-gui.examples b/debian/relion-bin+mpi+gui.examples
similarity index 100%
rename from debian/relion-gui.examples
rename to debian/relion-bin+mpi+gui.examples
diff --git a/debian/relion-bin+mpi+gui.install b/debian/relion-bin+mpi+gui.install
new file mode 100644
index 0000000..fbbec28
--- /dev/null
+++ b/debian/relion-bin+mpi+gui.install
@@ -0,0 +1 @@
+mpi+gui/usr/bin/* usr/bin/
diff --git a/debian/relion-bin-mpi.docs b/debian/relion-bin+mpi.docs
similarity index 100%
rename from debian/relion-bin-mpi.docs
rename to debian/relion-bin+mpi.docs
diff --git a/debian/relion-bin+mpi.install b/debian/relion-bin+mpi.install
new file mode 100644
index 0000000..e0d3752
--- /dev/null
+++ b/debian/relion-bin+mpi.install
@@ -0,0 +1 @@
+mpi/usr/bin/* usr/bin/
diff --git a/debian/relion-bin-mpi.install b/debian/relion-bin-mpi.install
deleted file mode 100644
index 50f4cbd..0000000
--- a/debian/relion-bin-mpi.install
+++ /dev/null
@@ -1 +0,0 @@
-mpi/usr/bin/*_mpi usr/bin/
diff --git a/debian/relion-bin.install b/debian/relion-bin.install
index e204ce1..b8e4466 100644
--- a/debian/relion-bin.install
+++ b/debian/relion-bin.install
@@ -1,19 +1 @@
-usr/bin/relion_autopick
-usr/bin/relion_find_tiltpairs
-usr/bin/relion_image_handler
-usr/bin/relion_mask_create
-usr/bin/relion_particle_polish
-usr/bin/relion_particle_sort
-usr/bin/relion_postprocess
-usr/bin/relion_preprocess
-usr/bin/relion_project
-usr/bin/relion_reconstruct
-usr/bin/relion_refine
-usr/bin/relion_run_ctffind
-usr/bin/relion_stack_create
-usr/bin/relion_star_datablock_ctfdat
-usr/bin/relion_star_datablock_singlefiles
-usr/bin/relion_star_datablock_stack
-usr/bin/relion_star_loopheader
-usr/bin/relion_star_plottable
-usr/bin/relion_star_printtable
+simple/usr/bin/* usr/bin/
diff --git a/debian/relion-gui.install b/debian/relion-gui.install
deleted file mode 100644
index 23e2a59..0000000
--- a/debian/relion-gui.install
+++ /dev/null
@@ -1,3 +0,0 @@
-gui/usr/bin/relion_display usr/bin/
-gui/usr/bin/relion_maingui usr/bin/
-gui/usr/bin/relion_manualpick usr/bin/
diff --git a/debian/rules b/debian/rules
index 16df82a..205a16d 100755
--- a/debian/rules
+++ b/debian/rules
@@ -37,19 +37,29 @@ CONFIGURE_COMMON := dh_auto_configure -- \
 override_dh_auto_configure:
 
 override_dh_auto_build:
-	# First configure/build/install GUI version
+	# We need to build 4 different versions for the 4 different binary
+	# packages. This is necessary because unfortunately the binaries work
+	# only with the exact same librelion they were built with.
+	# First no MPI, no GUI (for relion-bin) ...
+	$(CONFIGURE_COMMON) --disable-gui
+	make $(MAKE_-J); make install prefix=$(CURDIR)/debian/tmp/simple/usr
+	make clean
+	# ... then add MPI (for relion-bin+mpi) ...
+	MPICXX=$(MPICXX) $(CONFIGURE_COMMON) --enable-mpi --disable-gui
+	make $(MAKE_-J); make install prefix=$(CURDIR)/debian/tmp/mpi/usr
+	make clean
+	# ... then add GUI (for relion-bin+gui) ...
 	$(CONFIGURE_COMMON) --enable-gui \
 	  CPPFLAGS="$$(fltk-config --cxxflags)" \
 	  LDFLAGS="$$(fltk-config --ldflags)"
-	make $(MAKE_-J); make install prefix=$(CURDIR)/debian/tmp/gui/usr; \
-	  make clean
-	# ... then mpitools ...
-	MPICXX=$(MPICXX) $(CONFIGURE_COMMON) --enable-mpi --disable-gui
-	make $(MAKE_-J); make install prefix=$(CURDIR)/debian/tmp/mpi/usr; \
-	  make clean
-	# ... then clitools ...
-	$(CONFIGURE_COMMON) --disable-gui
-	make $(MAKE_-J); make install prefix=$(CURDIR)/debian/tmp/usr
+	make $(MAKE_-J); make install prefix=$(CURDIR)/debian/tmp/gui/usr
+	make clean
+	# ... finally add MPI + GUI (for librelion-bin+mpi+gui)
+	MPICXX=$(MPICXX) $(CONFIGURE_COMMON) --enable-mpi --enable-gui \
+	  CPPFLAGS="$$(fltk-config --cxxflags)" \
+	  LDFLAGS="$$(fltk-config --ldflags)"
+	make $(MAKE_-J); make install prefix=$(CURDIR)/debian/tmp/mpi+gui/usr
+	make clean
 	# clear dependency_libs field in *.la files
 	# see lintian non-empty-dependency_libs-in-la-file for reference
 	sed -i "/dependency_libs/ s/'.*'/''/" $$(find debian/tmp/ -name '*.la')
@@ -59,18 +69,22 @@ override_dh_prep:
 	dh_prep -X debian/tmp
 
 override_dh_auto_install:
+
+override_dh_install:
 	dh_install
+	# relion_qsub.csh should just go to GUI d/examples
+	find debian/relion-bi*/usr/bin -name relion_qsub.csh -delete
 
-override_dh_shlibdeps: pkgs=relion-gui relion-bin relion-bin-mpi
+override_dh_shlibdeps: pkgs=relion-bin relion-bin+mpi relion-bin+gui \
+ relion-bin+mpi+gui 
 override_dh_shlibdeps:
+	# First for all packages apart from relion-bin*
 	dh_shlibdeps -- $(patsubst %,-x%,$(pkgs))
-	# Override substvars for gui and bin packages to make sure they use
-	# the correct lib package
+	# Now for the relion-bin* packages
 	for pkg in $(pkgs); do \
-	  mpi=""; [ "$$pkg" = "relion-bin-mpi" ] && mpi="-mpi"; \
-	  echo -e "\n\n-- Info: Run dpkg-shlibdeps for $$pkg --\n"; \
+	  echo -e "\n-- Info: Run dpkg-shlibdeps for $$pkg --\n"; \
 	  dpkg-shlibdeps -e debian/$${pkg}/usr/bin/relion_* \
-	    -Sdebian/lib-relion$${mpi}$(RELION_API_VERSION)-$(RELION_SO_CUR_INTERFACE) \
+	    -Sdebian/librelion$${pkg#relion-bin}-$(RELION_API_VERSION)-$(RELION_SO_CUR_INTERFACE) \
 	    -Tdebian/$${pkg}.substvars; \
 	done
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-med/relion.git



More information about the debian-med-commit mailing list