Bug#587007: salome: Porting patches to Salome 5.1.4 for upstream inclusion
Hi Adam, First, apologies for the delay in getting back to you on this. I was waiting for an opportunity to sink a good amount of time into reviewing your patches, and it didn't come, until I realized this morning that I had missed your deadline by a day. :-( No problem, I understand that you are very busy. Thank you very much for the review. On Thu, 2010-09-23 at 12:00 +0200, Andre Espaze wrote: Hello Adam, Then what would be the relevant place for submitting patches of the remaining modules? Is it a good idea to send them to the bugtracker like I did for the kernel? Or could I let them on the Mercurial repository of http://www.python-science.org/project/salome-packaging? I think the Debian bug tracker is better for me, I find it easier to see them and give feedback this way, and it's more of a standard Debian way of doing things. I have enclosed in the 'salome-packaging-0.2.tar.gz' archive the patches updated to the 5.1.4 version for the KERNEL, GUI, GEOM, MED, SMESH and VISU modules. Once I get your agreement, I plan to send that archive to upstream because I am around half way of the porting task, with around 50 patches on 100. Moreover most of the essential modules are working. My concern is now to know which kind of patches are going to be accepted before continuing. The patches come with a documentation explaining briefly their meaning. Then the steps on how to build and run every module on Debian sid are described. I did not use the tools in the Debian packaging system (debian/rules, fakeroot, git-buildpackage, quilt) in order to ease the review process. Instead, I imitate the building process by listing commands. By that way, I hope that it will be possible to discuss with upstream on a specific point by directly using the commands provided by their build system. Thank you for taking on this huge task! I can see that you've put an enormous amount of work into making the patches really helpful for upstream. My only concern about the whole thing is that the -debian-dirs patches right now are not in good shape for upstream, so I think we should figure out how to make them more generic using libdir and bindir before sending them in. This will be very tricky for source code files, like C++ code. The best way to do this will probably be to use -DBINDIR=... and -DLIBDIR=... where those are substituted in the Makefile by configure. Ok, it sounds good. I'll see about converting those patches in this way. In the meantime, I think everything else is ready to go in. Thanks again for a great piece of work, and apologies again for the delay in getting this feedback to you. Are you working on those patches or may I try to help you? From now, I understand that I should wait a little more before sending the first release. By the end of the month, I can also send patches that are ready to go in if you would prefer that option. Best regards, André -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#598421: CVE-2010-3377 -- security problem in a few files
Hello Adam, There's a security bug in the Debian package for salome due to insecure handling of LD_LIBRARY_PATH in a couple of places, bug 598421. To fix it, I've patched my runSalome script (this does not affect upstream runSalome), and several upstream files, and pushed the fixes to the alioth repository. Can you please forward upstream the *-secure-library-path.patch files (*=gui, med, yacs)? Please mention that it fixes Common Vulnerabilities and Exposures issue ID CVE-2010-3377 , as mentioned in the patches. Ok, I plan to submit them with the report on the 5.1.4 version. In case it is more urgent, just let me know. All the best, André -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#587007: salome: Porting patches to Salome 5.1.4 for upstream inclusion
Hello Adam, Then what would be the relevant place for submitting patches of the remaining modules? Is it a good idea to send them to the bugtracker like I did for the kernel? Or could I let them on the Mercurial repository of http://www.python-science.org/project/salome-packaging? I think the Debian bug tracker is better for me, I find it easier to see them and give feedback this way, and it's more of a standard Debian way of doing things. I have enclosed in the 'salome-packaging-0.2.tar.gz' archive the patches updated to the 5.1.4 version for the KERNEL, GUI, GEOM, MED, SMESH and VISU modules. Once I get your agreement, I plan to send that archive to upstream because I am around half way of the porting task, with around 50 patches on 100. Moreover most of the essential modules are working. My concern is now to know which kind of patches are going to be accepted before continuing. The patches come with a documentation explaining briefly their meaning. Then the steps on how to build and run every module on Debian sid are described. I did not use the tools in the Debian packaging system (debian/rules, fakeroot, git-buildpackage, quilt) in order to ease the review process. Instead, I imitate the building process by listing commands. By that way, I hope that it will be possible to discuss with upstream on a specific point by directly using the commands provided by their build system. I am open on any of your feedback concerning patches or documentation. Beyond getting the current patches merged into upstream code, my goal is to find how to submit changes that can gain acceptance. All the best, André salome-packaging-0.2.tar.gz Description: Binary data
Bug#595909: salome-dev: add path to adm_local files
Hi Adam, On Thu, 2010-09-16 at 09:48 +0200, Andre Espaze wrote: On Tue, Sep 14, 2010 at 06:20:34PM -0400, Adam C Powell IV wrote: On Tue, 2010-09-14 at 11:05 +0200, Andre Espaze wrote: Package: salome-dev Version: 5.1.3-11 Severity: wishlist It will be nice to include adm_local directory for each salome base modules in the salome-dev package. This will greatly simplify the developpement and packaging of new plugins since the configuration step almost refers to MODULE/adm_local. Otherwise we ave to include some MODULE_SRC in the src package for the plugins (see what I have done for salome-code-aster on svn debian science) This is a good idea. Right now the package puts the .m4 files all together in one big salome.m4 in /usr/share/aclocal (because check_KERNEL.m4 and check_GUI.m4 are far too generic names). But something like /usr/share/salome/[module]/adm_local or just /usr/share/salome/adm_local could include more than just the .m4 files. /usr/share/salome/adm_local is the easiest place to put these. Will that work for you? I would rather try to stick as much as possible to the original installation. So my feelings are that adm_local from MODULE_SRC should be included in /usr/share/salome/MODULE_SRC. It's pretty easy either way. André, as someone closer to upstream, what do you think makes more sense? Right now, all of the adm_local files install into /usr/adm_local, which violates the FHS. Should they go into a single directory under /usr/share/salome or into separate module directories? To my point of view, installing the .m4 files in separate module directories like /usr/share/salome/MODULE_SRC makes more sense with upstream packaging philosophy. I understand the clearness of a single directory like /usr/share/salome/adm_local but I fear conflicts because all modules do not necessarily share the same macro for a same configuration check. Well, I think it's a problem that they don't use the same macro in some cases, like GUI checks... But I'll go ahead and do it this way anyway. Just for information, the 'geom-use-gui-check.patch' patch is broken on the 5.1.4 version because the macros 'CHECK_SALOME_GUI' and 'CHECK_CORBA_IN_GUI' are now defined in the check_GUI.m4 file of the GEOM module. Yeah, this bugged me, so I tried to get them all to work with the version in the GUI module as you suggested. From now my solution is to give the path '${GUI_ROOT_DIR}/adm_local/unix/config_files' as the first argument to aclocal in build_configure (but it could be a problem in case a macro really needs to be overloaded locally). Finally I spoke too soon because the modified 'check_GUI.m4' from the GUI module will be overwritten when installing GEOM (I discovered this problem only when porting MED). My current workaround is to overwrite every 'check_GUI.m4' but of course a better solution is needed. Okay. Aster and Saturne will need to also use ${GUI_ROOT_DIR}/share/salome/${MODULE}_SRC/adm_local/unix/config_files - is this path set somewhere, so we can include both of these? I did not find this path. Do you plan to modify 'debian/rules' in the installation steps or patch the autotools process? But I may have misunderstood your idea. All the best, André -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#587007: salome: Porting patches to Salome 5.1.4 for upstream inclusion
Hi Adam, After a long break, I am back on the Salome packaging. Welcome back! I hope you enjoyed your break. Sure, it was really nice. I have enclosed most of the patches for building the KERNEL module with the 5.1.4 version. Moreover a start of the documentation that I plan to send for patches submission can be found here: https://hg.python-science.org/salome-packaging/file/d60a8c2112dc/debian-patch-review.rst However I wanted to discuss with you on 3 patches that I did not include because I thought that they concern Debian choices: - kernel-config-extra.patch Definitely Debian-only - kernel-doc-images-svg.patch Upstream probably won't accept, I haven't seen a big reduction in the documentation size with this patch (haven't tested though). Ok, so I will make a try for this one too. - kernel-install-without-docs.patch This one is debatable. I think that when most users do make make install they don't want to go through the entire documentation building and installation process, so I would ask and see whether they would be willing to accept this. It certainly saves us a *ton* of build time and disk space on the autobuilders, as when they only build for their own arch, there is no reason to build and install the documentation! Ok, I will try to submit it in that case, saying that is debatable (like kernel-doc-images-svg.patch). and this one does not make sense alone because the command is then renamed in 'debian/rules': - kernel-python-noexec.patch I agree. In case you have arguments or ideas about how to submit them, I will include them in the report. Now I plan to continue on the following modules. I have a couple more which perhaps should not go upstream. kernel-debian-dirs.patch is obviouis; Yes but I added it because it is required for illustrating how Salome is built on Debian and moreover it shows that hard coded paths are potentially a problem for custom module installations. In case upstream is interested by such change, I plan to improve it. also, kernel-mpi-libs.patch uses the Debian-specific MPI symlink name libmpi++ . Thanks for the precision, I thought libmpi++ was a standard. However should we ask for a MPI_LIBS environment variable in the configure script? It seems that '-lmpio -lmpiCC' is MPICH specific. In addition, kernel-hdf5-needs-mpi.patch might not be accepted: Sylvestre tells me that upstream wants to use the serial HDF5 version, not parallel. Yes they told me that too, however the changes should not break a serial HDF5 version. And they might not accept kernel-replace-csh-stderr.patch because I think upstream uses csh/tcsh a lot, and I don't think the 2 syntax works there. Good news for this one, the file: KERNEL_SRC_5.1.4/src/LifeCycleCORBA/SALOME_LifeCycleCORBA.cxx uses already the '2' syntax. So the remaining changes should pass. But kernel-debian-occ.patch *should* go upstream -- it's compatible both with the traditional OCC install locations, and the Debian/Ubuntu locations, which are becoming more commonplace and significant. Yes, I hope too. Then what would be the relevant place for submitting patches of the remaining modules? Is it a good idea to send them to the bugtracker like I did for the kernel? Or could I let them on the Mercurial repository of http://www.python-science.org/project/salome-packaging? All the best, André -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#595909: salome-dev: add path to adm_local files
On Tue, Sep 14, 2010 at 06:20:34PM -0400, Adam C Powell IV wrote: On Tue, 2010-09-14 at 11:05 +0200, Andre Espaze wrote: Hello Adam and Christophe, Package: salome-dev Version: 5.1.3-11 Severity: wishlist It will be nice to include adm_local directory for each salome base modules in the salome-dev package. This will greatly simplify the developpement and packaging of new plugins since the configuration step almost refers to MODULE/adm_local. Otherwise we ave to include some MODULE_SRC in the src package for the plugins (see what I have done for salome-code-aster on svn debian science) This is a good idea. Right now the package puts the .m4 files all together in one big salome.m4 in /usr/share/aclocal (because check_KERNEL.m4 and check_GUI.m4 are far too generic names). But something like /usr/share/salome/[module]/adm_local or just /usr/share/salome/adm_local could include more than just the .m4 files. /usr/share/salome/adm_local is the easiest place to put these. Will that work for you? I would rather try to stick as much as possible to the original installation. So my feelings are that adm_local from MODULE_SRC should be included in /usr/share/salome/MODULE_SRC. It's pretty easy either way. André, as someone closer to upstream, what do you think makes more sense? Right now, all of the adm_local files install into /usr/adm_local, which violates the FHS. Should they go into a single directory under /usr/share/salome or into separate module directories? To my point of view, installing the .m4 files in separate module directories like /usr/share/salome/MODULE_SRC makes more sense with upstream packaging philosophy. I understand the clearness of a single directory like /usr/share/salome/adm_local but I fear conflicts because all modules do not necessarily share the same macro for a same configuration check. Well, I think it's a problem that they don't use the same macro in some cases, like GUI checks... But I'll go ahead and do it this way anyway. Just for information, the 'geom-use-gui-check.patch' patch is broken on the 5.1.4 version because the macros 'CHECK_SALOME_GUI' and 'CHECK_CORBA_IN_GUI' are now defined in the check_GUI.m4 file of the GEOM module. From now my solution is to give the path '${GUI_ROOT_DIR}/adm_local/unix/config_files' as the first argument to aclocal in build_configure (but it could be a problem in case a macro really needs to be overloaded locally). In case you already have a solution for using the same macro, I will gladly port it to the 5.1.4 version. André -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#587007: salome: Porting patches to Salome 5.1.4 for upstream inclusion
Hi Adam, After a long break, I am back on the Salome packaging. I was pleased to discover all your advances and the new building process for every module. Thank you very much for all your efforts. I think that it is the right time to start porting the patches to Salome 5.1.4 so we can submit them to upstream before a new release. I have enclosed most of the patches for building the KERNEL module with the 5.1.4 version. Moreover a start of the documentation that I plan to send for patches submission can be found here: https://hg.python-science.org/salome-packaging/file/d60a8c2112dc/debian-patch-review.rst However I wanted to discuss with you on 3 patches that I did not include because I thought that they concern Debian choices: - kernel-config-extra.patch - kernel-doc-images-svg.patch - kernel-install-without-docs.patch and this one does not make sense alone because the command is then renamed in 'debian/rules': - kernel-python-noexec.patch In case you have arguments or ideas about how to submit them, I will include them in the report. Now I plan to continue on the following modules. All the best, André Allow a separate MPI include directory (used by Debian's /usr/include/mpi link) Index: salome/KERNEL_SRC_5.1.4/salome_adm/unix/config_files/check_mpi.m4 === --- a/KERNEL_SRC_5.1.4/salome_adm/unix/config_files/check_mpi.m4 +++ b/KERNEL_SRC_5.1.4/salome_adm/unix/config_files/check_mpi.m4 @@ -28,6 +28,10 @@ AC_ARG_WITH(mpi_lib, [AC_HELP_STRING([--with-mpi_lib=DIR],[directory path of MPICH lib installation])], MPILIBREQUESTED=$withval) +AC_ARG_WITH(mpi_include, + [AC_HELP_STRING([--with-mpi_include=DIR],[directory path of MPICH header file installation])], + MPIINCLUDEREQUESTED=$withval) + AC_ARG_WITH(mpi, [AC_HELP_STRING([--with-mpi=DIR],[root directory path of MPICH installation])], MPIREQUESTED=yes,MPIREQUESTED=no) @@ -59,6 +63,10 @@ if test x$MPIREQUESTED = xyes; then MPI_LIBS=-L$MPILIBREQUESTED fi + if test x$MPIINCLUDEREQUESTED != x; then +MPI_INCLUDES=-I$MPIINCLUDEREQUESTED + fi + CPPFLAGS_old=$CPPFLAGS CPPFLAGS=$MPI_INCLUDES $CPPFLAGS AC_CHECK_HEADER(mpi.h,WITHMPI=yes,WITHMPI=no) Debian-specific patch to use our libmpi++.so alternatives symlink. Index: salome/KERNEL_SRC_5.1.4/salome_adm/unix/config_files/check_mpi.m4 === --- a/KERNEL_SRC_5.1.4/salome_adm/unix/config_files/check_mpi.m4 +++ b/KERNEL_SRC_5.1.4/salome_adm/unix/config_files/check_mpi.m4 @@ -85,7 +85,7 @@ if test x$MPIREQUESTED = xyes; then if test $WITHMPI = yes;then mpi_ok=yes -MPI_LIBS=$MPI_LIBS -lmpi -lmpio -lmpiCC +MPI_LIBS=$MPI_LIBS -lmpi -lmpi++ else mpi_ok=no fi The HDF5 library requires MPI in order to work, so the MPI check needs to go first, and the MPI variables need to be in the HDF5 check. Index: salome/KERNEL_SRC_5.1.4/salome_adm/unix/config_files/check_hdf5.m4 === --- a/KERNEL_SRC_5.1.4/salome_adm/unix/config_files/check_hdf5.m4 +++ b/KERNEL_SRC_5.1.4/salome_adm/unix/config_files/check_hdf5.m4 @@ -66,7 +66,7 @@ fi dnl hdf5 headers CPPFLAGS_old=$CPPFLAGS -CPPFLAGS=$CPPFLAGS $LOCAL_INCLUDES +CPPFLAGS=$CPPFLAGS $MPI_INCLUDES $LOCAL_INCLUDES AC_CHECK_HEADER(hdf5.h,hdf5_ok=yes ,hdf5_ok=no) CPPFLAGS=$CPPFLAGS_old @@ -77,7 +77,7 @@ then dnl hdf5 library LIBS_old=$LIBS - LIBS=$LIBS $LOCAL_LIBS + LIBS=$LIBS $MPI_LIBS $LOCAL_LIBS AC_CHECK_LIB(hdf5,H5open,hdf5_ok=yes,hdf5_ok=no) LIBS=$LIBS_old @@ -85,9 +85,9 @@ fi if test x$hdf5_ok = xyes then - HDF5_INCLUDES=$LOCAL_INCLUDES - HDF5_LIBS=$LOCAL_LIBS -lhdf5 $LOCAL_RLIBS - HDF5_MT_LIBS=$LOCAL_LIBS -lhdf5 $LOCAL_RLIBS + HDF5_INCLUDES=$MPI_INCLUDES $LOCAL_INCLUDES + HDF5_LIBS=$MPI_LIBS $LOCAL_LIBS -lhdf5 $LOCAL_RLIBS + HDF5_MT_LIBS=$MPI_LIBS $LOCAL_LIBS -lhdf5 $LOCAL_RLIBS fi if test x$hdf5_ok = xyes Index: salome/KERNEL_SRC_5.1.4/configure.ac === --- a/KERNEL_SRC_5.1.4/configure.ac +++ b/KERNEL_SRC_5.1.4/configure.ac @@ -222,6 +222,14 @@ echo CHECK_LIBXML +echo +echo - +echo checking if MPI is requested by user +echo - +echo + +CHECK_MPI + if test x$with_onlylauncher = xno; then echo echo - @@ -303,14 +311,6 @@ echo echo echo - -echo checking if MPI is requested by user -echo - -echo - -CHECK_MPI - -echo -echo - echo checking if PaCO++ is requested by user echo - echo Remove unnecessary extern C instances and add one necessary one. Background: One must not #include mpi.h from
Bug#595909: salome-dev: add path to adm_local files
Hello Adam and Christophe, Package: salome-dev Version: 5.1.3-11 Severity: wishlist It will be nice to include adm_local directory for each salome base modules in the salome-dev package. This will greatly simplify the developpement and packaging of new plugins since the configuration step almost refers to MODULE/adm_local. Otherwise we ave to include some MODULE_SRC in the src package for the plugins (see what I have done for salome-code-aster on svn debian science) This is a good idea. Right now the package puts the .m4 files all together in one big salome.m4 in /usr/share/aclocal (because check_KERNEL.m4 and check_GUI.m4 are far too generic names). But something like /usr/share/salome/[module]/adm_local or just /usr/share/salome/adm_local could include more than just the .m4 files. /usr/share/salome/adm_local is the easiest place to put these. Will that work for you? I would rather try to stick as much as possible to the original installation. So my feelings are that adm_local from MODULE_SRC should be included in /usr/share/salome/MODULE_SRC. It's pretty easy either way. André, as someone closer to upstream, what do you think makes more sense? Right now, all of the adm_local files install into /usr/adm_local, which violates the FHS. Should they go into a single directory under /usr/share/salome or into separate module directories? To my point of view, installing the .m4 files in separate module directories like /usr/share/salome/MODULE_SRC makes more sense with upstream packaging philosophy. I understand the clearness of a single directory like /usr/share/salome/adm_local but I fear conflicts because all modules do not necessarily share the same macro for a same configuration check. All the best, André -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#587007: salome: Porting patches to Salome 5.1.4 for upstream inclusion
Hello Adam, ... The second issue is the Debian constraint to build Salome with a HDF5 library needing MPI. The corresponding patches (kernel-hdf5-needs-mpi.patch, kernel-mpi-includes.patch, kernel-mpi-libs.patch and so on) are not so welcomed by upstream. Really? Did they give an indication of why? Well, that's a relatively small patch for us to maintain. From what I understood, building hdf5 with MPI is considered as unsupported. But I think that we can submit those patches and see if their politics change for a next release. Hopefully an alternative way of using HDF5 may be provided as suggested by Sylvestre: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=576004 Thanks. Unfortunately, the HDF5 group tends to take a long time to respond to such requests (often many months, even when a patch is available), so we shouldn't count on this to happen before our next upload. I have to confess that I had better hope on that point. ... In conclusion what could be the organization for welcoming the future Salome 5.1.4 release? Should it be progressively ported on a separate branch by using the up-to-date sources [2]? Or would you prefer a one-shot transition from 5.1.3? If upstream is not going to accept patches before 5.1.4, then I think the one-shot transition makes the most sense. But I appreciate your examination of the upstream git repository to determine in advance what changes we will need to make in order to port our patches to 5.1.4. Ok, it sounds fine to me. I am going to be unavailable until the end of August, then I can try the 5.1.4 transition at the beginning of September if needed. By the way, the 5.1.4 Salome version is now available at: http://www.salome-platform.org/downloads/salome-v5.1.4 All the best, André -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#587007: salome: Porting patches to Salome 5.1.4 for upstream inclusion
Package: salome Version: 5.1.3-10 Severity: wishlist Last week, Nicolas Chauvat, Sylvestre Ledru, Christophe Trophime and I met some of the Salome upstream developers in Paris (at Logilab). We presented the current patches [1] on Salomé 5.1.3 for upstream inclusion. They are not going to be accepted for this release however most of them have certainly good chances if they get ported to the upcoming Salomé 5.1.4. We were invited to try by using the up-to-date version [2]. I have started to have a look on the main modules, KERNEL, GUI, GEOM, MED, SMESH and VISU and it seems that most of the patches are still relevant even if they need to be updated. However two important maintenance points should be considered when porting actual patches to the future Salomé 5.1.4. The first is that the '\*-build-in-tree.patch' family is very unlikely to be accepted. The packaging process should instead configure, build and install each module one by one like in the official way. Happily, this advice fits also one of the Denis Barbier's suggestion for reducing the hard disk space during Salome building by cleaning every module built directory after its installation. Would the upstream request be an accelerator for reorganizing the construction steps? The second issue is the Debian constraint to build Salome with a HDF5 library needing MPI. The corresponding patches (kernel-hdf5-needs-mpi.patch, kernel-mpi-includes.patch, kernel-mpi-libs.patch and so on) are not so welcomed by upstream. Hopefully an alternative way of using HDF5 may be provided as suggested by Sylvestre: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=576004 In conclusion what could be the organization for welcoming the future Salome 5.1.4 release? Should it be progressively ported on a separate branch by using the up-to-date sources [2]? Or would you prefer a one-shot transition from 5.1.3? In order to ease the upstream acceptance, I plan to write a small report in French for explaining every patch purpose (for the 5.1.3 version, I already did one for KERNEL and GUI modules but its delivery is finally delayed). With kind regards, André [1] Found in debian/patches of http://git.debian.org/git/debian-science/packages/salome.git [2] The sources can be obtained with git http://git.salome-platform.org/gitweb/ -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#587025: salome: Packaging Code Aster module for Salome
Package: salome Severity: wishlist The Salome Meca platform has recently been released, see [1]. An archive made of binaries is available with Salome 5.1.3, Code Aster 10.1 and the ASTER module for Salome. The latter allows to use some of the Code Aster functionalities from Salome. As Salome is already packaged and Code Aster is on the way [2], the Salome Meca platform ships only three relevant modules written in Python: - ASTER (allowing to run the Code Aster solver) - EFICAS (for editing Code Aster files) - PAL (an EFICAS dependency) Their sources should be published in a near future on the Code Aster website [3] and it could then be interesting to bring them to a salome-meca package. With kind regards, André [1] http://www.code-aster.org/V2/spip.php?article295 [2] The current version can be browsed at: http://svn.debian.org/wsvn/debian-science/packages/code-aster/ [3] http://www.code-aster.org -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#584586: Update needed to debian/control
Hi Adam, While the commit d74f067fc25ed4168473890db05eb74d3932c37a succeeded to merge libsalome and python2.5-salome into the salome package, it seems that debian/control was not updated accordingly. python2.5-salome and libsalome-dev can still be found in the Depends section of the salome package defined in debian/control. From now, the solution is to install the salome package by transforming dependences errors into warnings: dpkg --force-depends -i salome_5.1.3-9_amd64.deb All the best, André By the way, should I keep you in copy or do you receive any Salomé bug update automatically? -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#584172: Disabling GetIDMapper inlining for building VISU
Hello Denis, On Wed, Jun 02, 2010 at 02:13:51PM +0200, Denis Barbier wrote: On 2010/6/2 Andre Espaze wrote: [...] Your solution is however better because the exported symbols are in control while in my case I remove every GetIDMapper function inlining. [...] It seems that there is some disagreement between us, I believe that the sentence above is the root cause. You say that my solution gives a better control on symbols which are exported, but my opinion is that both solutions provide the exact same API. Can you please explain the differences induced by those patches? (For instance by running objdump, readelf,... on generated libraries and comparing output) Thanks. Sure, I am going to show the problem on real librairies. I had first imitated it by the test.cpp code provided in bug 457075, see: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=457075#400 From the beginning, the problem is specific to g++ optimizations that's why I wanted to reflect that fact in my patch. Am I wrong on that point? The disagreement is maybe just here. I assume that you run git-buildpackage on the revision f57b74db488c91754eadbca263c065ff2022ac71, thus the build has failed with the status message given by Adam in that bug entry. The relevant code is in the CONVERTOR directory of the VISU module: $ cd VISU_SRC_5.1.3/src/CONVERTOR The VISUConvertor can not be built because GetIDMapper symbols do not exist. You can check the problem in the corresponding module: $ readelf -s .libs/libVisuConvertor_la-VISU_MergeFilterUtilities.o | \ grep GetIDMapper However if you remove the O2 optimizations in the CXXFLAGS of the Makefile (by first making a backup): $ cp Makefile Makefile.orig $ sed -i s/^CXXFLAGS = .*/CXXFLAGS = -D_OCC64 -g -D_DEBUG_ -pthread/ \ Makefile and then force the module to be built again: $ rm libVisuConvertor_la-VISU_MergeFilterUtilities.lo $ make it will work. Now if you check the exported symbols: $ readelf -s .libs/libVisuConvertor_la-VISU_MergeFilterUtilities.o | \ grep GetIDMapper 759: 113 FUNCWEAK DEFAULT 395 _ZN4VISU11GetIDMapperINS_ 769: 113 FUNCWEAK DEFAULT 411 _ZN4VISU11GetIDMapperINS_ 879: 259 FUNCWEAK DEFAULT 569 _ZN4VISU11GetIDMapperINS_ 880: 259 FUNCWEAK DEFAULT 571 _ZN4VISU11GetIDMapperINS_ you should have 4 entries. At that step, I understood that the upstream code is valid C++ (but not necessarily robust) and thus I wanted to provide a patch controlling g++ optimizations while respecting their coding style. That's why you can find the 'if' statements since the beginning. My patch no-template-function-inline will remove every template function inlining of GetIDMapper when compiling with O2 optimizations: $ cd ../../.. $ patch -p1 no-template-function-inline.patch $ patch -p1 debian/patches/visu-no-template-inline.patch $ cd VISU_SRC_5.1.3/src/CONVERTOR $ mv Makefile.orig Makefile $ make $ readelf -s .libs/libVisuConvertor_la-VISU_MergeFilterUtilities.o | \ grep GetIDMapper 89: 113 FUNCWEAK DEFAULT 48 _ZN4VISU11GetIDMapperINS_ 95: 54 FUNCWEAK DEFAULT 50 _ZN4VISU11GetIDMapperINS_ 96: 54 FUNCWEAK DEFAULT 52 _ZN4VISU11GetIDMapperINS_ 97: 113 FUNCWEAK DEFAULT 54 _ZN4VISU11GetIDMapperINS_ Finally your solution will only export the needed GetIDMapper symbol: $ git checkout HEAD VISU_MergeFilterUtilities.hxx $ cd ../../.. $ patch -p1 visu-template-export.patch $ cd VISU_SRC_5.1.3/src/CONVERTOR $ make $ readelf -s .libs/libVisuConvertor_la-VISU_MergeFilterUtilities.o | \ grep GetIDMapper 68: 113 FUNCWEAK DEFAULT 26 _ZN4VISU11GetIDMapperINS_ I agree with you that your solution is valid and robust C++ code so the if statements could be removed no matter if the code is compiled with or without optimizations or even with others compilers. But I think that such a decision should be made by upstream because we discovered the problem only when working with g++ O2 optimizations. I am open to further explanations if needed. Best regards, André -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#584124: salome: fails to install (tries to overwrite '/usr/bin/display'
Hi Adam, Are those libraries private to salome? (In other words, are you sure that no other package will be linked against them?) * If yes, there is no reason to provide libsalome5.1.3-0 and libsalome-dev packages, these libs are shipped by another package (python2.5-salome?) and can safely be moved into /usr/lib/salome/ * If no, they should indeed go into /usr/lib/ but name collisions will happen. Maybe the answer is a mix of both, some libs are private and some others are public. I was thinking the same thing. Back to André: are there libraries which are meant to be shared with other packages, or are they all private to Salomé? To my point of view, all librairies should be private to Salomé. I agree with the first solution, there is no need to provide libsalome* and python2.5-salome. BTW when looking at this issue, I found that python2.5-salome contains shared libraries, it thus must be arch:any and not arch:all. It also contains static libraries which can surely be dropped. BTW2, I wonder whether salome, python2.5-salome, libsalome5.1.3-0 and libsalome-dev could be merged into a single package (if all libs are private, of course). Indeed. There's still value in having a separate -common package, to reduce archive disk footprint. I'll first try to get the new paths working, then do this merger, and upload, then we can think about splitting things up differently. (core, extras, dev, test) Excellent. I saw anyway that you have just opened bug 584590 where we are going to try to solve that problem. Best regards, André -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#584172: Disabling GetIDMapper inlining for building VISU
On Mon, Jun 07, 2010 at 06:06:58PM +0200, Denis Barbier wrote: On 2010/6/7 Andre Espaze wrote: [...] $ patch -p1 no-template-function-inline.patch $ patch -p1 debian/patches/visu-no-template-inline.patch Thanks André for these detailed explanations, but why do you apply both patches? If you check out revision f57b74db488c, visu-no-template-inline.patch does not exist yet, so the first patch adds it. I thought that visu-no-template-inline.patch was superseding no-template-function-inline.patch. (Adam too since he committed only the former) Yes, no-template-function-inline.patch was only a way to apply my changes to Adam's repository (we decided to work like that since the beginning so Adam can review every patch and I do not need write access). To make it clear, my point is that #if macro can be dropped from visu-no-template-inline.patch, the result will be unchanged: * When compiled in debug mode, functions are not inlined and 4 symbols are exported. * When compiled with optimization, only one symbol is exported. Since those macros do nothing, it is better to strip them off and follow what is described in the C++ faq. Ok but what about respecting the upstream coding style? Moreover the macros do nothing only when using g++. I am fine to remove the if macros but I think that we will need to provide upstream with more explanations. If you want no-template-function-inline.patch to be applied, then visu-no-template-inline.patch should be dropped. No, no-template-function-inline.patch is only a communication tool. I am sorry if it has created confusion. The only patch that matters for us is visu-no-template-inline.patch. However I did not want to add one more patch to the bug and for describing reproductible steps I needed to introduce no-template-function-inline.patch. $ cd VISU_SRC_5.1.3/src/CONVERTOR $ mv Makefile.orig Makefile $ make $ readelf -s .libs/libVisuConvertor_la-VISU_MergeFilterUtilities.o | \ grep GetIDMapper 89: 113 FUNC WEAK DEFAULT 48 _ZN4VISU11GetIDMapperINS_ 95: 54 FUNC WEAK DEFAULT 50 _ZN4VISU11GetIDMapperINS_ 96: 54 FUNC WEAK DEFAULT 52 _ZN4VISU11GetIDMapperINS_ 97: 113 FUNC WEAK DEFAULT 54 _ZN4VISU11GetIDMapperINS_ [...] These symbols are exported because of no-template-function-inline.patch, not visu-no-template-inline.patch. Isn't is the opposite? no-template-function-inline.patch modifies the Debian repo while visu-no-template-inline.patch modifies the Salome sources. André -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#584172: Disabling GetIDMapper inlining for building VISU
It is finally not necessary to build the module with the -g option, I have enclosed a patch that disable the GetIDMapper function inlining when built with g++ and optimizations. commit 73f793cb0076b6847fc17750a5e1511af502e06c Author: André Espaze andre.esp...@logilab.fr Date: Tue Jun 1 16:53:53 2010 +0200 No GetIDMapper inlining when building VISU The template function GetIDMapper should not be inlined by g++ when compiling with optimizations (the Debian build system used -O2) because the VISUConvertor command needs to link with the resulting symbol contained in libVisuConvertor.so. The patch is provided in: debian/patches/visu-no-template-inline.patch and will be applied by quilt thanks to the list: debian/patches/series diff --git a/debian/patches/series b/debian/patches/series index 524b45d..d280ec5 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -26,6 +26,7 @@ med-fix-clean.patch visu-hdf5-needs-mpi.patch visu-build-in-tree.patch visu-flags-typo.patch +visu-no-template-inline.patch visu-fix-clean.patch smesh-hdf5-needs-mpi.patch smesh-use-gui-check.patch diff --git a/debian/patches/visu-no-template-inline.patch b/debian/patches/visu-no-template-inline.patch new file mode 100644 index 000..ead1d55 --- /dev/null +++ b/debian/patches/visu-no-template-inline.patch @@ -0,0 +1,28 @@ +The template function GetIDMapper should not be inlined by g++ when +compiling with optimizations (the Debian build system used -O2) because +the VISUConvertor command needs to link with the resulting symbol +contained in libVisuConvertor.so. + +diff --git a/VISU_SRC_5.1.3/src/CONVERTOR/VISU_MergeFilterUtilities.hxx b/VISU_SRC_5.1.3/src/CONVERTOR/VISU_MergeFilterUtilities.hxx +index 52f7440..e4f63ae 100755 +--- a/VISU_SRC_5.1.3/src/CONVERTOR/VISU_MergeFilterUtilities.hxx b/VISU_SRC_5.1.3/src/CONVERTOR/VISU_MergeFilterUtilities.hxx +@@ -93,12 +93,18 @@ namespace VISU + TObjectId2TupleGaussIdMap theObjectId2TupleGaussIdMap); + + templateclass TGetFieldData ++#if (__GNUG__ __OPTIMIZE__) ++ __attribute__((noinline)) ++#endif + vtkIntArray* + GetIDMapper(VISU::TFieldList* theFieldList, + TGetFieldData theGetFieldData, + const char* theFieldName); + + templateclass TGetFieldData ++#if (__GNUG__ __OPTIMIZE__) ++ __attribute__((noinline)) ++#endif + vtkIntArray* + GetIDMapper(vtkDataSet* theIDMapperDataSet, + TGetFieldData theGetFieldData,
Bug#584172: Disabling GetIDMapper inlining for building VISU
Hello Denis, On Wed, Jun 02, 2010 at 10:30:15AM +0200, Denis Barbier wrote: On 2010/6/2 Andre Espaze wrote: It is finally not necessary to build the module with the -g option, I have enclosed a patch that disable the GetIDMapper function inlining when built with g++ and optimizations. I am no C++ expert, but this looks very similar to http://www.parashift.com/c++-faq-lite/templates.html#faq-35.13 and it is thus not clear whether this is really a g++ bug. Here is a different fix, I tested this approach with Andre's test.cpp, but not with salome. Thank you very much for the suggestion, it works but it seems to me that you forgot a 'template' keyword before the symbol export. I have enclosed a patch tested on my machine, fell free to correct it if I was wrong. For the -9 release, I am anyway going to submit my change to Adam for getting a working version with VISU. A full build will again be required because other symbol exports may be needed in other modules. Your solution is however better because the exported symbols are in control while in my case I remove every GetIDMapper function inlining. I am neither a C++ expert but I found the FAQ entry different from our case because the symbol gets exported without -O2 optimizations. I would not say that it is a g++ bug because I think that you should control inlining when optimizing (as I have done in my first patch). However your solution is right and succeeds to export template function symbols with optimizations. Once again thank you because I would not have figured it out myself. Best regards, André diff --git a/VISU_SRC_5.1.3/src/CONVERTOR/VISU_MergeFilterUtilities.cxx b/VISU_SRC_5.1.3/src/CONVERTOR/VISU_MergeFilterUtilities.cxx index 126effb..89d1b50 100755 --- a/VISU_SRC_5.1.3/src/CONVERTOR/VISU_MergeFilterUtilities.cxx +++ b/VISU_SRC_5.1.3/src/CONVERTOR/VISU_MergeFilterUtilities.cxx @@ -718,7 +718,12 @@ namespace VISU } return NULL; } - + // Explicit symbol export when compiling with g++ and optimizations, + // needed by VISUConvertor during linking + #if (__GNUG__ __OPTIMIZE__) + template vtkIntArray* + GetIDMapperTGetPointData(TFieldList*, TGetPointData, const char* ); + #endif //--- templateclass TGetFieldData
Bug#457075: Salomé packaging
Hello Adam, First, some great news: Salomé was accepted into unstable! Now we can file multiple independent bugs and track all of these issues separately. Excellent! I am really glad to hear it. I feel really sorry for the wrong patch that I sent you, the reason is that I forgot to add the CXXFLAGS=-g in the configure command, I was building VISU without optimizations. I hope that I did not make you loose too much time. Aha! That makes a lot of sense. Don't worry, it didn't take me a lot of time to rebuild the package a couple of times. But this suggests that it might be best to compile only that file using -g so the rest of VISU can still be optimized. What do you think? In fact g++ can be controlled on function inlining. Since my last successful build, I have looked deeper into the problem and I found that g++ inline small template function with -O2. Here I imitate the GetIDMapper definition found in src/CONVERTOR/VISU_MergeFilterUtilities.cxx:705: ... Very interesting! It sounds like with a lot of hard work you've found an important g++ optimization bug... I am not sure if it is a bug. I guess that template function inlining should be controlled when optimizing. I have enclosed you a tested patch for removing template function inlining of GetIDMapper but it should be applied after the commit: f57b74db488c91754eadbca263c065ff2022ac71 Thu May 27 21:56:53 2010 -0400 Timestamp the changelog It means that the last commit should be reverted. I made a successful build of Salome with VISU by using the corresponding Debian rules (that I have enclosed in case you would like to check) but you will see that VISU is configured in the for loop like others modules. Finally I have sent my patch to bug 584172 where a better solution has already been suggested by Denis but requires a new complete build. Now I will try to improve the package organizations and wait for your Salome bug entries on which I can help. By the way, is the 'git-builpackage' command that exports CXXFLAGS to '-O2 -g'? I could not yet understand that step. I believe dpkg-buildpackage sets those flags. But it should be possible to set them locally within debian/rules or Makefile.am. Thank you for the explanation, I have just discovered dpkg-buildflags used by dpkg-buildpackage: $ dpkg-buildflags --get CXXFLAGS -g -O2 Best regards, André commit 73f793cb0076b6847fc17750a5e1511af502e06c Author: André Espaze andre.esp...@logilab.fr Date: Tue Jun 1 16:53:53 2010 +0200 No GetIDMapper inlining when building VISU The template function GetIDMapper should not be inlined by g++ when compiling with optimizations (the Debian build system used -O2) because the VISUConvertor command needs to link with the resulting symbol contained in libVisuConvertor.so. The patch is provided in: debian/patches/visu-no-template-inline.patch and will be applied by quilt thanks to the list: debian/patches/series diff --git a/debian/patches/series b/debian/patches/series index 524b45d..d280ec5 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -26,6 +26,7 @@ med-fix-clean.patch visu-hdf5-needs-mpi.patch visu-build-in-tree.patch visu-flags-typo.patch +visu-no-template-inline.patch visu-fix-clean.patch smesh-hdf5-needs-mpi.patch smesh-use-gui-check.patch diff --git a/debian/patches/visu-no-template-inline.patch b/debian/patches/visu-no-template-inline.patch new file mode 100644 index 000..ead1d55 --- /dev/null +++ b/debian/patches/visu-no-template-inline.patch @@ -0,0 +1,28 @@ +The template function GetIDMapper should not be inlined by g++ when +compiling with optimizations (the Debian build system used -O2) because +the VISUConvertor command needs to link with the resulting symbol +contained in libVisuConvertor.so. + +diff --git a/VISU_SRC_5.1.3/src/CONVERTOR/VISU_MergeFilterUtilities.hxx b/VISU_SRC_5.1.3/src/CONVERTOR/VISU_MergeFilterUtilities.hxx +index 52f7440..e4f63ae 100755 +--- a/VISU_SRC_5.1.3/src/CONVERTOR/VISU_MergeFilterUtilities.hxx b/VISU_SRC_5.1.3/src/CONVERTOR/VISU_MergeFilterUtilities.hxx +@@ -93,12 +93,18 @@ namespace VISU + TObjectId2TupleGaussIdMap theObjectId2TupleGaussIdMap); + + templateclass TGetFieldData ++#if (__GNUG__ __OPTIMIZE__) ++ __attribute__((noinline)) ++#endif + vtkIntArray* + GetIDMapper(VISU::TFieldList* theFieldList, + TGetFieldData theGetFieldData, + const char* theFieldName); + + templateclass TGetFieldData ++#if (__GNUG__ __OPTIMIZE__) ++ __attribute__((noinline)) ++#endif + vtkIntArray* + GetIDMapper(vtkDataSet* theIDMapperDataSet, + TGetFieldData theGetFieldData, #!/usr/bin/make -f # Made with the aid of debmake, by Christoph Lameter, # based on the sample debian/rules file for GNU hello by Ian Jackson. package=salome SALOME_VERSION=5.1.3 # Support multiple makes at once ifneq (,$(filter
Bug#584172: Disabling GetIDMapper inlining for building VISU
I have enclosed a patch tested on my machine, fell free to correct it if I was wrong. [...] I do not understand why you added #if tests, just adding 'template' at the very beginning is enough. It was not explicit in my previous mail, but I tried to find an alternative solution because your's works only with g++, and you will need those #if tests if you want to forward it upstream. OTOH mine is portable, and it could be adopted more easily by upstream, I guess. Within Debian, which patch is checked in does not matter. I added the #if tests because the patch is a solution to a problem occuring only when compiling with g++ and -O2 optimizations. Would you like upstream to force the symbol export even if the code compiles without g++ optimizations? Did you check that the template problem occurs for others C++ compilers before saying that you have a portable solution? André -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#457075: Salomé packaging
Hi Adam, I've installed your patches, but still have the same build error: ./.libs/libVisuConvertor.so: undefined reference to `vtkIntArray* VISU::GetIDMapperVISU::TGetPointData(VISU::TFieldList*, VISU::TGetPointData, char const*)' collect2: ld returned 1 exit status It seems like if the problem were the missing -L...TOOLSGUI then there would have been a missing library instead of a missing symbol... But then, you were able to get it to build with these changes, so there must be something I don't understand going on here. I did install your patches in pieces, not all at once, so I may have missed something. Can you compare the tree currently in git with your own, to see if there are some significant differences which would cause it to not build? I feel really sorry for the wrong patch that I sent you, the reason is that I forgot to add the CXXFLAGS=-g in the configure command, I was building VISU without optimizations. I hope that I did not make you loose too much time. Since my last successful build, I have looked deeper into the problem and I found that g++ inline small template function with -O2. Here I imitate the GetIDMapper definition found in src/CONVERTOR/VISU_MergeFilterUtilities.cxx:705: $ cat test.cpp class Data{ }; template class TData void GetIDMapper(TData data) { } void test(void) { GetIDMapper(Data()); } When compiling without optimizations, the GetIDMapper symbol is built: $ g++ -c test.cpp readelf -s test.o | grep GetIDMapper ... _Z11GetIDMapperI4DataEvT_ However -O2 will inline the template function: $ g++ -O2 -c test.cpp readelf -s test.o | grep GetIDMapper For not loosing optimizations on the whole build, I have finally found that I can control g++: $ cat test.cpp class Data{ }; template class TData __attribute__((noinline)) void GetIDMapper(TData data) { } void test(void) { GetIDMapper(Data()); } $ g++ -O2 -c test.cpp readelf -s test.o | grep GetIDMapper ... _Z11GetIDMapperI4DataEvT_ So the good new is that I will provide a VISU patch and we can again configure VISU in the for loop of debian/rules. Will it be possible to reset the last commit? I deeply apologize for my mistake. For not reproducing the same problem, I am going to build a new Salome version and send you patches carefully once everything works. By the way, is the 'git-builpackage' command that exports CXXFLAGS to '-O2 -g'? I could not yet understand that step. Best regards, André On Thu, 2010-05-27 at 18:30 +0200, Andre Espaze wrote: Hello Adam, I have just succeeded to make a 5.1.3-9 release with VISU, I have enclosed the 2 patches. I also wanted to let you know that I have understood the runtime problems of VISU but I need to progress by steps (my solution is still too messy for being published). I will first be glad if the -9 release works for you too. With a fresh sid version, I got a problem on /bin/sh now linked to dash because autoconf publishes configure scripts with /bin/sh at top but the KERNEL configure.ac script uses 'function' which is a bash command. I could not find a solution yet (even by tweaking SHELL and CONFIG_SHELL). Then I wonder if doing a: chmod -x debian/tmp/usr/lib/python2.5/*-packages/salome/* is a nice idea because you can not list directories any more. I got this problem while debugging. I will try to provide a solution on that point by listing required scripts. Best regards, André On Mon, 2010-05-17 at 12:06 +0200, Andre Espaze wrote: Hi Adam, Sorry for the lack of news, I was focus on making VISU work. I have succeeded to build a Salome package however the current result is unfortunately split from our development line. That's why I will first explain my steps and then ask your advice on the merge as I saw that serious reorganizations are also pending. My goal is to provide a functional Salome package for mechanical engineering even if incomplete. As a consequence the necessary modules are for me KERNEL, GUI, GEOM, MED, SMESH and VISU. As VISU was failing in the build process of debian/rules, I decided to build it by hand by exporting the necessary environment variables. In that case I only had to modify the gui-build-in-tree.patch (attached to the mail) for making the libVISU linking work by adding the path to libToolsGUI. However, back to the complete debian/rules process, the compilation was still failing in the VISU CONVERTER library because of an absent template symbol (probably the same problem described in your mail on the 25th of January). So I needed to investigate the configure and build steps of debian/rules but those steps take lot of time. For easing my researchs, I decided to work on a package building only the necessary modules which I called salome
Bug#457075: Salomé packaging
Hello Adam, I have just succeeded to make a 5.1.3-9 release with VISU, I have enclosed the 2 patches. I also wanted to let you know that I have understood the runtime problems of VISU but I need to progress by steps (my solution is still too messy for being published). I will first be glad if the -9 release works for you too. With a fresh sid version, I got a problem on /bin/sh now linked to dash because autoconf publishes configure scripts with /bin/sh at top but the KERNEL configure.ac script uses 'function' which is a bash command. I could not find a solution yet (even by tweaking SHELL and CONFIG_SHELL). Then I wonder if doing a: chmod -x debian/tmp/usr/lib/python2.5/*-packages/salome/* is a nice idea because you can not list directories any more. I got this problem while debugging. I will try to provide a solution on that point by listing required scripts. Best regards, André On Mon, 2010-05-17 at 12:06 +0200, Andre Espaze wrote: Hi Adam, Sorry for the lack of news, I was focus on making VISU work. I have succeeded to build a Salome package however the current result is unfortunately split from our development line. That's why I will first explain my steps and then ask your advice on the merge as I saw that serious reorganizations are also pending. My goal is to provide a functional Salome package for mechanical engineering even if incomplete. As a consequence the necessary modules are for me KERNEL, GUI, GEOM, MED, SMESH and VISU. As VISU was failing in the build process of debian/rules, I decided to build it by hand by exporting the necessary environment variables. In that case I only had to modify the gui-build-in-tree.patch (attached to the mail) for making the libVISU linking work by adding the path to libToolsGUI. However, back to the complete debian/rules process, the compilation was still failing in the VISU CONVERTER library because of an absent template symbol (probably the same problem described in your mail on the 25th of January). So I needed to investigate the configure and build steps of debian/rules but those steps take lot of time. For easing my researchs, I decided to work on a package building only the necessary modules which I called salome-core. The working snapshot is available here: http://www.python-science.org/files/salome-core.tar.gz and I have attached the resulting debian/rules which configure every module separately. I could not find the problem in the previous loop configuration. From there two questions arise. First, I like the debian/rules file of salome-core but I remember that you were against such solution for maintenance reasons. Would you like me to adapt it as a loop or did you finally change your mind? From now it seems anyway that VISU needs to be configured separately. Second, could the current salome-core package be a starting point for the reorganizations that we discussed previously? For me it has the main advantage to build only the necessary modules, thus saving time for every run of Salome packaging. However it will require to write several packages (salome-advance and salome-dev). By comparing to the opencascade package, I understand that the whole building should be made in a row and the subpackages splitted by several *.install files. ... - self.CMD=['SALOME_ContainerPy.py','FactoryServerPy'] + self.CMD=['SALOME_Container','FactoryServerPy'] (I have adapted the patch to the current version.) ... I just took care of this, the result is in the alioth git repository. Thank you for the update. Even if the current version work, I would prefer to rename 'SALOME_ContainerPy.py' to 'SALOME_ContainerPy' because '/usr/bin/SALOME_Container' already exists and is finally overwritten in the install step of debian/rules. Even if several points still need to be discussed or adapted, the good point is that we know now how to build a Salome package with the essential modules. Once again, thank you very much for all your efforts. I am going to track the remaining bugs at runtime (some menu do not show up in SMESH, the results can not be seen in VISU). All the best, André -- GPG fingerprint: D54D 1AEE B11C CE9B A02B C5DD 526F 01E8 564E E4B6 Engineering consulting with open source tools http://www.opennovation.com/ commit 79661ecbf3ef61cf184ca76dca1402559aa59aa4 Author: André Espaze andre.esp...@logilab.fr Date: Tue May 11 16:24:43 2010 +0200 Adding TOOLSGUI to GUI_LDFLAGS for building VISU diff --git a/debian/patches/gui-build-in-tree.patch b/debian/patches/gui-build-in-tree.patch index 6fbee7d..9e54e08 100644 --- a/debian/patches/gui-build-in-tree.patch +++ b/debian/patches/gui-build-in-tree.patch @@ -1,8 +1,10 @@ Changes needed to build all modules before installing them. salome-5.1.3/GUI_SRC_5.1.3/adm_local/unix/config_files/check_GUI.m4~ 2010-01-22 19:55
Bug#457075: Salomé packaging
Hi Adam, Sorry for the lack of news, I was focus on making VISU work. I have succeeded to build a Salome package however the current result is unfortunately split from our development line. That's why I will first explain my steps and then ask your advice on the merge as I saw that serious reorganizations are also pending. My goal is to provide a functional Salome package for mechanical engineering even if incomplete. As a consequence the necessary modules are for me KERNEL, GUI, GEOM, MED, SMESH and VISU. As VISU was failing in the build process of debian/rules, I decided to build it by hand by exporting the necessary environment variables. In that case I only had to modify the gui-build-in-tree.patch (attached to the mail) for making the libVISU linking work by adding the path to libToolsGUI. However, back to the complete debian/rules process, the compilation was still failing in the VISU CONVERTER library because of an absent template symbol (probably the same problem described in your mail on the 25th of January). So I needed to investigate the configure and build steps of debian/rules but those steps take lot of time. For easing my researchs, I decided to work on a package building only the necessary modules which I called salome-core. The working snapshot is available here: http://www.python-science.org/files/salome-core.tar.gz and I have attached the resulting debian/rules which configure every module separately. I could not find the problem in the previous loop configuration. From there two questions arise. First, I like the debian/rules file of salome-core but I remember that you were against such solution for maintenance reasons. Would you like me to adapt it as a loop or did you finally change your mind? From now it seems anyway that VISU needs to be configured separately. Second, could the current salome-core package be a starting point for the reorganizations that we discussed previously? For me it has the main advantage to build only the necessary modules, thus saving time for every run of Salome packaging. However it will require to write several packages (salome-advance and salome-dev). By comparing to the opencascade package, I understand that the whole building should be made in a row and the subpackages splitted by several *.install files. ... - self.CMD=['SALOME_ContainerPy.py','FactoryServerPy'] + self.CMD=['SALOME_Container','FactoryServerPy'] (I have adapted the patch to the current version.) ... I just took care of this, the result is in the alioth git repository. Thank you for the update. Even if the current version work, I would prefer to rename 'SALOME_ContainerPy.py' to 'SALOME_ContainerPy' because '/usr/bin/SALOME_Container' already exists and is finally overwritten in the install step of debian/rules. Even if several points still need to be discussed or adapted, the good point is that we know now how to build a Salome package with the essential modules. Once again, thank you very much for all your efforts. I am going to track the remaining bugs at runtime (some menu do not show up in SMESH, the results can not be seen in VISU). All the best, André Changes needed to build all modules before installing them. diff --git a/GUI_SRC_5.1.3/adm_local/unix/config_files/check_GUI.m4 b/GUI_SRC_5.1.3/adm_local/unix/config_files/check_GUI.m4 index ec07762..73d2eb9 100755 --- a/GUI_SRC_5.1.3/adm_local/unix/config_files/check_GUI.m4 +++ b/GUI_SRC_5.1.3/adm_local/unix/config_files/check_GUI.m4 @@ -59,19 +59,27 @@ if test -f ${SALOME_GUI_DIR}/bin/salome/$1 ; then SalomeGUI_ok=yes AC_MSG_RESULT(Using SALOME GUI distribution in ${SALOME_GUI_DIR}) + GUI_LDFLAGS=-L${SALOME_GUI_DIR}/lib${LIB_LOCATION_SUFFIX}/salome + GUI_CXXFLAGS=-I${SALOME_GUI_DIR}/include/salome +elif test -f ${SALOME_GUI_DIR}/src/$3/$1.cxx ; then + SalomeGUI_ok=yes + AC_MSG_RESULT(Using SALOME GUI source directory in ${SALOME_GUI_DIR}) + + GUI_LDFLAGS=-L${SALOME_GUI_DIR}/src/SUIT -L${SALOME_GUI_DIR}/src/Qtx -L${SALOME_GUI_DIR}/src/VTKViewer -L${SALOME_GUI_DIR}/src/SVTK -L${SALOME_GUI_DIR}/src/OBJECT -L${SALOME_GUI_DIR}/src/SalomeApp -L${SALOME_GUI_DIR}/src/Session -L${SALOME_GUI_DIR}/src/LightApp -L${SALOME_GUI_DIR}/src/OCCViewer -L${SALOME_GUI_DIR}/src/CAM -L${SALOME_GUI_DIR}/src/SOCC -L${SALOME_GUI_DIR}/src/Event -L${SALOME_GUI_DIR}/src/Prs -L${SALOME_GUI_DIR}/src/STD -L${SALOME_GUI_DIR}/src/PyConsole -L${SALOME_GUI_DIR}/src/SPlot2d -L${SALOME_GUI_DIR}/src/Plot2d -L${SALOME_GUI_DIR}/src/ObjBrowser -L${SALOME_GUI_DIR}/src/PyInterp -L${SALOME_GUI_DIR}/src/LogWindow -L${SALOME_GUI_DIR}/src/GLViewer -L${SALOME_GUI_DIR}/src/SUPERVGraph -L${SALOME_GUI_DIR}/src/SUITApp -L${SALOME_GUI_DIR}/src/QxScene -L${SALOME_GUI_DIR}/src/TOOLSGUI + GUI_CXXFLAGS=-I${SALOME_GUI_DIR}/src/SVTK -I${SALOME_GUI_DIR}/src/OBJECT -I${SALOME_GUI_DIR}/src/VTKViewer -I${SALOME_GUI_DIR}/src/SUIT -I${SALOME_GUI_DIR}/src/Qtx -I${SALOME_GUI_DIR}/src/SalomeApp -I${SALOME_GUI_DIR}/src/LightApp
Bug#457075: Salomé packaging
Hi Adam, Sorry for the delay, I have missed the -6 release but I have just built the -7 one which works fine. I have updated the documentation on: http://wiki.debian.org/BuildingSalome It seems that building Med dependencies by hand is no longer needed because libmed-2.3.6-2 is now available in Debian sid. I only had one problem during the installation step with the 'salome.desktop' file which did not exist but it may be an error on my side. I will see if I can reproduce it in the next build. First, the -dev dependency extends beyond libsalome-dev. For example, the GEOM module requires libTKOpenGl.so which is in libopencascade-visualization-dev so salome must depend on at least that package as well. There are likely others. Can some of you help me to figure out what is required? If we miss a couple before upload, that's probably okay, we'll just get even more bug reports for these than we otherwise would. :-) I can help on that part once the VISU module is working, I have just added a ticket on the Logilab's project: http://www.python-science.org/ticket/1841 Later we can hopefully modify Salomé's shared lib loading code so it detects the soname at build time and loads that file at runtime, as this is a bug. If anyone can figure out an easy way to do that now, great; otherwise we need to add a few -dev packages to the dependencies. I have added a ticket too: http://www.python-science.org/ticket/1822 but to my point of view such change should be difficult. Second, I've cut the number of lintian warnings by dozens by making the .py files non-executable. The one problem that results is during startup, which can be solved by the following patch: diff --git a/KERNEL_SRC_5.1.3/bin/runSalome.py b/KERNEL_SRC_5.1.3/bin/runSalome.py index d67d6b0..550a6c2 100755 --- a/KERNEL_SRC_5.1.3/bin/runSalome.py +++ b/KERNEL_SRC_5.1.3/bin/runSalome.py @@ -191,7 +191,7 @@ class ContainerPYServer(Server): if sys.platform == win32: self.CMD=[os.environ[PYTHONBIN], '\'+os.environ[KERNEL_ROOT_DIR] + '/bin/salome/SALOME_ContainerPy.py'+'\','FactoryServerPy'] else: - self.CMD=['SALOME_ContainerPy.py','FactoryServerPy'] + self.CMD=['python','/usr/lib/python2.5/site-packages/salome/SALOME_ContainerPy.py','FactoryServerPy'] # --- My python is even worse than my French, so that's the best I can do, but I'm certain there's a better way. Can someone help my pathetic python, hopefully in a way that will be acceptable to upstream? I think that SALOME_ContainerPy.py should be considered as an executable script because its first line starts with: #! /usr/bin/env python As a consequence, it should live inside /usr/bin like others commands so no patch is required. The only reproach to upstream may be to keep the '.py' extension which is confusing because SALOME_ContainerPy is supposed to be a command. I have moved SALOME_ContainerPy.py to /usr/bin and made it executable and Salome was still working. I think that it should be possible to add this behavior to the Debian package during the installation step. What is your opinion on this point? Would you like me to work on a patch? All the best, André -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#457075: Salomé packaging
Hi Adam, I guess that it is not relevant to run the 5.1.3-4 build again if this version works for you. I am now starting a complete build with all modules. I've built -5 with everything but VISU and NETGENPLUGIN (which don't build), they're at http://lyre.mit.edu/~powell/salome/ . There's lots more to do, but having a version which runs seems like a big milestone. If you could test it, that would be great. This may even be worth uploading, so it gets started in the NEW queue, and if all goes well we can start using the Debian bug reporting system. It works that time, I only had to export the LD_LIBRARY_PATH variable in runSalome, I have attached the patch. Now that the first version work, I have added the link BuildingSalome to the page: http://wiki.debian.org/DebianScience/Engineering Comments and changes are very welcome. All the best, André -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#457075: Salomé packaging
Hi Adam, I guess that it is not relevant to run the 5.1.3-4 build again if this version works for you. I am now starting a complete build with all modules. I've built -5 with everything but VISU and NETGENPLUGIN (which don't build), they're at http://lyre.mit.edu/~powell/salome/ . There's lots more to do, but having a version which runs seems like a big milestone. If you could test it, that would be great. This may even be worth uploading, so it gets started in the NEW queue, and if all goes well we can start using the Debian bug reporting system. It works that time, I only had to export the LD_LIBRARY_PATH variable in runSalome, I have attached the patch. I could run Salome with the GEOM, MED, SMESH and YACS modules which are loaded by default. The MULTIPTR and HELLO modules work too when added on the command line. The PYHELLO module seems to have a loading problem but that is a developer example. The remaining modules do not seem to have a GUI. I plan to work on the VISU module now once the patches are sent to upstream. Thank you very much for the great work, I am glad to see a first working version in Debian. All the best, André commit 30d1a66cc4b1a4023a1397391ed8bdcf570cd50b Author: Andre Espaze andre.esp...@logilab.fr Date: Wed Apr 21 09:39:46 2010 +0200 LD_LIBRARY_PATH is required for runSalome Exporting the variable LD_LIBRARY_PATH is required for starting Salome even if the variable points to a default research path. diff --git a/debian/runSalome.in b/debian/runSalome.in index a7dddb7..a892a75 100644 --- a/debian/runSalome.in +++ b/debian/runSalome.in @@ -23,6 +23,7 @@ export PYTHONPATH=$PYTHONPATH:@pythondir@/omniORB:${SALOME_PYTHON_DIR} # This is a major kludge! But it's necessary for Salome to open with .py files # in the right place... export PATH=$PATH:${SALOME_PYTHON_DIR} +export LD_LIBRARY_PATH=${prefix}/lib:$LD_LIBRARY_PATH export casro...@prefix@ export CSF_GraphicShr=${CASROOT}/lib/libTKOpenGl.so export CSF_UnitsLexicon=${CASROOT}/share/opencascade/6.3.0/src/UnitsAPI/Lexi_Expr.dat
Bug#457075: Salomé packaging
Hi Sylvestre, On Tue, Apr 20, 2010 at 04:18:45PM +0200, Sylvestre Ledru wrote: Le mardi 20 avril 2010 à 15:25 +0200, Andre Espaze a écrit : By the way, have you had any luck with asking upstream to adopt some of these patches? Let me know if you need more information about any of them. I discussed that point with Nicolas yesterday. I am supposed to submit the KERNEL and GUI patches this week. Great! Do you have some information on the potential inclusions of these patches ? Nicolas knows some of the upstream developers so we hope to succeed the inclusions but there is no guarantee. By the way, Christophe Trophime updated the Code Aster packages that Adam and I wrote a while ago. I am going to review them for their inclusions into Debian. I am interested to help on that task once the first Salome version run. Moreover the metis package will also be useful for the MED module of Salome. See you soon, André -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#457075: Salomé packaging
Hi Adam, Apologies for the long delay in replying since your message arrived. I've been very busy, and just yesterday finally compiled Salomé. No problem, I have been busy too last week and I am now coming back on Salomé. I made the KERNEL and GUI modules work this morning on the 5.1.3-5 release. I have enclose the patch 'kernel-gui-building.patch' that should be applied on the revision: 862cebe157a4ce50984d6fc15758da7d3ca96e2a Thu Mar 4 20:29:30 2010 Remove troublesome /usr/bin subdirectory from HXX2SALOME. by: patch -p1 kernel-gui-building.patch The steps for running the resulting Salome are provided inside the patch. For me, the main problem was that I did not install the shared librairies stored in the package libsalome-dev. It explains why I could run Salome by ajusting environment variables to debian/tmp/usr but never once installed on the system. Indeed, you found the problem! The shared libraries themselves are not in the -dev package, only the symlinks are, but for some reason the -dev package is required to run Salomé. We'll have to investigate why... Ok, I will add this point to the ticket list. By the way, it is correct to have the line: usr/lib/*.so inside 'debian/libsalome-dev.files'? That's fine: the shared library package gets the real shared libraries *.so.0.0.0 , and -dev gets the symlinks *.so . If the library loading code needs the .so files, then that's something to fix. Thanks for clarifying this point, it makes sense now. I guess that it is not relevant to run the 5.1.3-4 build again if this version works for you. I am now starting a complete build with all modules. I've built -5 with everything but VISU and NETGENPLUGIN (which don't build), they're at http://lyre.mit.edu/~powell/salome/ . I am building it but the test server got a problem during the night so I had to start from the beginning this morning. However I could run the GEOM, MED and SMESH modules without problem on the last build. There's lots more to do, but having a version which runs seems like a big milestone. Yes, I agree. If you could test it, that would be great. This may even be worth uploading, so it gets started in the NEW queue, and if all goes well we can start using the Debian bug reporting system. Excellent, I keep you in touch once I can test. By the way, have you had any luck with asking upstream to adopt some of these patches? Let me know if you need more information about any of them. I discussed that point with Nicolas yesterday. I am supposed to submit the KERNEL and GUI patches this week. Then I will start to review and test the remaining patches but they look fine. I will also try to have a look at the VISU module because post-processing is an important use case. Best regards, André -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#457075: Salomé packaging
Hi Adam, Concerning the 5.1.3-5, I can not start Salomé from debian/tmp/usr. The funny point is that I can run Salomé when compiling it by hand in a dedicated directory. An identified problem was the line: chmod -x $(CURDIR)/debian/tmp/usr/lib/python2.5/*-packages/salome/* however I still get the 'Study server is not found' error at startup. I have reached a point where I am comparing the configuration steps, I hope to identify the problem soon. Thanks for your work on this. Between the two of us, I hope we can find out what's breaking this soon... I made the KERNEL and GUI modules work this morning on the 5.1.3-5 release. I have enclose the patch 'kernel-gui-building.patch' that should be applied on the revision: 862cebe157a4ce50984d6fc15758da7d3ca96e2a Thu Mar 4 20:29:30 2010 Remove troublesome /usr/bin subdirectory from HXX2SALOME. by: patch -p1 kernel-gui-building.patch The steps for running the resulting Salome are provided inside the patch. For me, the main problem was that I did not install the shared librairies stored in the package libsalome-dev. It explains why I could run Salome by ajusting environment variables to debian/tmp/usr but never once installed on the system. By the way, it is correct to have the line: usr/lib/*.so inside 'debian/libsalome-dev.files'? I guess that it is not relevant to run the 5.1.3-4 build again if this version works for you. I am now starting a complete build with all modules. Best regards, André commit 82657a24389490922d070d883cb79730caabc69e Author: Andre Espaze andre.esp...@logilab.fr Date: Wed Apr 7 10:43:38 2010 +0200 Building Salome with KERNEL and GUI modules for testing This Salome version is only built with the KERNEL and GUI modules for testing that the graphical server can be started. As a result all references to others modules have been removed as well as any files that will not exist at the end of the build. The only line relevant for others modules is: chmod -x $(CURDIR)/debian/tmp/usr/lib/python2.5/*-packages/salome/* which should be removed or required code modifications. The steps for testing Salome once the git-buildpackage command is finished are: su dpkg -i libsalome5.1.3-0_5.1.3-5_amd64.deb dpkg -i python2.5-salome_5.1.3-5_amd64.deb dpkg -i salome-common_5.1.3-5_all.deb dpkg -i salome_5.1.3-5_amd64.deb dpkg -i libsalome-dev_5.1.3-5_all.deb exit runSalome diff --git a/debian/rules b/debian/rules index 7cee7e3..cc7ac7d 100755 --- a/debian/rules +++ b/debian/rules @@ -25,29 +25,7 @@ endif # - BLSURFPLUGIN, GHS3D[PRL]PLUGIN and HexoticPLUGIN require non-free # libraries, and will not be part of the Debian package. SALOME_MODULES = KERNEL_SRC_$(SALOME_VERSION) \ - GUI_SRC_$(SALOME_VERSION) \ - GEOM_SRC_$(SALOME_VERSION) \ - MED_SRC_$(SALOME_VERSION) \ - VISU_SRC_$(SALOME_VERSION) \ - SMESH_SRC_$(SALOME_VERSION) \ - NETGENPLUGIN_SRC_$(SALOME_VERSION) \ - YACS_SRC_$(SALOME_VERSION) \ - MULTIPR_SRC_$(SALOME_VERSION) \ - COMPONENT_SRC_$(SALOME_VERSION) \ - RANDOMIZER_SRC_$(SALOME_VERSION) \ - SIERPINSKY_SRC_$(SALOME_VERSION) \ - LIGHT_SRC_$(SALOME_VERSION) \ - PYLIGHT_SRC_$(SALOME_VERSION) \ - HELLO_SRC_$(SALOME_VERSION) \ - PYHELLO_SRC_$(SALOME_VERSION) \ - CALCULATOR_SRC_$(SALOME_VERSION) \ - PYCALCULATOR_SRC_$(SALOME_VERSION) \ - HXX2SALOME_SRC_$(SALOME_VERSION) -# XDATA_SRC_$(SALOME_VERSION) \ - BLSURFPLUGIN_SRC_$(SALOME_VERSION) \ - GHS3DPLUGIN_SRC_$(SALOME_VERSION) \ - GHS3DPRLPLUGIN_SRC_$(SALOME_VERSION) \ - HexoticPLUGIN_SRC_$(SALOME_VERSION) + GUI_SRC_$(SALOME_VERSION) clean: dh_testdir @@ -150,22 +128,6 @@ build-indep-stamp: configure-stamp make -C KERNEL_SRC_$(SALOME_VERSION)/doc usr_docs dev_docs -j $(NJOBS) DESTDIR=$(CURDIR)/debian/tmp bindir=/usr/bin libdir=/usr/lib docdir=/usr/share/doc/salome-doc echo; echo GENERATING DOCUMENTATION IN MODULE GUI; echo make -C GUI_SRC_$(SALOME_VERSION)/doc usr_docs dev_docs -j $(NJOBS) DESTDIR=$(CURDIR)/debian/tmp bindir=/usr/bin libdir=/usr/lib docdir=/usr/share/doc/salome-doc - echo; echo GENERATING DOCUMENTATION IN MODULE GEOM; echo - make -C GEOM_SRC_$(SALOME_VERSION)/doc usr_docs dev_docs -j $(NJOBS) DESTDIR=$(CURDIR)/debian/tmp bindir=/usr/bin libdir=/usr/lib docdir=/usr/share/doc/salome-doc - echo; echo GENERATING DOCUMENTATION IN MODULE MED; echo - make -C MED_SRC_$(SALOME_VERSION)/doc dev_docs -j $(NJOBS) DESTDIR=$(CURDIR)/debian/tmp bindir=/usr/bin libdir=/usr/lib docdir=/usr/share/doc/salome-doc - echo; echo GENERATING DOCUMENTATION IN MODULE HELLO; echo - make -C HELLO_SRC_$(SALOME_VERSION)/doc usr_docs -j $(NJOBS) DESTDIR=$(CURDIR)/debian/tmp bindir=/usr/bin libdir=/usr/lib docdir=/usr/share/doc/salome-doc - echo; echo GENERATING DOCUMENTATION IN MODULE PYHELLO; echo - make -C PYHELLO_SRC_$(SALOME_VERSION)/doc usr_docs -j $(NJOBS) DESTDIR=$(CURDIR)/debian/tmp bindir=/usr/bin
Bug#457075: Salomé packaging
Hi Adam, Hi everyone and apologies for the long delay since I last wrote. No problem, I was also busy on others projects but I am back on Salomé for this week and I should work full time on it for the week starting on the 19th of april. I've been getting VirtualBox to work, as suggested by Sylvestre (thanks again!). I spent a while trying to get shared folders to work, then realized just this morning that I could just download stuff from the net, so I finally have a pure unstable environment to (try to) run Salomé. André, I'm having trouble running version 5.1.3-4 from http://lyre.mit.edu/~powell/salome/ -- I get the same error as with more recent versions: Study server is not found. Are you setting some environment variables to make it work? In fact I did not run an installed version because my system could not build the binary packages due to a lack of memory. That is one of the reason why I work now in a virtual machine on a dedicated server. For using the 5.1.3-4, I simply ran: ./debian/rules install and then I have started Salome from the debian/tmp/usr directory by ajusting the environment variables as you did in runSalome. Would you be interested if I run a build of the 5.1.3-4 again? I could try to find back every step. Concerning the 5.1.3-5, I can not start Salomé from debian/tmp/usr. The funny point is that I can run Salomé when compiling it by hand in a dedicated directory. An identified problem was the line: chmod -x $(CURDIR)/debian/tmp/usr/lib/python2.5/*-packages/salome/* however I still get the 'Study server is not found' error at startup. I have reached a point where I am comparing the configuration steps, I hope to identify the problem soon. Best regards, André -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#457075: Salomé packaging
Hi Adam, The last working version was actually the -4: c56f196854092f0dc0d222de71de1a4532f214ec Release 5.1.3-4 Look ma, it builds! That's what I thought. I tried that one today (backported to Ubuntu Karmic), and it didn't work. I guess I'll have to bring X up in the chroot to check it there, then start the bisect process. It still does not work but I wanted to let you know where I am. I have worked at revision: 862cebe157a4ce50984d6fc15758da7d3ca96e2a Thu Mar 4 20:29:30 2010 By applying the following patches on the KERNEL module: kernel-safe-include.patch kernel-mpi-includes.patch kernel-mpi-libs.patch kernel-hdf5-needs-mpi.patch kernel-remove-mpi-undefs.patch and: gui-mpich-mpi.patch on the GUI one, it works when installing it by hand in a local directory (I have used ~/sroot/). However it does not work when following the debian/rules install path. I thought that lines 206 and 207 of debian/rules where the problem: mv debian/tmp/usr/bin/*.py \ $(CURDIR)/debian/tmp/usr/lib/python2.5/*-packages/salome/ chmod -x $(CURDIR)/debian/tmp/usr/lib/python2.5/*-packages/salome/* but it is not enough to make it works. For all the processing at line 200, I do not understand where the files are. By running for example: find /usr/ -name config_appli.xml I do not find anything however I can find this file in my local ~/sroot directory. However I may have messed the install process, I am running a new build now. Then I guess that we need to build Salome with hdf5 including mpi because we can not force the user to use libhdf5-serial when he will want to install Salome. Dealing with patches make the debuging harder for getting a first running version but I think that you have solved the problem. I have tried with and without hdf5 and I get the same behavior for the KERNEL part. I keep you in touch once my new version is running, I am getting more confortable with the Debian packaging tools. With kind regards, André -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#457075: Salomé packaging
Hi Adam On Thu, 2010-03-04 at 12:12 -0500, Adam C Powell IV wrote: On Thu, 2010-03-04 at 17:36 +0100, Andre Espaze wrote: However, I got a runtime error with my version, the study server is not found even if I only work with the KERNEL and GUI modules. I am going to run a new build at revision: 1a1c81a479c5c021ff685046623831ffc3621ccf Wed Mar 3 17:36:30 I am having the same problem, and don't know how to fix it. I wonder what has changed since you were last able to run it. I guess we should do a git bisect, but given the build time, that will take quite a while! Which was the last version that ran without this error? I'd like to figure out the differences and try to get this working. I've tried a couple of changes to no avail, and this is the last thing keeping me from a -5 release... The last working version was actually the -4: c56f196854092f0dc0d222de71de1a4532f214ec Release 5.1.3-4 Look ma, it builds! Obviously, the KERNEL module works correctly but the GUI one does not want to start. I am compiling the GUI module separately for comparing the build processes. Kind regards, André -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#457075: Salomé packaging
Hi Adam, On Tue, 2010-02-23 at 10:05 +0100, Andre Espaze wrote: Until salome is uploaded into Debian, it will not be possible to use the bug tracking system for individual issues. At this point, the only bug in Debian is that salome isn't there -- #457075. :-) Ok, so from now I organise tickets on http://www.python-science.org/project/salome-packaging and I keep you in touch with my progress. Great, thanks. I'm making pretty quick progress (well, as much as can be done in one or two builds per day), I think the first upload should come fairly soon, within a week or so. Ok, today I have worked on your revision: c56f196854092f0dc0d222de71de1a4532f214ec Release 5.1.3-4 Look ma, it builds! of the master branch or do you have another branch that I could follow? That's the current public branch now. I'm working now on my own branch, which doesn't build because of a problem with $(wildcard...) in the rules file which I mentioned on debian-science. I'm testing a possible solution based on Aaron Ucko's reply, and will push everything to alioth if/when it works. Everything works now, so I just pushed a bunch of changes to alioth, including the LIGHT and PYLIGHT CORBA-free GUI modules. Thank you very much for the push, I have succeeded a complete build at revision: 5f1c9676ce493cb5f31f01c8a12c4f697308e2fe Updated time stamp. Fri Feb 26 However I had to set up a virtual machine with 20Go of disk and 1024Mo of RAM on a server. I had finally to move away from the chrooted environment on my local machine. For the installation part, it seems that there is a cyclic dependency between salome and salome-common. Obviously salome-common should not depend on salome. I'm adding MULTIPR now, which should be the last module (XDATA and YACS gave me some trouble, the others have non-free dependencies). Then I'm going to do a .desktop file so it can run from the Applications or KDE menu, and when that's done it should be set to upload! Oh, except for the HDF5 and MED issue. Well, when bug 510057 closes, then it will be ready to upload. For that point and also the packaging steps, I have started a draft of documentation on the mercurial repo: http://hg.python-science.org/salome-packaging/ in the file: debian-packaging.rst It is supposed to end up on the debian wiki. In case you have time to read it, would you have comments? I really feel beginner for the Debian packaging process. Else I have also uploaded the documentation for the modules MED, SMESH and VISU. However, I got a runtime error with my version, the study server is not found even if I only work with the KERNEL and GUI modules. I am going to run a new build at revision: 1a1c81a479c5c021ff685046623831ffc3621ccf Wed Mar 3 17:36:30 I saw that you already fixed the 'killSalome' command problem pointing on python2.4. Kind regards, André -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#457075: Salomé packaging
Hi Adam, On Tue, 2010-02-23 at 10:05 +0100, Andre Espaze wrote: Until salome is uploaded into Debian, it will not be possible to use the bug tracking system for individual issues. At this point, the only bug in Debian is that salome isn't there -- #457075. :-) Ok, so from now I organise tickets on http://www.python-science.org/project/salome-packaging and I keep you in touch with my progress. Great, thanks. I'm making pretty quick progress (well, as much as can be done in one or two builds per day), I think the first upload should come fairly soon, within a week or so. Ok, today I have worked on your revision: c56f196854092f0dc0d222de71de1a4532f214ec Release 5.1.3-4 Look ma, it builds! of the master branch or do you have another branch that I could follow? I would like to add such documentation do the salome.git repo, inside the debian directory. I have added the following ticket: http://www.python-science.org/ticket/1403 that will certainly move. Good point. I haven't used the Debian Science Wiki, perhaps that's a good place to put such documentation at this point. Perfect, I will add a page on the wiki as soon as my documentation is ready. I will restart from a clean sid install today. I plan to document every module so it will help me to supply the 'debian/rules' patch of ticket http://www.python-science.org/ticket/1405. Thanks. I just changed from --with-netgen to NETGENHOME so there should be no more unrecognized option warnings. But NETGENPLUGIN doesn't work because of a missing header file. I'm going to work on the netgen package and see if I can get the Salomé interface changes in there without disrupting the existing interface and applications which link to it. Before you start on the patch, let's discuss its utility: how useful will it be to have separate configure commands and a *very* long configure-stamp target in debian/rules, vs. the current loop? I think my preference is the loop because it's short and easy to maintain. I think you are right, I need a documentation for every module because I should build Salome for other distribution as well. However that is not relevant to mix such work with debian/rules. The start of my documentation can be found here: https://hg.python-science.org/salome-packaging/ My suspicion is that the geom issue might due to incorrect directory usage for the OpenCascade data files. I've just added tests for their location in check_cas.m4, and will change KERNEL/bin/appliskel/env.d/envProducts.sh to use the new CAS_LIBDIR and CAS_DATADIR variables accordingly (will need to move it to envProducts.sh.in and have configure generate the .sh file). Unfortunately, I still get the same crash for GEOM with the SIGFPE Arithmetic exception, forcing me to kill Salome. I plan to investigate this problem as soon as the documentation is ready. Thanks. The runSalome script should be working now, if not let me know what kind of errors it gives. It was still crashing but I finally found the problem by exporting: DISABLE_FPE=1 before running Salomé. You may want to look at: https://hg.python-science.org/salome-packaging/rev/8ab11e56314a for more details. By the way, I did not need the variables CASROOT, CSF_GraphicShr, CSF_UnitsLexicon and CSF_UnitsDefinition for running the GEOM module. Moreover in debian/runSalome.in, the variables CSF_UnitsLexicon and CSF_UnitsDefinition seems to point on a wrong path. The correct one should be: share/opencascade/6.3.0/src instead of: share/opencascade but you may use another opencascade package version. I keep you in touch with the build process, I again ran out of disk space today. But thank you very much for all your efforts, I feel that it is going forward. Kind regards, André -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#457075: Salomé packaging
Hi Adam, Until salome is uploaded into Debian, it will not be possible to use the bug tracking system for individual issues. At this point, the only bug in Debian is that salome isn't there -- #457075. :-) Ok, so from now I organise tickets on http://www.python-science.org/project/salome-packaging and I keep you in touch with my progress. ... I would like to add such documentation do the salome.git repo, inside the debian directory. I have added the following ticket: http://www.python-science.org/ticket/1403 that will certainly move. Good point. I haven't used the Debian Science Wiki, perhaps that's a good place to put such documentation at this point. Perfect, I will add a page on the wiki as soon as my documentation is ready. I will restart from a clean sid install today. I plan to document every module so it will help me to supply the 'debian/rules' patch of ticket http://www.python-science.org/ticket/1405. You can get and build my latest salome package by the same git clone command but substitute salome for med-fichier. It still needs a lot of tweaking before it is ready to upload into Debian unstable. And first the patched HDF5 package needs to go in, along with the new med-fichier. I have succeeded to build salome at revision 181964c525693f410d01646a616e5d94f05c7c9d but I got only KERNEL and GUI running out of the box at the end. I plan to investigate on the GEOM runtime problem first, is it allright for you? Yes. But please try re-cloning it, I have made a lot of progress, and some things might work now that didn't before. I think your tickets 1398, 1400 and 1402 are fixed now. Congratulations, your Release 5.1.3-4 worked fine and closed those three tickets concerning MED build and install as well as GEOM install. So now the MED and GEOM modules are present when starting Salome. My suspicion is that the geom issue might due to incorrect directory usage for the OpenCascade data files. I've just added tests for their location in check_cas.m4, and will change KERNEL/bin/appliskel/env.d/envProducts.sh to use the new CAS_LIBDIR and CAS_DATADIR variables accordingly (will need to move it to envProducts.sh.in and have configure generate the .sh file). Unfortunately, I still get the same crash for GEOM with the SIGFPE Arithmetic exception, forcing me to kill Salome. I plan to investigate this problem as soon as the documentation is ready. Thank you very much for your explanations on git-buildpackage and the Debian build process, they clarified many points. My main problem in Salome packaging is that the building process is resource intensive and thus takes lot of time. I sometimes also run out of disk space but that is really part of the fun. Best regards, André -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Bug#457075: Salomé packaging
Hi Adam, Thank you very much for your fast reply. I am sorry for not being as responsive, I am new to Debian packaging and I am also discovering git. I have succeeded to build most of the Salomé modules with the version 5.1.3-3 that you uploaded at http://lyre.mit.edu/~powell/salome/ however I wanted to discuss the following problems: - the configure step in 'debian/rules' needs to add VTKSUFFIX=-5.4 else vtk is not found and many components do not build. Indeed, I built -3 before VTK 5.4 was in unstable. I am using --with-vtk-version=5.4 which seems to do the same thing. Yes but I have a slight preference for VTKSUFFIX because it avoids such warning in the configure step:: WARNING: unrecognized options: --with-vtk-version when the module does not deal with VTK. Anyway I would like to discuss the configure step in the following ticket: http://www.python-science.org/ticket/1405 - it lacks the omniorb4-nameserver package in the dependency list else the KERNEL component does not find the omniNames command. Okay, the salome binary package needs to depend on this, right? I don't think it needs to be in Build-Depends. Yes you are right and I made a mistake. The omniorb4-nameserver is already in debian/control, I did not know the difference between Build-Depends and Depends. - as you said, the med 2.3.5 library needs to be built manually with hdf5-1.8.4 but the main problem is that tests do not pass in that case. There are patches to hdf5 (bug 510057) and med (bug 566828, fix is in the git repository) to build these two using the default MPI implementation, e.g. OpenMPI on most arches, LAM on others (soon MPICH2, which will require further changes to the current HDF5 package...). The HDF5 team is a bit slow to adopt patches, but hopefully plans for a March freeze will get this done, so MED-MPI and Salomé can get in. Med is running fine with the build instructions that you provided me off list. Thanks for the informations. - it seems to lack the 'config.h' file in the libopencascade-* packages. Else do you know where that file could be? I fear that some components (like GEOM) really need it. Denis replied to this. I didn't notice any problems building GEOM, are there run-time issues which could result from missing this file? - the GEOM module crashes when trying to add a geometrical object I see. Could this be related to the OCC config.h issue? I don't see how... In fact I do not say that the problem is related but I just wanted to check the preprocessor definitions in that file and maybe find some clues. I was afraid that upstream use the '-config config.h' gcc option when building Salome, thus potentially introducing custom definitions. When I compiled Salomé for my first time on Debian Lenny, I got a runtime crash of GEOM because of the NO_CXX_EXCEPTION definition used by OpenCascade. I got it in my build process because I had not set my OpenCascade version correctly (see KERNEL_SRC_5.1.3/salome_adm/unix/config_files/check_cas.m4 for the complete story). I'm impressed that it actually runs -- hadn't tried to run it yet! Yes, it runs, with very few modules (only KERNEL and GUI from now) but that is already a nice start. How to you plan to collaborate on the package building? I would suggest to use the project http://www.python-science.org/project/salome-packaging because I can be efficiently organized on such a platform. Would you like to add a git or mercurial repository on which we will share the package source code? It is already on the Debian Science git repository at http://git.debian.org/git/debian-science/packages/salome.git/ . Thank you, I built Salomé again from that repo. My tickets are there: http://www.python-science.org/project/salome-packaging/0.1 and we can discuss the specific details off list. Cheers, André -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/20100217103708.ga28...@crater.logilab.fr
Bug#457075: Salomé packaging
I think this is getting into the technical details, so it is probably not so interesting to the debian-science list. I'm afraid I can't figure out a way to set up an account on ww.python-science.org; if you can let me know how then I'll go ahead and use that. A message with your first and last names needs to be send to: nicolas.chau...@logilab.fr However Nicolas just told me that Sylvestre would prefer to use the Debian tracking system. Do you know where should I move the work from http://www.python-science.org/project/salome-packaging? In the meantime, I'd like to let you know how to build the versions of dependencies I'm using. I don't know why the med-fichier tests are failing with HDF5 1.8.4. To build my patched hdf5 package for Debian, you can do the following (in a Debian unstable chroot): apt-get source hdf5 rm -rf hdf5-1.8.4/debian svn co svn://svn.debian.org/svn/pkg-grass/packages/hdf5 cp -a hdf5/trunk/debian hdf5-1.8.4/ wget 'http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=27;filename=hdf5-default-mpi.patch;att=1;bug=510057' -O hdf5-default-mpi.patch cd hdf5-1.8.4/ patch -p0 ../hdf5-default-mpi.patch dpkg-buildpackage Install the resulting .deb packages, particularly libhdf5-mpi-dev which should depend on libhdf5-openmpi-dev. Then you can build the latest med-fichier using: git clone http://git.debian.org/git/debian-science/packages/med-fichier.git -b master cd med-fichier git-buildpackage It should all build correctly. At this point, does this version of med-fichier pass or fail the tests? All the tests pass, that is really great. I would like to add such documentation do the salome.git repo, inside the debian directory. I have added the following ticket: http://www.python-science.org/ticket/1403 that will certainly move. You can get and build my latest salome package by the same git clone command but substitute salome for med-fichier. It still needs a lot of tweaking before it is ready to upload into Debian unstable. And first the patched HDF5 package needs to go in, along with the new med-fichier. I have succeeded to build salome at revision 181964c525693f410d01646a616e5d94f05c7c9d but I got only KERNEL and GUI running out of the box at the end. I plan to investigate on the GEOM runtime problem first, is it allright for you? Then I have some questions regarding the packaging workflow. My main problem is that running:: git-buildpackage --git-ignore-new cleans everything and start from scratch. By the way I had to add the '--git-ignore-new' option but did not understand why. I finally use: ./debian/rules build for building everything after small changes. And: ./debian/rules install for then testing the updated version in debian/tmp. The step that I did not find is how to apply the series of patch once I pull from http://git.debian.org/git/debian-science/packages/salome.git Reading: http://www.debian.org/doc/maint-guide/ch-build.en.html#s-completebuild I did not find the tool. I first thought about the dpatch candidate but the command is not installed on my system so I wonder how git-buildpackage works. André -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/20100217105932.gb28...@crater.logilab.fr
Bug#457075: Salomé packaging
Hi Adam, I am André Espaze, the Logilab's employee supposed to help you in the Salomé packaging for Debian. First I wanted to thank you for the great work that you did on the current package. Then I would like to let you know my progress on the testing part. I have succeeded to build most of the Salomé modules with the version 5.1.3-3 that you uploaded at http://lyre.mit.edu/~powell/salome/ however I wanted to discuss the following problems: - the configure step in 'debian/rules' needs to add VTKSUFFIX=-5.4 else vtk is not found and many components do not build. - it lacks the omniorb4-nameserver package in the dependency list else the KERNEL component does not find the omniNames command. - as you said, the med 2.3.5 library needs to be built manually with hdf5-1.8.4 but the main problem is that tests do not pass in that case. - it seems to lack the 'config.h' file in the libopencascade-* packages. Else do you know where that file could be? I fear that some components (like GEOM) really need it. - the GEOM module crashes when trying to add a geometrical object You can find all the steps that I did, more details and also more problems at: http://www.python-science.org/ticket/1383 How to you plan to collaborate on the package building? I would suggest to use the project http://www.python-science.org/project/salome-packaging because I can be efficiently organized on such a platform. Would you like to add a git or mercurial repository on which we will share the package source code? I am looking forward to work with you, André On Tue, Jan 26, 2010 at 10:22:12AM -0500, Adam C Powell IV wrote: Sorry, forgot to mention a couple of things yesterday. First, the package doesn't build in current unstable, because HDF5 transitioned and MED didn't transition with it. I may be able to help with MED to resolve this, but not until next week. (It builds fine in my unstable chroot updated a few days ago, but that machine doesn't have enough disk space to build the whole thing.) On Mon, 2010-01-25 at 11:45 -0500, Adam C Powell IV wrote: Now for one problem. The VISU module doesn't completely compile, because of a symbol/prototype incompatibility within its CONVERTER library. I don't know quite enough C++ to fix this, can someone help? Second, the log with this build failure is in http://lyre.mit.edu/~powell/salome/salome_5.1.3-3_amd64.build - search for *** . The relevant files are VISU_SRC_5.1.3/src/CONVERTOR/VISU_MergeFilterUtilities.cxx and .hxx. I don't understand why TGetFieldData in the prototype with the vtkDataSet* argument works for both TGetPointData and TGetCellData but the one with the VISU::TFieldList* argument doesn't... -Adam -- GPG fingerprint: D54D 1AEE B11C CE9B A02B C5DD 526F 01E8 564E E4B6 Engineering consulting with open source tools http://www.opennovation.com/ -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org