Attached message forwarded on behalf of Rafael who is not subscribed....Alan
--- Begin Message ---
You have probably noticed that I have done some commits in the debian/
directory recently.  I am not getting involved with PLplot development again
but I wish to update the Debian package, which is heavily outdated (5.6.1-10
in testing).

I convinced Andrew Ross to adopt the package and become its "official"
maintainer.  I was hoping to upload 5.8.0~RC1-1 to the Debian unstable
distribution this last weekend, but there is still a quite serious issue
concerning the Octave binding which prevented me of going ahead.  I am
forwarding below one of the messages I sent to Andrew to show you the
context of the discusssion.

The problem is with plplot_octave.oct which should be generated with
mkoctfile but is instead built through a add_library command in
bindings/octave/CMakeLists.txt.  I prepared a patch to this file (attached
below) in which I address the issue.  It works for me but, since my
knowledge of cmake is quite fragmentary, I would like to hear the opinions
of the other developers.

Note that the patch is quite large because I removed some sections of the
file that seem obsolete.  If you agree with this patch, I can commit it.

Please, Cc: to me, since I am not subscribed to plplot-devel.

Rafael



----- Forwarded message from Rafael Laboissiere <[EMAIL PROTECTED]> -----

From: Rafael Laboissiere <[EMAIL PROTECTED]>
Subject: Re: [EMAIL PROTECTED]: Re: PLplot 5.7.4 for Debian]
Date: Sat, 27 Oct 2007 01:39:39 +0200
To: Andrew Ross <[EMAIL PROTECTED]>
Organization: Debian GNU/Linux
Message-ID: <[EMAIL PROTECTED]>

* Rafael Laboissiere <[EMAIL PROTECTED]> [2007-10-26 11:56]:

> * Rafael Laboissiere <[EMAIL PROTECTED]> [2007-10-25 23:04]:
> 
> > * Andrew Ross <[EMAIL PROTECTED]> [2007-10-24 09:40]:
> > 
> > > You may want to wait a week or so. 5.8.0 should be released soon (there
> > > is a RC1 out now if you haven't seen).
> > 
> > Sure, I have seen it and already updated debian/changelog accordingly.  It
> > does not harm uploading RC1 and later the final 5.8.0.
> 
> I am planing to upload today 5.8.0~RC1-1.  There is still a problem with
> bindings/tk/tclIndex being created in the source tree.  Could you please fix
> it in the appropriate CMakeLists.txt?


Okay, my plan was to upload today, but the following Lintian error was
bugging me:

    E: octave-plplot: shlib-with-executable-bit 
usr/lib/octave/site/oct/i486-pc-linux-gnu/plplot_octave.oct 0755
    N:
    N:   Shared libraries should be mode 0644.
    N:
    N:   Refer to Policy Manual, section 8.1 for details.
    N:

The problem does not come from the fact that plplot_octave.oct has the
executable bit set, because all octave loadable modules have this bit set as
well:

    $ ls -l /usr/lib/octave/2.9.13/oct/x86_64-pc-linux-gnu/dassl.oct
    -rwxr-xr-x 1 root root 79144 2007-08-01 18:43 
/usr/lib/octave/2.9.13/oct/x86_64-pc-linux-gnu/dassl.oct

The problem actually is due to a wrong build of plplot_octave.oct, which is
built as a shared lib, but shouldn't.  The culprit seems to be the following
in bindings/octave/CMakeLists.txt:

    add_library(plplot_octave MODULE 
${CMAKE_CURRENT_BINARY_DIR}/plplot_octave.cc)
    target_link_libraries(
    plplot_octave
    plplot${LIB_TAG}
    "${OCTAVE_LIBRARIES}"
    "${OCTINTERP_LIBRARIES}"
    )

Indeed, there is a SONAME appearing in plplot_octave.oct:

    $ objdump -x debian/build_tmp/bindings/octave/plplot_octave.oct | grep 
SONAME
    SONAME      plplot_octave.oct

This is plain wrong because *.oct files *_must_* be generated with
mkoctfile.  I do see the setting of MKOCTFILE in cmake/modules/octave.cmake,
but I do not see its use in bindings/octave/CMakeLists.txt.  Do you think
that this can be fixed?

I am afraid I will not be able to upload the Debian package to unstable
until this issue is addressed.

-- 
Rafael


----- End forwarded message -----

--- plplot-5.8.0~RC1.orig/bindings/octave/CMakeLists.txt
+++ plplot-5.8.0~RC1/bindings/octave/CMakeLists.txt
@@ -128,66 +128,24 @@
 ${CMAKE_CURRENT_BINARY_DIR}/plplot_octave.h
 )
 
-# Build octave interface.
-set(octave_interface_INCLUDE_PATHS
-${CMAKE_SOURCE_DIR}/include
-${CMAKE_BINARY_DIR}
-${CMAKE_BINARY_DIR}/include
-${CMAKE_CURRENT_SOURCE_DIR}
-${CMAKE_CURRENT_BINARY_DIR}
-${OCTAVE_INCLUDE_PATH}
-)
-include_directories(${octave_interface_INCLUDE_PATHS})
-
-add_library(plplot_octave MODULE ${CMAKE_CURRENT_BINARY_DIR}/plplot_octave.cc)
-target_link_libraries(
-plplot_octave
-plplot${LIB_TAG}
-"${OCTAVE_LIBRARIES}"
-"${OCTINTERP_LIBRARIES}"
-)
-
-if(USE_RPATH)
-  get_target_property(LIB_INSTALL_RPATH plplot${LIB_TAG} INSTALL_RPATH)
-  # (Reasonable) assumption here is that OCTAVE_LIBRARIES and
-  # OCTINTERP_LIBRARIES have the same path.
-  get_filename_component(OCTAVE_INSTALL_RPATH "${OCTAVE_LIBRARIES}" PATH)
-  set(LIB_INSTALL_RPATH ${LIB_INSTALL_RPATH} ${OCTAVE_INSTALL_RPATH})
-  set_target_properties(
-  plplot_octave
-  PROPERTIES
-  PREFIX "" 
-  SUFFIX ".oct"
-  INSTALL_RPATH "${LIB_INSTALL_RPATH}"
-  INSTALL_NAME_DIR "${OCTAVE_OCT_DIR}"
-  )
-else(USE_RPATH)
-  set_target_properties(
-  plplot_octave
-  PROPERTIES
-  PREFIX "" 
-  SUFFIX ".oct"
-  INSTALL_NAME_DIR "${OCTAVE_OCT_DIR}"
-  )
-endif(USE_RPATH)
-
-# Have to be specific about permissions for some reason (probably oct suffix).
-set(PERM_MODULES
-OWNER_READ
-OWNER_WRITE
-OWNER_EXECUTE
-GROUP_READ
-GROUP_EXECUTE
-WORLD_READ
-WORLD_EXECUTE
+add_custom_command(
+OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/plplot_octave.oct
+DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/plplot_octave.cc
+COMMAND ${MKOCTFILE} ${CMAKE_CURRENT_BINARY_DIR}/plplot_octave.cc
+-I${CMAKE_CURRENT_BINARY_DIR} -I${CMAKE_SOURCE_DIR}/bindings/octave
+-I${CMAKE_SOURCE_DIR}/include 
+-L${CMAKE_BINARY_DIR}/src -lplplot${LIB_TAG}
+)
+
+add_custom_target(
+plplot_octave_oct_file ALL
+DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/plplot_octave.oct
 )
 
 install(
-TARGETS
-plplot_octave
-LIBRARY
+FILES
+${CMAKE_CURRENT_BINARY_DIR}/plplot_octave.oct
 DESTINATION ${OCTAVE_OCT_DIR}
-PERMISSIONS ${PERM_MODULES}
 )
 
 # Build and install plplot_stub.m
@@ -233,23 +191,4 @@
 DESTINATION ${PLPLOT_OCTAVE_DIR}
 )
 
-if(never)
-add_custom_command(
-OUTPUT 
-${CMAKE_CURRENT_BINARY_DIR}/plplot_octave.oct
-${CMAKE_CURRENT_BINARY_DIR}/plplot_octave.o
-COMMAND
-touch
-${CMAKE_CURRENT_BINARY_DIR}/plplot_octave.oct
-${CMAKE_CURRENT_BINARY_DIR}/plplot_octave.o
-DEPENDS
-${CMAKE_CURRENT_BINARY_DIR}/plplot_octave.cc
-)
-
-# Link octave interface.
-add_custom_target(
-plplot_octave-libdir.oct ALL
-DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/plplot_octave.o
-)
-endif(never)
 endif(ENABLE_octave)

--- End Message ---
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to